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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

单片机数字时钟课程设计报告.docx

1、单片机数字时钟课程设计报告单 片 机 应 用 综 合 设 计 报 告设 计 题 目: 学 院 名 称: 专 业: 班 级: 姓 名: 指 导 教 师: 日 期: 2015.12.282015.12.31一、任务书1. 用80C51设计一个数字时钟。2. 可显示时、分、秒。3. 按键实现时、分、秒人工校准。 4. 具有闹钟功能。5. 实现秒表/时钟转换,秒表要求精确到10ms。二、总体方案用80C51设计一个数字时钟。该数字钟能显示时、分、秒,并具有闹钟、秒表功能。由四个按键控制,功能分别为启动、调时,调闹、止闹、退出调时,切换秒表时钟,加一,减一、暂停。另外两个按键为电源控制键,复位键。该电子

2、钟上电或按键复位后能自动显示系统提示符“P.”,进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从0时0分0秒开始运行,进入时钟运行状态;再次按电子钟启动/调整键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按启动/调整键再次进入时钟运行状态。用两个四位一体共阴数码管作时间显示:能显示时、分、秒。用一个+5V有源蜂鸣器做闹钟声报警功能,并用四个按键做时间和闹钟调整的数字钟。利用定时/计数器、中断系统来实现时钟计数。用定时器1实现时钟计时,定时器0实现秒表计时。把定时器0和定时器1都设为工作方式1,定时时间为1.25ms和125ms,则计数溢出8次即得时钟、秒表计时最小

3、单位(10毫秒/秒)。晶振频率f=6MHz。X1=216-125*103/2=0BDCH。X2=216-1.25*103/2=0FEFFH。采用中断方式进行溢出次数累计,计满8次。从秒到分和从分到时的计时是通过累加和数值比较实现。三、硬件设计(1) 单片机最小系统单片机最小系统由单片机,时钟电路,复位电路组成。其中由6MHz晶振构成的振荡电路,并通过使复位端经电阻与Vcc电源接通而实现的按键电平复位电路。(2) 电源系统 以+5V直流稳压电源作为电源供应系统。(3) 输入系统由四个调整键组成独立式键盘,分别具有为启动、调时、退出调闹,调闹、止闹、退出调时,秒表切换,加一,减一、暂停功能。(4)

4、 输出系统由两个四位一体的共阴数码管,并以74LS244做驱动电路构成显示输出,由NPN三极管以及一个蜂鸣器构成闹铃。四、软件设计4.1 单片机资源使用情况 (1) 时钟与秒表的时分秒在片内RAM存储地址如表3.1所示。表3.1 时钟存储地址名称时 分 秒十 位7AH 78H 76H个 位79H 77H 75H 表3.4 秒表存储地址名称时 分 秒十 位66H 64H 62H个 位65H 63H 61H (2) 电子钟的时钟时间在八位数码管上进行显示,因此,在片内RAM中设置显示缓冲区共8个单元。 LED7 LED6 LED5 LED4 LED3 LED2 LED1 LED0 74H 73H

5、72H 71H 70H 6FH 6EH 6DH显示缓冲区从左至右依次存时、-、分、-、秒的数值。(3) 闹钟的时分秒在片内RAM存储地址如表3.2所示。表3.2 闹钟标志位存储地址表名称时 分 秒十 位6CH 6AH68H个 位6BH 69H 67H(4) P0口作为数据显示输出、P1.4作为闹铃输出,P1.0-P1.3接按键输入,20H.0-20H.3作为P1.0-P1.3的位标志存储地址。(5) 运用了定时器1作为1秒计时所用,定时器0作为10ms计时所用。4.2 软件系统程序流程框图主程序流程框图如图3.1所示。图3.1 主程序流程框图(2) 1秒计时子程序流程框图如图3.2所示。 图3

6、.2 1秒计时流程框图图3.3 键监控程序流程框图 (3) 键监控子程序流程框图如图3.3所示,它还包含了键扫描和P1口处理子程序,它们的程序流程框图分别为图3.4和3.5。图3.5 P1口处理子程序流程框图图3.4 键扫描子程序流程框图4.3 源程序清单 LJMP MAIN ORG 000BH LJMP INTT0 ORG 001BH LJMP INTT1;-;-主程序-;-MAIN: LCALL BEGIN ;上电显示“PP” MOV SP, #30H MOV R0, #7AH ;清7AH-67H单元 MOV R1, #14H LCALL CLR0 MOV 20H, #00H MOV 6C

7、H, #01H MOV 6BH, #02H MOV 7BH, #0CH ;熄灭符 MOV TMOD, #11H ;定时器0、1的工作方式为1 MOV TH1, #0BH ;125ms MOV TL1, #0DCH MOV TH0, #0FEH MOV TL0, #0FFH ;1.25ms MOV R7, #08H ;125ms*8=1s,1.25ms*8=10ms SETB EA SETB ET1 SETB TR1LOOP: LCALL DIR ;调显示子程序 LCALL CLOCK ;查闹钟 LCALL KEYC JB 20H.0, KEYAA ;若A键按下跳转,调时 JB 20H.1, K

8、EYCC ;若B键按下跳转,调闹 JB 20H.2, KEYEE ;若C键按下跳转,切换秒表 JB 20H.3, KEYDD ;若D键按下跳转,暂停 LJMP LOOP;-秒表显示程序-KEYEE: CLR ET1 CLR TR1 SETB ET0 SETB TR0MBLOOP: LCALL DIRS LCALL DIRS LCALL KEYCS JB 20H.2, OUTSETS JB 20H.3, MBZ LJMP MBLOOPOUTSETS:CLR ET0 CLR TR0 SETB ET1 SETB TR1 LJMP LOOPMBZ: CLR ET0 CLR TR0MBZLOOP:LCA

9、LL KEYCS JB 20H.3, OUTMBZ JB 20H.2, OUTSETS LJMP MBZLOOPOUTMBZ: SETB ET0 SETB TR0 LJMP MBLOOP;-;-闹钟调整程序-;-KEYCC: CLR ET1 LCALL SETCH SETB ET1 LJMP LOOP;-;-暂停-;-KEYDD: CLR ET1 CLR TR1LOOPSP: LCALL KEYC ;键扫描 JB 20H.3, OUTSP ;D键按下,暂停取消,继续走 LJMP LOOPSPOUTSP: SETB TR1 SETB ET1 LJMP LOOP ;-;-时钟调整程序-;-KEYA

10、A: CLR TR1 CLR ET1 LJMP SETHHOUTSET: SETB ET1 SETB TR1 LJMP LOOP;-时位调整-;-SETHH: MOV R5, #0FFHLOOPH0: MOV R0, #79H MOV R1, #7AH LCALL RDIRH ;输出 LCALL DIR ;显示 LCALL DIR LCALL KEYC ;键扫描 JNB 20H.0, H1 LJMP SETMM ;A键按下,调分H1: JNB 20H.1, H2 LJMP OUTSET ;B键按下,退出调时H2: JNB 20H.2, H3 LJMP ADDH1 ;C键按下,加 1H3: JN

11、B 20H.3, H4 LJMP SUBH1 ;D键按下,减1H4: DJNZ R5, LOOPH0 ;无键按下,循环,返回 LJMP OUTSET;-时加减一-ADDH1: MOV R0, #79H ;加一 LCALL ADD1 LJMP SETH SUBH1: MOV R0, #79H ;减一 LCALL SUBBH1 LJMP SETHSETH: MOV R0, #79H MOV R1, #7AH LCALL RDIRH CJNE R3, #24H, SETHH MOV 79H, #00H MOV 7AH, #00H LJMP SETHH;=分位调整=SETMM: MOV R5, #0F

12、FHLOOPM0: MOV R0, #77H MOV R1, #78H LCALL RDIRM LCALL DIR LCALL DIR LCALL KEYC JNB 20H.0, M1 LJMP SETSS ;A键按下,调秒M1: JNB 20H.1, M2 LJMP OUTSETM2: JNB 20H.2, M3 LJMP ADDM1M3: JNB 20H.3, M4 LJMP SUBBMM4: DJNZ R5, LOOPM0 LJMP OUTSET;-分加减一-ADDM1: MOV R0, #77H ;加一 LCALL ADD1 LJMP SETMSUBBM: MOV R0, #77H ;

13、减一 LCALL SUBBMS LJMP SETMSETM: MOV R0, #77H MOV R1, #78H LCALL RDIRM CJNE R3, #60H, SETMM MOV 77H, #00H MOV 78H, #00H LJMP SETMM;=秒位调整=SETSS: MOV R5, #0FFHLOOPS0: MOV R0, #75H MOV R1, #76H LCALL RDIRS LCALL DIR LCALL DIR LCALL KEYC JNB 20H.0, S1 LJMP SETHHS1: JNB 20H.1, S2 LJMP OUTSETS2: JNB 20H.2,

14、S3 LJMP ADDS1S3: JNB 20H.3, S4 LJMP SUBBSS4: DJNZ R5, LOOPS0 LJMP OUTSET;-秒加减一-ADDS1: MOV R0, #75H ;加一 LCALL ADD1 LJMP SETSSUBBS: MOV R0, #75H ;减一 LCALL SUBBMS LJMP SETSSETS: MOV R0, #75H MOV R1, #76H LCALL RDIRS CJNE R3, #60H, SETSS MOV 75H, #00H MOV 76H, #00H LJMP SETSS;-;=闹钟调整子程序=;-;=时位调整=SETCHH:

15、 MOV R5, #0FFHLOOPCH0:MOV R0, #6BH MOV R1, #6CH LCALL RDIRH LCALL DIR LCALL KEYC JNB 20H.0, CH0 LJMP OUTSC ;结束子程序CH0: JNB 20H.1, CH1 LJMP SETCM ;B键按下,调分CH1: JNB 20H.2, CH2 LJMP ADDCH1CH2: JNB 20H.3, CH3 LJMP SUBCH1CH3: DJNZ R5, LOOPCH0 LJMP OUTSC;-时加减一-ADDCH1: MOV R0, #6BH ;加一 LCALL ADD1 LJMP SETCH

16、SUBCH1: MOV R0, #6BH ;减一 LCALL SUBBH1 LJMP SETCHSETCH: MOV R0, #6BH MOV R1, #6CH LCALL RDIRH CJNE R3, #24H, SETCHH MOV 6CH, #00H MOV 6BH, #00H MOV R0, #6BH MOV R1, #6CH LCALL RDIRH LJMP SETCHH;=分位调整=SETCMM: MOV R5, #0FFHLOOPCM0:MOV R0, #69H MOV R1, #6AH LCALL RDIRM LCALL DIR LCALL KEYC JNB 20H.0, CM

17、0 LJMP OUTSCCM0: JNB 20H.1, CM1 LJMP SETCHCM1: JNB 20H.2, CM2 LJMP ADDCM1CM2: JNB 20H.3, CM3 LJMP SUBCM1CM3: DJNZ R5, LOOPCM0 LJMP OUTSC;-分加减一-ADDCM1: MOV R0, #69H ;加一 LCALL ADD1 LJMP SETCMSUBCM1: MOV R0, #69H ;减一 LCALL SUBBMS LJMP SETCMSETCM: MOV R0, #69H MOV R1, #6AH LCALL RDIRM CJNE R3, #60H, SET

18、CMM MOV 6AH, #00H MOV 69H, #00H MOV R0, #69H MOV R1, #6AH LCALL RDIRM LJMP SETCMMOUTSC: RET;-;=调整显示装载子程序=;-RDIRH: MOV 6DH, 7BH MOV 6EH, 7BH MOV 6FH, 7BH MOV 70H, 7BH MOV 71H, 7BH MOV 72H, 7BH MOV 73H, R0 MOV 74H, R1 RETRDIRM: MOV 6DH, 7BH MOV 6EH, 7BH MOV 6FH, 7BH MOV 70H, R0 MOV 71H, R1 MOV 72H, 7B

19、H MOV 73H, 7BH MOV 74H, 7BH RET RDIRS: MOV 6DH, R0 MOV 6EH, R1 MOV 6FH, 7BH MOV 70H, 7BH MOV 71H, 7BH MOV 72H, 7BH MOV 73H, 7BH MOV 74H, 7BH RET ;-;=键扫描子程序=;-KEYC: LCALL KEYDEAL ;键扫描子程序 LCALL DIR LCALL DIR LCALL KEYDEAL ;再次确认键有无按下,去抖动 JZ EXIT MOV B, 20HKEYSF: LCALL KEYDEAL JZ KEY1 LCALL DIR LJMP KEY

20、SF ;当键按下弹起后保存键值,返回KEY1: MOV 20H, BEXIT: RET;-秒表键扫描子程序-KEYCS: LCALL KEYDEAL ;键扫描子程序 LCALL DIRS LCALL DIRS LCALL KEYDEAL JZ EXITS MOV B, 20HKEYSFS: LCALL KEYDEAL JZ KEY1S LCALL DIRS LJMP KEYSFSKEY1S: MOV 20H, BEXITS: RET;-P1口处理子程序-KEYDEAL:PUSH PSW ;P1口处理子程序 MOV A, P1 CPL A ANL A, #0FH MOV 20H, A POP P

21、SW RET;-;=1S计时程序=;-INTT1: PUSH PSW PUSH ACC CLR ET1 CLR TR1 MOV TH1, #0BH MOV TL1, #0DCH SETB TR1 DJNZ R7, OUTT0ADDSS: MOV R7, #08H MOV R0, #75H LCALL ADD1 CLR C CJNE R3, #60H, ADDMMADDMM: JC OUTT1 MOV 75H, #00H MOV 76H, #00H MOV R0, #77H LCALL ADD1 CLR C CJNE R3, #60H, ADDHHADDHH: JC OUTT0 MOV 77H,

22、 #00H MOV 78H, #00H MOV R0, #79H LCALL ADD1 CLR C CJNE R3, #24H, HOURHOUR: JC OUTT0 MOV R0, #75H MOV R1, #06H LCALL CLR0OUTT0: MOV 6FH, #0CH ;熄灭符 MOV 72H, #0CH LJMP OUTT2OUTT1: MOV 6FH, #0BH ;- MOV 72H, #0BH ;-OUTT2: MOV 6DH, 75H ;秒个位 MOV 6EH, 76H ;十位 MOV 70H, 77H ;分个位 MOV 71H, 78H ;十位 MOV 73H, 79H ;时个位 MOV 74H, 7AH ;十位 SETB ET1 POP ACC POP PSW RETI;-10ms计时程序-IN

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

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