电脑时钟课程设计.doc_第1页
电脑时钟课程设计.doc_第2页
电脑时钟课程设计.doc_第3页
电脑时钟课程设计.doc_第4页
电脑时钟课程设计.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

设计说明书 设 计 题 目 电 脑 时 钟 完 成 日 期 年 月 日 专 业 班 级 电 自 09-2 班 设 计 者 于 同学 指 导 教 师 李 老师 前言随着社会的发展,电子技术也在不断的进步。单片机自20世纪70以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。单片机体积重量轻、抗干扰能力强、坏境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。在我国,单片机已经广为应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、机电一体化设备等各个方面。时钟,自从他发明那天起,就成为人类的好朋友,但随着时间的推移,科学技术的不断发展,人们对时间计量的精度要求越来越高,应用越来越广。怎样让时钟更好的为人民服务,怎样让我们的老朋友焕发青春呢?这就要求人们不断设计出新型时钟。现今,高精度的时钟工具大多数都使用了石英晶体振荡器,由于电子钟,石英钟,石英表都采用了石英技术,英雌走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译译码代替机械式传动,用LED显示器代替了显示器显示和指针显示,减小了显示误差,这种表具有时、分、秒显示时间的功能,和还可以进行十和分的校对,片选的灵活性好。时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。在一个单片机应用系统中,时钟有两方面的含义:一是指为系统的正常工作的基准振荡定时信号,主要是由晶振和外围电路组成,晶振的频率决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:一是用软件实现,二是用专门的时钟芯片实现。现在我国的电子业发展非常快速,电子业的发展有利于钟表业的发展。在中国钟表发展史上,国产机芯研制的失败已经成为过去,“组装业”作为新兴钟表工业的起步阶段也已成为过去。一支新的充满智慧的钟表精英在成长。我们相信在科技高速发展的今天,钟表业运用当今材料工业、电子工业和其他领域的最新技术,一定会生产出代表中国科学水平的产品。我们希望钟表业的精英们在提高制造技术水平中不断创新,培育出拥有自主知识产权的品牌。这正是中国钟表业发展的希望。数字钟被广泛用于个人家庭,车站, 码头、办公室等公共场所,成为人们日常生活中的必需品。由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,运用超过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。本设计主要用单片机AT89C51芯片和LED数码管为核心,辅以必要的电路,构成一个单片机数字时钟。目 录第一章:总 体 设 计第二章:设 计 图 纸 (备用电源自动充电、数字时钟主电路)第三章:设 计 程 序第四章:设 计 调 试第五章:设 计 总 结第六章:参 考 文 献第七章:第一章:总 体 设 计 设计题目:数字时钟 设计目的:1、掌握开发单片机产品的过程。 2、掌握单片机结构及其工作原理。 3、掌握软件的编制方法。 4、掌握单片机产品的调试方法。 设计任务:用单片机设计一个电脑时钟。要求:编程时间为24小时制,超过24小时从0开始 要有设置时间的按键,以便对表。 采用发光数码管显示年月日时分秒。 供电电源:交流220V 备用电池自动充电,避免停电后时间错误。设计要求:画出所有硬件电路,出图:A3或A4图纸一张根据硬件编写程序框图,然后根据框图编写程序,在程序中加上适当的注释。编写设计说明书,包括设计目的、程序框图、程序、程序分析、产品使用说明、附设计任务书和硬件图纸。(附电子稿)设计技术参数:1时制式为24小时制。2采用LED数码管显示时、分,秒采用数字显示。3具有方便的时间调校功能。4计时稳定度优于10-4 ,可精确校正计时精度。5交流220V供电,但停电24小内要维持正常计时(停电可不显示时间)。6其它附加功能(显示年、月、星期、报时、停电查看时间)第二章:设 计 图 纸备用电源自动充电数字时钟主电路第三章:设 计 程 序;= DISP BIT 20H.0 ;DISP=1允许显示 ORG 0000H ;复位入口地址 LJMP START ;无条件转移到程序初始化 ORG 0003H ;外中断0 ORG 000BH ;定时器T0 ORG 0013H ;外中断1 ORG 001BH ;定时器T1 LJMP T1S ;转移到T1中断服务程序开始的地方 ORG 0023H ;串行口中断入口地址 ORG 0050H;=程序开始=;=开始初始化=START: MOV TMOD,#00100000B ;T1方式2 MOV TH1,#06H ;设置计数初值 MOV TL1,#06H SETB TR1 ;启动T1 MOV IE,#88H ;中断允许 SETB EA ;开启中断 SETB ET1 ;定时器T1中断允许 MOV IP,#00001000B ;中断优先级 SETB PT1 ;定时器T1中断优先级控制位 MOV SCON,#00H ;串行口方式0 SETB DISP ;设置允许显示标志,开始就显示000000 MOV 52H,#37 ;数据传送 MOV 53H,#59 ;数据传送 MOV 54H,#21 ;数据传送 MOV 55H,#23 ;数据传送 MOV 56H,#06 ;数据传送 MOV 57H,#11 ;数据传送 MOV 58H,#20 ;数据传送;=以上初始化程序=LOOOP: NOP ;主程序循环开始JNB DISP,LOOOP JNB DISP,LOOOP1 ;DISP=0转移 LCALL DISPLAY ;调用DISPLAY CLR DISP ;清除允许显示标志LOOOP1: NOP CALL ANJIAN ;调用按键程序 LJMP LOOOP ;等待中断,主程序循环结束;=以上主程序=ANJIAN: NOP MOV A,P1 CPL A JZ ANJIAN0 LJMP ANJIAN1ANJIAN0:LJMP ANJIANZANJIAN1: JB P1.0,ANJIAN2 lCALL DELAY10MS ;调用延时子程序,以躲过按键机械抖动 JNB P1.0,$ ;等待按键释放,按键放开事后开始处理 INC 52H ;分加1 MOV A,52H CJNE A,#60,$+3 JC ANJIANY ;小于60秒不转移 MOV 52H,#0 lJMP ANJIANYANJIAN2:JB P1.1,ANJIAN3 lCALL DELAY10MS ;调用延时子程序,以躲过按键机械抖动 JNB P1.1,$ ;等待按键释放,按键放开事后开始处理 INC 53H ;分加1 MOV A,53H CJNE A,#60,$+3 JC ANJIANY ;小于60分不转移 MOV 53H,#0 lJMP ANJIANYANJIAN3:JB P1.2,ANJIAN4 lCALL DELAY10MS ;调用延时子程序,以躲过按键机械抖动 JNB P1.2,$ ;等待按键释放,按键放开事后开始处理 INC 54H MOV A,54H CJNE A,#24,$+3 JC ANJIANY ;小于24小时不转移 MOV 54H,#0 lJMP ANJIANYANJIAN4:JB P1.3,ANJIAN5 lCALL DELAY10MS ;调用延时子程序,以躲过按键机械抖动 JNB P1.3,$ ;等待按键释放,按键放开事后开始处理 INC 55H MOV A,55H CJNE A,#30,$+3 JC ANJIANY ;小于30天不转移 MOV 55H,#0 lJMP ANJIANYANJIAN5:JB P1.4,ANJIAN6 lCALL DELAY10MS ;调用延时子程序,以躲过按键机械抖动 JNB P1.4,$ ;等待按键释放,按键放开事后开始处理 INC 55H MOV A,55H CJNE A,#99,$+3 JC ANJIANY ;小于12个月不转移 MOV 55H,#0 lJMP ANJIANYANJIAN6:JB P1.5,ANJIANZ lCALL DELAY10MS ;调用延时子程序,以躲过按键机械抖动 JNB P1.5,$ ;等待按键释放,按键放开事后开始处理 INC 56H MOV A,56H CJNE A,#99,$+3 JC ANJIANZ MOV 56H,#0 lJMP ANJIANZANJIANY:SETB DISP ;允许显示ANJIANZ:RET;=以上键程序结束=;=延时10毫秒子程序开始=DELAY10MS:NOP MOV R5,#10D10MS1: MOV R4,#250D10MS2: NOP NOP DJNZ R4,D10MS2 DJNZ R5,D10MS1 RET;=结束=;=以下子程序和中断服务程序=;=显示子程序开始=DISPLAY:NOP CLR DISP ;清除允许显示标志 MOV A,52H ;读秒的值到A MOV R1,#4DH ;秒个位存放地址 CALL B2D ;调用二到十子程序,得到2位十进制数,分离BCD码 MOV A,53H CALL B2D ;调用二到十子程序,得到2位十进制数,分离BCD码 MOV A,54H CALL B2D ;调用二到十子程序,得到2位十进制数,分离BCD码 MOV A,55H CALL B2D ;调用二到十子程序,得到2位十进制数,分离BCD码 MOV A,56H CALL B2D ;调用二到十子程序,得到2位十进制数,分离BCD码 MOV A,57H CALL B2D ;调用二到十子程序,得到2位十进制数,分离BCD码 MOV A,58H CALL B2D 调用二到十子程序,得到2位十进制数,分离BCD码 NOP MOV R1,#0 ;显示秒个位 MOV A,4DH LCALL CHABIAO ;调用查表指令 MOVX R1,A MOV R1,#1 ;显示秒十位 MOV A,4CH LCALL CHABIAO ;调用查表指令 MOVX R1,A MOV R1,#2 ;显示分个位 MOV A,4BH LCALL CHABIAO ;调用查表指令 MOVX R1,A MOV R1,#3 ;显示分十位 MOV A,4AH LCALL CHABIAO ;调用查表指令 MOVX R1,A MOV R1,#4 ;显示小时个位 MOV A,49H LCALL CHABIAO ;调用查表指令 MOVX R1,A MOV R1,#5 ;显示小时十位 MOV A,48H LCALL CHABIAO ;调用查表指令 MOVX R1,A MOV R1,#6 ;显示天个位 MOV A,47H LCALL CHABIAO ;调用查表指令 MOVX R1,A MOV R1,#7 ;显示天十位 MOV A,46H LCALL CHABIAO ;调用查表指令 MOVX R1,A MOV R1,#8 ;显示月个位 MOV A,45H LCALL CHABIAO ;调用查表指令 MOVX R1,A MOV R1,#9 ;显示月十位 MOV A,44H LCALL CHABIAO ;调用查表指令 MOVX R1,A MOV R1,#10 ;显示年个位 MOV A,43H LCALL CHABIAO ;调用查表指令 MOVX R1,A MOV R1,#11 ;显示年十位 MOV A,42H LCALL CHABIAO ;调用查表指令 MOVX R1,A MOV R1,#12 ;显示年百位 MOV A,41H LCALL CHABIAO ;调用查表指令 MOVX R1,A MOV R1,#13 ;显示年千位 MOV A,40H LCALL CHABIAO ;调用查表指令 MOVX R1,A;=显示子程序结束=;=二进制转换到十进制子程序开始=B2D: NOP ;二进制在A,保存地址在R1 MOV B,#10 ;除数 DIV AB ;二进制除以十,商在A(十位),余数在B(个位) MOV R1,B ;保存个位 DEC R1 ;地址减1 MOV R1,A ;保存十位 DEC R1 RET;=二进制转换到十进制子程序结束=;=查表子程序开始=CHABIAO:NOP MOV DPTR,#TAB MOVC A,A+DPTR ;查表指令 CPL A RETTAB: DB 3FH,06H,5BH,4FH,66H DB 6DH,7DH,07H,7FH,6FH;=查表子程序结束=;=中断服务程序开始= ORG 0200H ;中断服务程序开始T1S: NOP ;T1中断服务程序入口 PUSH ACC PUSH PSW INC 50H ;52H单元加1指令 MOV A,50H ;数据传送给A便于比较 CJNE A,#100,T1A ;比较不相等转移T1A: JC T1Z ;如果A100则C=1,转移到中断结束 MOV 50H,#00H ;50H单元从头开始 INC 51H ;51H单元加1 MOV A,51H ;数据传送给A便于比较 CJNE A,#40,T1B ;比较不相等转移T1B: JC T1Z ;如果A40则C=1,转移到中断结束 MOV 51H,#00H ;51H单元从头开始 SETB DISP ;允许显示标志 INC 52H ;秒加1指令 MOV A,52H ;数据传送给A便于比较 CJNE A,#60,T1C ;比较不相等转移T1C: JC T1Z ;如果A60则C=1,转移到中断结束 MOV 52H,#00H ;52H单元从头开始 INC 53H ;53H单元加1指令 MOV A,53H ;数据传送给A便于比较 CJNE A,#60,T1D ;比较不相等转移T1D: JC T1Z ;如果A60则C=1,转移到中断结束 MOV 53H,#00H ;53H单元从头开始 INC 54H ;54H单元加1指令 MOV A,54H ;数据传送给A便于比较 CJNE A,#24,T1E ;比较不相等转移T1E: JC T1Z ;如果A24则C=1,转移到中断结束 MOV 54H,#00H ;52H单元从头开始 INC 55H ;53H单元加1指令 MOV A,55H ;数据传送给A便于比较 CJNE A,#30,T1H ;比较不相等转移T1H: JC T1Z ;如果A30则C=1,转移到中断结束 MOV 55H,#00H ;54H单元从头开始 INC 56H ;55H单元加1指令 MOV A,56H ;数据传送给A便于比较 CJNE A,#12,T1I ;比较不相等转移T1I: JC T1Z ;如果A12则C=1,转移到中断结束 MOV 56H,#00H ;54H单元从头开始 INC 57H ;55H单元加1指令T1Z: POP PSW POP ACC RETI ;中断服务程序结束 END;=中断服务程序结束=第四

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论