ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:186KB ,
资源ID:7852944      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7852944.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机课程报告电子时钟.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机课程报告电子时钟.docx

1、单片机课程报告电子时钟电子时钟的设计一、设计目的1、增进对单片机的感性认识,加深对单片机理论方面的理解。2、掌握单片机的内部功能模块的应用,如定时器/计数器、中断、片内外存贮器、I/O口、串行口通讯等。3、了解和掌握单片机应用系统的软硬件设计过程、方法及实现,为以后设计和实现单片机应用系统打下良好基础4、加深对本门课程所学理论知识的理解与应用,提高对所学理论知识的综合运用能力,对计算机控制系统有一个整体认识,掌握计算机控制系统的设计方法。通过课程设计,还可以培养独立工作能力,为将来毕业设计打好基础。二、设计要求 1. 用80C51单片机及接口电路设计一个电子计时器。系统硬件设计:根据任务要求,

2、完成单片机最小系统及其组成功能完整的系统。 系统软件设计:根据数字电子计时器功能,完成控制软件的编写与调试,并对数码显示进行控制。2. 实现的功能:运行时,电子钟从00.00开始自动计时。设置校正按键,能对闹钟时、闹钟分、时、分进行调整。设置时间与当前闹钟值切换显示键,能对时间与当前闹钟切换显示。设置+1键,能对所要校正单元内容+1。设置确定/开关闹钟键3.显示要求:在没有键的情况下,四个数码管显示正常走时时间且显示时的第二 个数码管小数点每秒内亮半秒、灭半秒,其余三个数码管小数均不亮。当按下切换显示键时,数码管由显示时间变为显示当前闹钟值,这时小数点常亮。在按下回到走时。按下校正键后,开始时

3、为校闹钟时,再按一下校正键,跳至校闹钟分,再按一下则为校时,再按一下后为校分,再按一次就回到校月,依次循环,当校闹钟时,该校正单元内容在数码管上每秒内亮半秒、灭半秒,且第二个数码码小数点为常亮。当为校时或校分时,该校正单元内容在数码管上每秒内亮半秒、灭半秒,第二个数码管小数点每秒内亮半秒、灭半秒。按下确定键后,不管前一种按键是哪一种均跳至显示正常走时状态。当时钟走到设定的闹钟值时,蜂鸣器会以30MS的周期响六秒(时间可以通过程序设定)确定键有开启/关闭蜂鸣器功能,并以P3.3口接LED灯(低电平亮)作指示,当P3.3为低电平时,闹钟开启,反之则为关闭)。三、设计思路利用MCS-51单片机内部的

4、定时/计数器、中断系统、以及独立键盘和数码管等部件,设计一个单片机电子时钟。设计的电子时钟通过数码管显示,并能通过按键实现设置时间、闹钟值以及两者切换显示等操控。用定时/计数器T0,工作于定时,采用方式1,对12MHZ的系统时钟进行定时计数,初值设为0BDCH,形成1/16S定时时间。中断服务程序中对1/16S定时中断次数计数,若到计到了16次,秒单元内容加1,否则执行判键,当秒单元内容加至60时,自动清0秒单元同时分单元内容加1,同理对时、闹钟时、闹钟分处理,分别用片内RAM分别存秒、分、时、闹钟分、闹钟时,然后根据按键信息选择要显示的单元。显示时,当显示时间时,小数点每秒内亮半秒、灭半秒,

5、因为2FH.3位0和1每半秒切换一次,故实现这个可以利用2FH.3来判断,当显示闹钟值时,这时小数点常亮。对于校时或校分显示,当校正其中一个单元内容时,显示该单元内容每秒内亮半秒、灭半秒,且小数点也随之一起闪烁;当校闹钟时或闹钟分时,校正单元闪烁,但小数点为常亮。以校正指针21H底2位:00为校月,01为校日,10为校时,11为校分,若校正指针21H.0为1时,则为校闹钟分或校分,故使后两个数码闪烁,反之则前两个数码管闪烁,同时以20H.1来区分是校闹钟还是校时来确定小数点是常亮还是闪烁。以此来区分当前校正的单元为哪个单元。显示判断与判键思路:1.时间/闹钟值显示标志位上电时标志位置1显示时间

6、,切换时标志位为0显示闹钟值。2.校正状态标志位(20H.1)标志位为0时正常走时,KEY3键无效。3.标志位位1时KEY2、KEY3、KEY4有效,KEY1键无效。四、按键分配 1:k1键(P1.4):时间/闹钟值切换显示键 2:K2键(P1.5):校正键3:K3键(P1.6):+1键4:K4键(P1.7):确定键以及开关闹钟蜂鸣器(四个按键均以低电平有效,且不要同时按下多个键)五、地址分配1.闹钟时单元: 30H2.闹钟分单元: 31H3.时单元: 32H4.分单元: 33H5.秒单元: 34H6.1/16秒计数单元: 2FH7.校正指针: 21H低两位(00为校月、01日、10时、11分

7、)8.时间/闹钟状态标志: 20H.0(低电平为显示日期,反之为显示闹钟值)9.校正/走时标志: 20H.1(低电平时为走时,反之为校正)10.显示缓冲单元: 3BH,3AH11.按键信息存放单元: 50H 六、程序原理与流程图原理图 流程图1主程序 2中断程序 N Y Y N Y N Y N Y 七、编写程序ORG 0000H SJMP MAIN ORG 000BH LJMP IT0P ;T0中断入口 ORG 0030HMAIN: MOV 50H,#0FFH ;按键信息存放单元(作用:长按按键只当按一次) MOV 30H,#0 ;定时闹钟时单元 MOV 31H,#1 ;定时闹钟分单元,开始默

8、认为一分钟闹钟 MOV 32H,#0 ;时单元 MOV 33H,#0 ;分单元 MOV 34H,#0 ;秒单元 MOV 2FH,#16 ;1/16秒计数单元(定时器为1/16秒中断溢出) CLR 20H.1 ;20H.1为0走时,为1校正 SETB 20H.0 ;20H.0为0显示当前闹钟值,为1显示走时 MOV TMOD,#01H ;T0工作于定时,方式1 MOV TH0,#0BH ;赋定时器T0初值,定时1/16S62500US MOV TL0,#0DCH MOV IE,#82H ;允许定时器T0中断 SETB TR0 ;启动定时器T0/;显示模块/ DISP: MOV DPTR,#TAB

9、 ;取笔型码表始地址 JB 20H.1,DISP1 ;校正?若是跳至校正显示 MOV A,3BH ;不是校正,显示走时/闹钟值 ANL A,#0F0H ;取时高位BCD码 SWAP A MOVC A,A+DPTR ;读时高位BCD码笔型码并通过P0口输出 SETB P2.0 ;数据片选74LS573芯片使能输入有效 CLR P2.1 ;位选片选74LS573芯片工作于锁存方式 MOV P0,A ;送时高位笔型码输出显示 SETB P2.1 ;片选573芯片工作 CLR P2.0 ;573锁存时高位 MOV P0,#0FEH ;只允许第一个数码管亮 LCALL DELAY ;延时,调节动态显示效

10、果 MOV A,3BH ANL A,#0FH ;取时低位 MOVC A,A+DPTR ;读时低位笔型码 JNB 20H.0,LOOP1 ;显示当前闹钟值?若是,秒常亮 JB 2FH.3,LOOP1 ;显示走时,秒闪;半秒到? SJMP NEXT1 ;半秒到,秒灭 LOOP1: ORL A,#80H ;秒亮 NEXT1: SETB P2.0 CLR P2.1 MOV P0,A ;送时低位笔型码输出显示 SETB P2.1 CLR P2.0 MOV P0,#0FDH ;只允许第二个数码管亮 LCALL DELAY ;延时,调节动态显示效果 MOV A,3AH ANL A,#0F0H ;取分高位 S

11、WAP A MOVC A,A+DPTR SETB P2.0 CLR P2.1 MOV P0,A ;输出显示分高位值 SETB P2.1 CLR P2.0 MOV P0,#0FBH ;只允许第三个数码管亮 LCALL DELAY ;延时,调节动态显示效果 MOV A,3AH ANL A,#0FH ;取分低位 MOVC A,A+DPTR SETB P2.0 CLR P2.1 MOV P0,A ;输出显示分低位值 SETB P2.1 CLR P2.0 MOV P0,#0F7H ;只允许第四个数码管亮 LCALL DELAY ;延时,调节动态显示效果 LJMP EXT ;显示闹钟模块/;校闹钟时或校时

12、显示代码/ DISP1: JB 21H.0,LOOP2 ;校闹钟分或校分?不是,跳至闹钟分或校分 MOV A,3BH ;校闹钟时或校时 ANL A,#0F0H ;显示时高位 SWAP A MOVC A,A+DPTR JNB 2FH.3,LP2 ;半秒到?没,跳正常显示 MOV A,#0 ;半秒到,时高位灭 LP2: SETB P2.0 CLR P2.1 MOV P0,A SETB P2.1 CLR P2.0 MOV P0,#0FEH ;只允许第一个数码管显示 LCALL DELAY MOV A,3BH ANL A,#0FH MOVC A,A+DPTR JNB 2FH.3,LP3 ;半秒到?没,

13、显示时低位 MOV A,#0 ;半秒到,时低位送灭码LP3: JNB 21H.1,LOOP3 ;校闹钟时?是,跳校闹钟时 JB 2FH.3,NEXT2 ;校时,半秒到?没,秒灭 ORL A,#80H ;半秒到,秒亮 SJMP NEXT2 LOOP3: ORL A,#80H ;校闹钟时,秒亮(校闹时,秒常亮;校时,秒闪) NEXT2: SETB P2.0 CLR P2.1 MOV P0,A SETB P2.1 CLR P2.0 MOV P0,#0FDH ;只允许第二位数码管显示 LCALL DELAY MOV A,3AH ANL A,#0F0H ;取分高位 SWAP A MOVC A,A+DPT

14、R SETB P2.0 CLR P2.1 MOV P0,A SETB P2.1 CLR P2.0 MOV P0,#0FBH ;只允许第三位数码管显示 LCALL DELAY MOV A,3AH ANL A,#0FH ;取分低位 MOVC A,A+DPTR MOV P0,A MOV P2,#0F7H ;只允许第四位数码管显示 LCALL DELAY LJMP EXT ;跳至闹钟模块/;校闹钟分或校分显示代码/LOOP2: MOV A,3BH ;校闹分校分 ANL A,#0F0H ;取时高位 SWAP A MOVC A,A+DPTR SETB P2.0 CLR P2.1 MOV P0,A SETB

15、 P2.1 CLR P2.0 MOV P0,#0FEH ;只允许第一位数码管显示 LCALL DELAY MOV A,3BH ANL A,#0FH ;取时低位 MOVC A,A+DPTR JNB 21H.1,LOOP4 ;校闹钟分?跳校闹分 JB 2FH.3,NEXT3 ;校分,半秒到?没,秒灭 LOOP4: ORL A,#80H ;校闹分,秒亮(校闹钟分,秒常亮;校分,秒闪) NEXT3: SETB P2.0 CLR P2.1 MOV P0,A SETB P2.1 CLR P2.0 MOV P0,#0FDH ;只允许第二位数码管显示 LCALL DELAY MOV A,3AH ANL A,#

16、0F0H ;取分高位 SWAP A MOVC A,A+DPTR JNB 2FH.3,LP4 CLR A LP4: SETB P2.0 CLR P2.1 MOV P0,A SETB P2.1 CLR P2.0 MOV P0,#0FBH ;只允许第三位数码管显示 LCALL DELAY MOV A,3AH ANL A,#0FH ;取分低位 MOVC A,A+DPTR JNB 2FH.3,LP5 CLR A LP5: SETB P2.0 CLR P2.1 MOV P0,A SETB P2.1 CLR P2.0 MOV P0,#0F7H ;只允许第四位数码管显示 LCALL DELAY/闹钟模块/ E

17、XT: JB P3.3,LOP ;是否允许闹钟?低电平允许 MOV A,32H ;开 CJNE A,30H,LOP ;判断是否到闹钟时间? MOV A,33H CJNE A,31H,LOP MOV A,#6 ;到闹钟值,设定蜂鸣器开启时间(默认为6S) SUBB A,34H ;设定值-秒值,当C0时,开启蜂鸣 JC LOP LCALL BUZZER ;调用蜂鸣器子程序 LOP: LJMP DISP ;反复执行显示模块与闹钟模块/;中断服务程序/ IT0P: MOV TH0,#0BH ;T0重赋初值,定时1/16S62500US MOV TL0,#0DCH DJNZ 2FH,KEY ;到了1秒?

18、没有跳至判键 MOV 2FH,#16 ;1秒到,重赋1/16秒计数单元初值 MOV A,34H ADD A,#1 ;秒+1 DA A ;秒值十进制调整 MOV 34H,A ;送回秒单元 CJNE A,#60H,KEY ;到了60秒?没有跳至判键 MOV 34H,#0 ;到了,秒清0 MOV A,33H ADD A,#1 ;分+1 DA A MOV 33H,A CJNE A,#60H,KEY ;到了60分钟?没有跳至判键 MOV 33H,#0 ;到了,分清0 MOV A,32H ADD A,#1 ;时+1 DA A MOV 32H,A CJNE A,#24H,KEY ;到了24小时?没有跳至判键

19、 MOV 32H,#0 ;到了,时清0 /;判键及键处理/KEY: JNB 20H.1,ZOUSHI ;是否为走时?若是,跳到走时 LJMP JIAOSHI ;不是,跳到显示闹钟值ZOUSHI: MOV A,P1 ;读入按键信息 ORL A,#0EH ;消除闹钟启动位影响 CJNE A,50H,KEY1 ;有键按下? LJMP NONE1 ;无按下跳至走时显示KEY1: MOV 50H,A ;有按下,按键信息存至按键存储单元 JNB ACC.4,SWITCH1 ;若时间/闹钟切换键按下,跳至切换显示代码 JNB ACC.5,SET1 ;若校时键按下时,跳至校时代码 JNB ACC.7,SURE

20、 LJMP NONE1 ;按下的键无效,跳至执行走时显示SWITCH1:CPL 20H.0 ;时间/闹钟显示切换键按下,状态标志切换NONE1: JNB 20H.0,CLOCK1 ;时间/闹钟显示标志为0,跳转至显示闹钟 MOV 3BH,32H ;为1,显示时间 MOV 3AH,33H LJMP EXT1 ;显示CLOCK1:MOV 3BH,30H ;闹钟时传给显缓 MOV 3AH,31H ;闹钟分传给显缓 LJMP EXT1 ;显示SET1: SETB 20H.1 ;校正键按下,走时标志切换至校时 MOV 21H,#0 ;初始化校正指针 CLR 20H.0 ;标志为显示闹钟时间 MOV 3B

21、H,30H ;将闹钟值送至显缓 MOV 3AH,31H LJMP EXT1JIAOSHI:MOV A,P1 ;读入按键信息 ORL A,#0EH CJNE A,50H,KEY2 ;有键按下? LJMP NONE2 ;无键按下跳至走时显示KEY2: MOV 50H,A ;有按下,按键信息存至按键存储单元 JNB ACC.5,SET2 ;校时键按下? JNB ACC.6,ADD2 ;若+1键按下? JNB ACC.7,SURE ;若确定键按下? LJMP NONE2 ;无效键处理SET2: INC 21H ;校时键按下,调整校正指针 ANL 21H,#03H ;屏弊高六位,取低两位作为校正指针 S

22、JMP NONE2 ADD2: MOV A,#30H ;将闹钟时单元地址取出 ADD A,21H ;根据校正指针确定校正单元 MOV R0,A MOV A,R0 ;取校正单元内容 ADD A,#1 ;校正单元内容+1 DA A ;十进制调整 MOV R0,A ;经校正后传回 CJNE R0,#30H,C_HOUR ;校闹时? CJNE R0,#24H,NONE2;24小时未满,校正显示 MOV R0,#0 ;时初始化 SJMP NONE2 C_HOUR:CJNE R0,#31H,C_MIN ;校闹分? CJNE R0,#60H,NONE2;60分钟未满跳,校正显示 MOV R0,#0 ;分初始

23、化 SJMP NONE2 C_MIN: CJNE R0,#32H,MIN ;校时? CJNE R0,#24H,NONE2;校时,24小时未满跳,校正显示 MOV R0,#0 ;时初始化 SJMP NONE2 ;MIN: CJNE R0,#60H,NONE2;校分,60分钟未满跳,校正显示 MOV R0,#0 ;分初始化 SJMP NONE2 SURE: CPL P3.3 ;开/关闹钟功能,低电平开 CLR 20H.1 ;校正确定,显示时间 SJMP TIME2NONE2: JNB 21H.1,CLOCK2 ;校闹钟?跳至显示闹钟值TIME2: SETB 20H.0 ;校时,显示走时 MOV 3

24、BH,32H ;时传给显缓 MOV 3AH,33H ;分传给显缓 LJMP EXT1CLOCK2:CLR 20H.0 ;显示闹钟值 MOV 3BH,30H MOV 3AH,31H EXT1 : RETI ;中断退出/延时子程序/ DELAY: MOV 40H,#10 ;3MS子程序 DL: MOV 41H,#82H DJNZ 41H,$ DJNZ 40H,DL RET/蜂鸣器子程序/BUZZER: CPL P1.0 ;闹钟子程序 MOV 36H,#5 ;T=30ms方波 B_LP: ACALL DELAY DJNZ 36H,B_LP RET TAB: DB 77H,44H,3EH,6EH,4D

25、H,6BH,7BH,46H,7FH; 09笔型码 END八、设计心得 本次课程设计是用80C51单片机、74LS64芯片及接口电路设计一个电子时钟,经过认真地编写程序以及调试程序,结果满足设计要求,验证无误。从开始设计到仿真实现,再到课程设计报告的完成,每走一步对我来说都是新的尝试与挑战。在此期间,我学到了很多知识也有很多感受,我开始了独立的学习和试验,查看相关的资料和书籍,让自己头脑中模糊的概念逐渐清晰,使自己非常稚嫩作品一步步完善起来,每一次改进都是我学习的收获,每一次试验的成功都会让我兴奋好一段时间。当看着自己的程序,自己成天相伴的系统能够健康的运行,真是莫大的幸福和欣慰。我相信其中的酸甜苦辣最终都会化为甜美的甘泉。在设计过程中,通过针对性地查找资料,了解了些电子方面的资料,既增长了自己见识,又对80C51有了一个全面的认识,这些知识贯穿到一起,对电子专业有了一个更全面的认识! 总之这次课程设计让我把理论设计和工程实践相结合、巩固基础知识与培养创新意识相结合等方面全面的培养学生的全面素质。这些在我今后的学习和工作当中都会有很大的帮助。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1