分享到
可以看看时钟程序是怎么样设计的。
z8279 equ 08701h ;8279 状态/命令口地址
d8279 equ 08700h ;8279 数据口地址
ledmod equ 00h
;左边输入 八位字符显示
;外部译码键扫描方式,双键互锁
ledfeq equ 2fh
;扫描速率
ledcls equ 0c1h ;清除显示 ram
ledwr0 equ 80h
;设定的将要写入的显示ram地址
org 0000h
ajmp start
org 001bh
;int t1 入口地址
ajmp int_t1
org 0040hstart:
mov sp,#60h
lcall init8279
;初始化8279
mov r3,#0h
;时
mov r2,#0h
;分
mov r1,#0h
;秒
mov r6,#0h
;标志
mov tmod,#10h
mov tl1,#00h
;50 ms 的时间常数
mov th1,#04ch
mov r0,#20
setb tr1
setb et1
setb ea
;允许中断wait:
cjne r6,#0ffh,wait
lcall display
mov r6,#0
sjmp wait
init8279: ;8279初始化子程序
push dph
;保存现场
push dpl
push acc
lcall delay
;延时
mov dptr ,#z8279
mov a,#ledmod
;置8279工作方式
movx @dptr,a
mov a,#ledfeq
;置键盘扫描速率
movx @dptr,a
mov a,#ledcls
;清除 led 显示
movx @dptr,a
lcall delay
;延时
pop acc
;恢复现场
pop dpl
pop dph
ret
;显示字符子程序
;输入r4,位置 r5,值disled:
push dph
;保存现场
push dpl
push acc
mov a,#ledwr0
;置显示起始地址
add a,r4
;加位置偏移量
mov dptr,#z8279
movx @dptr,a
;设定显示位置
mov dptr,#ledseg ;置显示常数表起始位置
mov a,r5
movc a,@a+dptr
;查表
mov dptr,#d8279
movx @dptr,a
;显示数据
pop acc
;恢复现场
pop dpl
pop dph
retdelay:
;延时子程序
push 0
;保存现场
push 1
mov 0,#0hdelay1:
mov 1,#0h
djnz 1,$
djnz 0,delay1
pop 1
;恢复现场
pop 0
ret
int_t1:
;int_t1中断服务子程序
push dph
;保护现场
push dpl
push acc
push psw
clr tr1
mov tl1,#00h
;50ms 定时常数
mov th1,#4ch
setb tr1
djnz r0,exit
;判断毫秒=0
mov r0,#20
;delay 1 second
mov r6,#0ffh
;置秒标志
cjne r1,#59h,second;判断秒=59
mov r1,#99h
cjne r2,#59h,minute;判断分=59
mov r2,#99h
cjne r3,#23h,hour ;判断时=23
mov r3,#99hhour:
mov a,r3
add a,#1
;时加1
da a
mov r3,aminute:
mov a,r2
add a,#1
;分加1
da a
mov r2,asecond:
mov a,r1
add a,#1
;秒加1
da a
mov r1,aexit:
pop psw
;恢复现场
pop acc
pop dpl
pop dph
reti
;中断返回display:
mov a,r3
anl a,#0fh
mov r5,a
mov r4,#6
lcall disled
;显示小时低位
mov a,r3
swap a
anl a,#0fh
mov r5,a
mov r4,#7
lcall disled
;显示小时高位
mov a,r2
anl a,#0fh
mov r5,a
mov r4,#3
lcall disled
;显示分钟低位
mov a,r2
swap a
anl a,#0fh
mov r5,a
mov r4,#4
lcall disled
;显示分钟高位
mov a,r1
anl a,#0fh
mov r5,a
mov r4,#0
lcall disled
;显示秒低位
mov a,r1
swap a
anl a,#0fh
mov r5,a
mov r4,#1
lcall disled
;显示秒高位
ret
ledseg:
db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h;'0,1,2,3,4,5,6,7'
db 7fh,6fh,77h,7ch,39h,5eh,79h,71h;'8,9,a,b,c,d,e,f'
db 6dh,02h,08h,00h,59h,0fh,76h;'u,-,_, ,i,o,p, '
end
[1] [2]
Han® 1A 矩形连接器:可做新的以太网接口
小米平板3, 2种尺寸, 双系统, 性能大增, 1299元起
启停系统的多种运作方式区分
大联大推出基于高通的高性能、低功耗的QCC5100蓝牙系统级芯片
余压监控系统可实现疏散通道的余压24小时自动巡检
8279显示电子钟的设计与程序源代码
输出电压过冲怎么测试?电源测试系统如何测试电源模块输出过冲?
进军移动端,RDNA架构手机GPU将在2021年之后登场
MAX9060–MAX9064 超小尺寸单路比较器
以色列研发反面部识别技术
详细分析云服务器3m带宽能多少人使用
新的压电陶瓷促进了新应用的发展
三极管的参数指标及结构原理
银牛视觉AI处理器采用芯原创新的ISP IP芯原面向机器人
为老人专门打造预防摔倒的传感器
赛门铁克推出云计算服务,协助企业资料中心管理
推动制造业数字化转型,工业互联网是重要抓手
苹果 iOS 14.3 Beta 增加全新 ProRAW 照片格式
从微米到纳米:科技巨变背后的微细手艺
保障BMS电池管理系统稳定运行的关键组件