单片机数字时钟汇编程序设计分析

[复制链接]
查看11 | 回复2 | 2010-5-12 12:53:41 | 显示全部楼层 |阅读模式
请各位高手能帮我解决这个分析的问题!本人不甚感激~
详细的分析~谢谢
org0000h
jmpmain
org 000bh
ljmp time0
org 0030h
main:
mov 20h,#00h
mov 21h,#00h
mov 22h,#00h
mov 10h,#20
mov th0,#3ch
mov tl0,#0b0h
mov tmod,#11h
setb ea
setb et0
setb tr0
loop:
lcall display
lcall anj
sjmp loop
anj:
jnb p1.1,s_jia1
jnb p1.3,s_jia2
jnb p1.5,s_jia3
jnb p1.0,s_jian4
jnb p1.2,s_jian5
jnb p1.4,s_jian6
lzq: ret
s_jia1:
lcall display
jnb p1.1,s_jia1
mov a,22h
add a,#01h
da a
mov 22h,a
cjne a,#24h,lzq
mov 22h,#00h
ljmp lzq
s_jia2:
lcall display
jnb p1.3,s_jia2
mov a,21h
add a,#01h
da a
mov 21h,a
cjne a,#60h,lzq
mov 21h,#00h
ljmp lzq
s_jia3:
lcall display
jnb p1.5,s_jia3
mov a,20h
add a,#01h
da a
mov 20h,a
cjne a,#60h,lzq
mov 20h,#00h
s_jian4:
lcall display
jnb p1.0,s_jian4
mov a,22h
add a,#99h
da a
mov 22h,a
cjne a,#99h,lzq
mov 22h,#23h
s_jian5:
lcall display
jnb p1.2,s_jian5
mov a,21h
add a,#99h
da a
mov 21h,a
cjne a,#99h,lzq
mov 21h,#59h
s_jian6:
lcall display
jnb p1.4,s_jian6
mov a,20h
add a,#99h
da a
mov 20h,a
cjne a,#99h,lzq
mov 20h,#59h
ljmp lzq
display:
chaizi:
mov a,20h
anl a,#0FH
mov 30h,a
mov a,20h
swap a
anl a,#0fh
mov 31h,a
mov a,21h
anl a,#0fh
mov 32h,a
mov a,21h
swap a
anl a,#0fh
mov 33h,a
mov a,22h
anl a,#0fh
mov 34h,a
mov a,22h
swap a
anl a,#0fh
mov 35h,a
mov dptr,#tab
mov a,30h
movc a,@a+dptr
mov p0,a
mov p2,#0feh
lcall delay
mov p0,#00h
mov p2,#0ffh
mov a,31h
movc a,@a+dptr
mov p0,a
mov p2,#0fdh
lcall delay
mov p0,#00h
mov p2,#0ffh
mov p0,#40h
mov p2,#0fbh
lcall delay
mov p0,#00h
mov p2,#0ffh
mov a,32h
movc a,@a+dptr
mov p0,a
mov p2,#0f7h
lcall delay
mov p0,#00h
mov p2,#0ffh
mov a,33h
movc a,@a+dptr
mov p0,a
mov p2,#0efh
lcall delay
mov p0,#40h
mov p2,#0dfh
lcall delay
mov p0,#00h
mov p2,#0ffh
mov a,34h
movc a,@a+dptr
mov p0,a
mov p2,#0bfh
lcall delay
mov p0,#00h
mov p2,#0ffh
mov a,35h
movc a,@a+dptr
mov p0,a
mov p2,#07fh
lcall delay
ret
time0:
mov th0,#3ch
mov tl0,#0b0h
djnz 10h,lq
mov 10h,#20
mov a,20h
add a,#01h
da a
mov 20h,a
cjne a,#60h,lq
mov 20h,#00h
mov a,21h
add a,#01h
da a
mov 21h,a
cjne a,#60h,lq
mov 21h,#00h
mov a,22h
add a,#01h
da a
mov 22h,a
cjne a,#24h,lq
mov 22h,#00h
lq:reti
ret
tab:db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh
ret
delay:
movr7,#2
ly3:movr6,#1
ly2:movr5,#123
ly1:djnzr5,ly1
djnzr6,ly2
djnzr7,ly3
ret
end
还能希望在上面扩展一个日期显示功能或者闹钟功能并予以分析,谢谢!
希望分析的是汇编而不是C 因为这是我们大学的考试题目,老师要问的..我不知道分析!

回复

使用道具 举报

千问 | 2010-5-12 12:53:41 | 显示全部楼层
时钟设计基本上就是通过电子 定时器定时 到1s给一个中断 让单片机去执行中断 跳转至相应的数码管位 然后修改当前显示值 再设置到10进位加一 之后就出来数字时钟的效果 弄懂定时器 一切就顺下来了 这是一个C得时钟程序 你看明白思想 就好说汇编的语句了#include #include #define uchar unsigned charsbit dula=P3^7;sbit L1=P2^0;sbit L2=P2^1;sbit L3=P2^2;sbit key1=P3^0;sbit key2=P3^1;sbit key3=P3^2;sbit key4=P3^
回复

使用道具 举报

千问 | 2010-5-12 12:53:41 | 显示全部楼层
楼主想要做这个产品,那是需要花钱的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行