- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
带有LED显示的音乐倒数计时器
一.实验内容要求
利用AT89C51结合七段数码管设计一个倒数计时器,做一小段时间计时。当倒数计时为0时,则发出一段音乐,通知倒数终了,该做重要的事情了。
实验内容具体要求:
(1)四个七段数码管显示目前倒数的时间。显示格式为“分分:秒秒”;
(2)
2.显示子程序流程图
3. 按键子程序流程图
4.定时器中断程序流程图
四.实验调试
实验过程中,基于WAVE2000实验箱对程序经行运行调试,出现了以下几个问题:
由于WAVE2000实验箱中,将AT89C51与译码器74LS138,地址锁存器74LS374集成,所以89C51上可用引脚有限,参考数码管显示实验和键盘输入显示实验设计程序以解决问题。
在程序设计过程中,LED显示的数字不规范,经检查发现,实验箱上的LED属于共阴极显示,查表后改如正确段码。可输出正常字符。
调试过程中出现了显示为“秒,秒,分,分”的颠倒显示,且倒计时不符合预想。经检查是因为八段管的位选择设计错误,经多次修改试验后得到解决。
五.程序源代码
ORG 0000H
OUTBIT EQU 08002H
OUTSEG EQU 08004H
LEDBUF EQU 60H
LJMP MAIN
ORG 001BH
LJMP PINT1
MAIN:MOV P1,#0FFH
SETB EA
SETB ET1
MOV TMOD,#10H
MOV TL1, #00H
MOV TH1,#40H
MOV R3,#20
MOV R0,#40H
MOV A,#00H
MOV R7,#04H
DIS:MOV @R0,A ;初始化
INC R0
DJNZ R7,DIS
MOV 45H,#99H ;00秒
MOV 44H,#99H ;2分
DISS:LCALL DISP
SJMP DISS
PINT1:MOV TH1,#9EH
MOV TL1,#58H
PUSH ACC
DJNZ R3,QUIT
MOV R3,#20
MOV A,45H
CJNE A,#99H,LP1 ;当秒钟不为00时,直接输出
MOV A,#40H ;当秒钟减为0时,赋初值为59,同时\\
MOV 45H,A
MOV A,44H
ADD A,#01H
DA A
CJNE A,#00H,LP2 ;当分钟不为99时,直接输出
MOV 45H,#99H ;当分钟减为99时,赋初值为00,同\\
MOV A,#99H
CLR TR1
SETB P1.0
SETB P1.1
SETB P1.2
CLR P3.3
ACALL DELY
SETB P3.3
CLR RS0
CLR RS1
LP2:MOV 44H,A
SJMP QUIT
LP1: ADD A,#01H
DA A
MOV 45H,A
QUIT:POP ACC
RETI
DISP:MOV R1,#LEDBUF
MOV A,45H
ANL A,#0FH
MOV 40H,A
MOV A,45H
SWAP A
ANL A,#0FH
MOV 41H,A
MOV A,44H
ANL A,#0FH
MOV 42H,A
MOV A,44H
SWAP A
ANL A,#0FH
MOV 43H,A
LL1:MOV R2,#04H
MOV R0,#40H
LOOP:MOV DPTR,#TAB
MOV A,@R0
MOVC A,@A+DPTR
MOV DPTR,#OUTSEG
MOVX @DPTR,A
MOV A,R2
MOV DPTR,#OUTBIT
MOVX @DPTR,A
ACALL DIMS
MOV A,#0FFH
MOVX @DPTR,A
MOV A,R2
RL A
MOV R2,A
INC R0
CJNE R2,#40H
文档评论(0)