单片机数字电子钟课程设计实训报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MOVR3,#20H
MOVA,20H
ADDA,#1
MOVR0,A
MOVA,@R0
ADDA,#1
MOV@R0,A
DAA
CJNEA,#60H,LPRP21
MOV@R0,#00H
LPRP21:LCALLRELAY1
LPRP2:JBP1.2,LPRP3
MOVR3,#20H
MOVA,20H
ADDA,#2
MOVR0,A
//开启节能功能
JBP1.0,XWJN
JBP1.0,$
//
//闹钟设置入口
ZWJN:JBP1.1,XPP1
LCALLRINGP
LCALLRELAY
//
//调时入口
XPP1:JBP1.3,XPP2
LCALLZPP1
XPP2:JBP1.2,ZPP
LCALLZPP2
ZPP:AJMPLOOP2//
//定时器0中断
SETBP2.1
RET
//
//闹钟调整程序
RINGP:MOV20H,#33H
MOV21H,#6
MOVR3,#20
MOV22H,#5
LPRP:LCALLRELAY1
JBP1.1,LPRP1
MOVR3,#20
MOVA,20H
ADDA,#3
MOV20H,A
DJNZ22H,LPRP
RET
LPRP1:JBP1.3,LPRP2
POP00H
RETI
//定时器0中断返回
//软中断1
ZPP1:MOVA,31H
ADDA,#1
DAA
MOV31H,A
CJNEA,#60H,END1
MOV31H,#00H
END1:LCALLRELAY
RET
//
//软中断2
ZPP2:MOVA,32H
ADDA,#1
DAA
MOV32H,A
CJNEA,#24H,END2
2.3
.
图3.1-1
数码显示部分采用八块共阳极八段数码显示管分别对时,分,秒进行显示。将第三块和第六块显示横杠,可以使时间显示更美观.显示部分采用刷新显示方案.具体如下:
当p2口输出11111110第一块的三极管导通,u1数码管被选中,然后p0口输出数字的数码管编码。如p0口输出00111111时u1数码管就输出数字0。当11111110循环右移一位是u2被选通显示。依次类推u1-u8数码管显示完成,再循环显示。由于单片机的刷新速度很快所以8个数码管看起来就像同时显示的一样。
第一章
设计要求:1、用单片机及6位LED数码管显示时、分、秒
00时00分00秒——23时59分59秒循环运行
2、整点提醒0,1…23时 短蜂鸣
3、用按键实现 时、分、秒 调整
*4、省电功能(关闭显示)
*5、定时设定提醒 如设定08时15分00秒长蜂鸣
*6、秒表功能 显示 ××分××秒. ××
健 复位 从00分00秒00开始计时
MOVP2,#0DBH
MOVP0,#0BFH //END
DPZP1:MOVP0,#0FFH
MOVDPTR,#CHART//P3part
MOVA,R2
MOVCA,@A+DPTR
MOVP2,A //
MOVDPTR,#LED
MOVA,@R1
JNBF0,DPZPS
INCR1
SWAPA
DPZPS:ANLA,#0FH
RTTZP:RET
//响铃程序
RING:MOVR0,#34H
MOV24H,#6
RRING:MOVA,31H
SUBBA,@R0
JNZERING
INCR0
MOVA,32H
SUBBA,@R0
DECR0
JNZERING
CPLP1.7
RET
ERING:MOVA,R0
ADDA,#3
MOVR0,A
DJNZ24H,RRING
MOVCA,@A+DPTR
MOVP0,A
CPLF0百度文库
DJNZR2,DPZP1
RET
//显示子程序结束
//不规则循环加一子程序
TTZP:MOVA,@R0
ADDA,#1
DAA
MOV@R0,A
MOVA,R3
MOVCA,@A+DPTR
CLRC
SUBBA,@R0
JNCRTTZP
MOV@R0,#0
INCR0
DJNZR3,TTZP
MOV32H,#00H
END2:LCALLRELAY
RET
//
//延时显示程序
RELAY:MOVR6,#255
REP:MOVR7,#4
REEE:MOVR2,#6
MOVR1,#30H
LCALLDPZP
DJNZR7,REEE
DJNZR6,REP
RET
//延时显示程序结束
//显示子程序
DPZP:MOVP0,#0FFH //显示横杠
TZP:PUSH00H
PUSH03H
INC R4//软件-硬件延时1秒
CJNER4,#40,ENDI
MOVR4,#0
INCR5
CJNER5,#100,ENDI //结束
MOVR5,#0
ZP:MOVR0,#30H
MOVR3,#3
MOVDPTR,#TCOUNT
LCALLTTZP
LCALLRING
ENDI:POP03H
DECR1
MOV@R1,#00H
DECR1
MOVA,#00H
ORLA,#0A0H
ADDA,R2
MOV@R1,A
DECR1
DJNZR2,LPRPI
RET
//
//延时显示程序1
RELAY1:MOVR6,#255
REP1:MOVR7,#4
REEE1:MOVR2,21H
MOVR1,20H
LCALLDPZP
DJNZR7,REEE1
参考文献
[1]
[2]
[3]
[4]
[5]
辞谢
在本次数字电路课程设计完成之际,谨向我的指导老师**老师致予衷心的谢意。
此次课程设计得到了**老师细心指导,给我很大的支持。这设计过程中遇到了很多困难,诸如怎样不熟悉的集成块的使用,数字电路的编码等问题。在解决这些问题的过程中多得到了**老师的大力支持,在此再次衷心的感谢**老师。
MOVA,@R0
ADDA,#1
DAA
MOV@R0,A
CJNEA,#24H,LPRP31
MOV@R0,#00H
LPRP31:LCALLRELAY1
LPRP3:DJNZR3,LPRP
LPRPEND:RET
//
//闹钟组初始化程序(共5组)
RINGPI:MOVR2,#5
MOVR1,#41H
LPRPI:MOV@R1,#00H
2.4
键盘部分采用普通的按键进行设计,使用软件延时消除开关抖动.
2.5
闹铃电路通过p1.7口输出1HZ脉冲使蜂鸣器发出间隔为一秒的蜂鸣声.
2.6
2.7
图3.4-1
第三章
3.1
3.2
//主程序
ORG0000H
AJMPMAIN
ORG000BH
AJMPTZP
ORG0030H
MAIN:MOVSP,#60H
MOVR4,#00H
MOVTMOD,#02h
MOVTH0,#06H
MOVTL0,#06H
SETBEA
SETBET0
SETBTR0
//初始化
MOVR2,#3
MOVR1,#30H
LOOP:MOV@R1,#00H
INCR1
DJNZR2,LOOP
LCALLRINGPI
//
LOOP2:MOVR2,#6
MOVR1,#30H
LCALLDPZP
启动 从00分00秒00开始计时
停止 显示实际计时 ××分××秒××
第二章
2.1
2.2
设计框架图如图2.1所示总共分为5小部分:时间显示部分,键盘控制部分,单片机部分,闹钟部分,电源部分。本设计各部分由统一电源集中供电,外加被用电源确保主电源断电时备用电源及时供电避免时间的丢失.采用12MHZ晶振为单片机提供时钟。显示部分采用容易购买的LED八段数码显示管,利用单片机输出高低电平实现数码管的刷新显示。LED具有显示明亮,容易识别,价格便宜等优点,特别适合时间的显示。按键部分采用普通的按建开关,使用查询方式从而节约元件。
TCOUNT:DB0,23H,59H,59H
END
第四章
在整个课程设计完后,总的感觉是:有收获。以前上课都是上一些最基本的东西,而现在却可以将以前学的东西作出有实际价值的东西。在这个过程中,我的确学得到很多在书本上学不到的东西,如:如何利用现有的元件组装得到设计要求,如何找到错误的原因,如何利用计算机来画图等等。但也遇到了不少的挫折,有时遇到了一个错误怎么找也找不到原因所在,找了老半天结果却是芯片的管脚接错了,有时更是忘接电源了。在学习中的小问题在课堂上不可能犯,在动手的过程中却很有可能犯。特别是在接电路时,一不小心就会犯错,而且很不容易检查出来。但现在回过头来看,还是挺有成就感的。
DJNZR6,REP1
RET
//延时显示程序结束
//数据表
LED:DB0c0H,0f9H,0a4H,0b0H,099H,092H,82H,0f8H,80H,90H,8EH,0A8H//0,1,2,3,4,5,6,7,8,9,F,n
CHART:DB0FEH,0FEH,0FDH,0F7H,0EFH,0BFH,7FH
相关文档
最新文档