




已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 设计概述1.1 设计课题任务设计一个具有特定功能的电子钟。具有时间显示功能。并有时间设定,时间调整功能。1.2 功能要求说明设计一个具有特定功能的电子钟。该电子钟上电或按键复位后能自动显示系统提示符“P.”, 进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从0时0分0秒开始运行,进入时钟运行状态;再次按电子钟启动/调整键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按启动/调整键再次进入时钟运行状态。2 系统的组成及工作原理2.1 系统的组成 数字钟实际上是一个对标准频率(1Hz)进行计数的计数电路。由于计数的起始时间不可能与标准时间一致,故需要在电路上加一个校时电路,同时标准的1Hz时间信号必须做到准确稳定。通常使用石英晶体振荡器电路构成数字电子钟。(1)晶体振荡器晶体振荡器给数字提供一个频率稳定准确的12MHz的方波信号,可保证数字电子钟的走时准确及稳定。不管是指针式的电子钟还是数字数字显示的电子钟都使用了晶体振荡器。(2)复位电路时间计数电路由秒个位和秒十位计数器,分个位和分十位计数器,时个位和时十位计数器构成。秒个位和秒十位计数器,分个位和分十位计数器为60进制计数器,时个位和时十位计数器为24进制计数器。(3)数码管数码管通常有发光二极管(LED)数码管和液晶(LCD)数码管,本设计提供的为LED数码管。(4)键盘键盘是控制和修改时钟的重要输入模块,通过键盘可以修改时间。(5)控制部分AT89S52提供以下标准功能:8K字节Flash闪速存储器,256字节内部RAM,32I/0口线,看门狗(WDT),两个数据指针,三个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。2.2 系统的工作原理(1):输入/输出口线 P0.0-P0.7 P0口8位双向口线 P1.0-P1.7 P1口8位双向口线 P2.0-P2.7 P2口8位双向口线 P3.0-P3.7 P3口8位双向口线(2):地址锁存控制信号ALE在系统扩展时,ALE用于控制把P0口输出地低8位地址送入锁存器锁存起来,以实现低位地址和数据的分时传送。此外由于ALE是以1/6晶振频率的固定频率输出的正脉冲,因此,可作为外部时钟或外部定时脉冲使用。(3):外部程序存储器读选通信号PSEN在外部ROM时PSEN有效(低电平),以实现外部ROM单元的读操作。(4):访问程序存储器控制信号EA当EA信号为低电平时,对ROM的读操作是针对尾部程序存储器的;而当EA信号为高电平时,对ROM的读操作时从内部程序存储器开始,并可延续至外部程序存储器。(5):复位信号RST当输入的复位信号延续2个机器周期以上高电平时即为有效,用于完成单片机的复位操作。(6):外接晶体引线端XTAL1和XTAL2当使用芯片内部时钟时,XTAL1和XTAL2用于外接石英晶体谐振器和微调电容;当使用外部时钟时,用于接入外部时钟脉冲信号。(7):地线Vss(8):+5V电源Vcc3 系统硬件电路设计3.1 硬件系统各模块功能介绍本设计的硬件系统主要采用以下基本模块来实现,单片机最小系统模块,输入模块、输出模块、电源模块。(1)单片机最小系统模块:包括低功耗、高性能CMOS8位微控制AT89S52;复位电路;晶振电路。本本模块AT89S52系统控制核心,单片机系统复位由复位电路完成,单片机内部有一个高增益、反相放大器,其输入端为芯片引脚XTAL1,其输出端位位引脚XTAL2。通过这两个引脚在芯片外并接石英晶体振荡器和两只电容。这样就构成一个稳定的自激振荡器。 (2)输入模块:本模块共用到了5个按键,1个电源开关,一个复位键,单片机运行期间,利用按键完成复位操作。3个按键独立式键盘,S1键控制电子钟的启动调整状态,S2键为加1键,S3键为减1键。且S1、S2、S3任一键都独自连一个I/O(P1.0、P1.1、P1.2)口线,说明它们可以独立实现相应的电子钟功能。(3)输出模块:本次设计显示为8位,采用两个四位一体数码管(共阳极)作为显示窗口,既可以节约成本又能简化电路。数码管用8个PNP三极管驱动。(4)电源模块:用市场上的USB供电。3.2 数码管显示方案 数码管显示方案分静态显示和动态显示两种。所谓静态显示,就是当显示器显示某一字符时,相应的发光二极管恒定的导通或截止。所谓动态显示,就是一位一位的轮流点亮各个位,对于显示器的每一位来说,每隔一段时间点亮一次。静态显示每一位都需要一个8位输出口控制,静态显示时较小的电流能获得较高的亮度,且字符不闪烁,但当所显示的位数较多时,静态显示所需的I/O口太多,造成了资源的浪费。动态显示是利用人的视觉暂留功能来看到整个显示,但必须保证扫描速度足够快,字符才不闪烁。显示器的亮度既与导通电流有关,也与点亮时间与间隔时间的比例有关。调整参数可以实现较高稳定度的显示。动态显示节省了I/0口,降低了能耗,因此本设计采用动态显示。3.3 总电路图的设计图1 数字电子钟总电路原理图4 系统软件设计4.1 使用单片机资源的说明P0口输出数码管段选信号,P3口输出数码管位选信号;晶振12MHz;调整选择键SET_KEY:P1.0;通过选择键选择调整位,选中位闪烁;增加键ADD_KEY:P1.1;按一次使选中位加1;减少键DEC_KEY:P1.2;按一次使选中位减1;50H-5FH;16个寄存器单元作为显示单元。 50H 用于控制秒基准时钟源的产生;51H 清零秒寄存器;52H 清零分寄存器;53H 清零时寄存器;5FH 用于秒个位;5EH 用于秒十位;5DH 用于分个位;5CH 用于分十位;5BH 用于时个位;5AH 用于时十位;54H 用于控制调时闪烁;堆栈栈底:70H。4.2 程序设计构想流程框图 图2 主程序流程框图图3 加1子程序流程框图图4 中断子程序图5 键盘扫描子程序 图6 显示子程序4.3 程序清单;- ;程序入口;- ORG 0000H LJMP START ORG 000BH ;定时器0中断入口地址 LJMP TIMET0ORG 1000H;-;显P.程序;功能:可以在8个数码闪烁移位进行屏保;-START: MOV R6, #2 ;闪烁次数MOV A, #0FEH ;位选TT: MOV P2, AMOV P0, #0CH ;段码P.LCALL DELAYMOV P2, #0FFHDJNZ R6, TTLCALL DELAYLCALL DELAY1RR AJB P1.0, TT ;键是否按下,没按下则转移LCALL DELAY ;延时去抖JNB P1.0, KAI ;再次判断键是否按下KAI: SETB P1.0CLR A ;状态恢复MOV P0, #0FFHLCALL DELAY1SETB 48H ;用于调时闪烁标志SETB 47H ;用于产生脉冲用于调时快进的脉冲MOV R1, #0 ;键功能标志:0计时、1调时、2调分、3调秒MOV R0, #50H ;初始化MOV R6, #10HCLEARJCQ:MOV R0, #00H ;清寄存器INC R0DJNZ R6, CLEARJCQMOV IP, #02HSETB EASETB ET0MOV TMOD, #01H ;设定定时器0工作方式1MOV TH0, #3CHMOV TL0, #0B0H ;赋定时初值,定时50msSETB TR0 ;启动定时器0MOV SP, #70H ;堆栈;-;主程序 ;- MAIN: LCALL DISPLAYLCALL KEY_SCANJZ MAINLCALL SET_KEYJB 46H, MAIN ;如果已进行调时快进,则不再执行下面的调整LCALL ADD_KEY ;调用增加键处理子程序,加一LCALL DEC_KEY ;调用减少键处理子程序,减一LJMP MAIN ;重新循环;-; 显示处理程序;-DISPLAY:MOV A, 51HANL A, #0FHMOV 5FH, A ;转换出秒个位,存入5FHMOV A, 51HANL A, #0F0HSWAP AMOV 5EH, A ;转换出秒十位,存入5EHJB 46H, MIN ;如果调时快进,则跳过闪烁处理程序CJNE R1, #3,MIN ;如果R1为3,闪烁秒位待调整JB 48H, MINMOV 5FH, #0AH ;使该位为10,查表得到使该位不显示MOV 5EH, #0AHMIN: MOV A, 52HANL A, #0FHMOV 5DH, A ;转换出分个位,存入5DHMOV A, 52HANL A, #0F0HSWAP AMOV 5CH, A ;转换出分十位,存入5CHJB 46H, HOURCJNE R1, #2, HOUR ;如果R1为2,闪烁分位待调整JB 48H, HOURMOV 5DH, #0AHMOV 5CH, #0AHHOUR: MOV A, 53HANL A, #0FHMOV 5BH, A ;转换出时个位,存入5BHMOV A, 53HANL A, #0F0HSWAP AMOV 5AH, A ;转换出时十位,存入5AHJB 46H, DISPCJNE R1, #1, DISP ;如果R1为1,闪烁时位待调整JB 48H, DISPMOV 5BH, #0AH ;使该位为10,查表得到使该位不显示MOV 5AH, #0AH;-;数码管动态扫描显示;-DISP: MOV DPTR, #TABLE MOV A, 5FH MOVC A, A+DPTR MOV P0, A CLR P2.0 LCALL DELAY SETB P2.0 MOV A, 5EH MOVC A, A+DPTR MOV P0, A CLR P2.1 LCALL DELAY SETB P2.1 ;显示秒十位 MOV A, #0BFH MOV P0, A CLR P2.5 LCALL DELAY SETB P2.5 ;显示“-” MOV A, 5DH MOVC A, A+DPTR MOV P0, A CLR P2.3 LCALL DELAY SETB P2.3 ;显示分个位 MOV A, 5CH MOVC A, A+DPTR MOV P0, A CLR P2.4 LCALL DELAYSETB P2.4 ;显示分十位MOV A, #0BFHMOV P0, ACLR P2.2LCALL DELAYSETB P2.2 ;显示“-”MOV A, 5BHMOVC A, A+DPTRMOV P0, ACLR P2.6LCALL DELAYSETB P2.6 ;显示时个位MOV DPTR, #TABLE1 ;消除时的十位置0MOV A, 5AHMOVC A, A+DPTRMOV P0, ACLR P2.7LCALL DELAYSETB P2.7 ;显示时十位RET;-;定时器中断1s程序;-TIMET0: PUSH ACC ;保护现场PUSH PSWMOV TH0, #3CHMOV TL0, #0B0HCPL 47H ;产生脉冲用于调时快进INC 54HMOV A, 54HCJNE A, #10,ADD_TIME;产生0.5秒,用于调时闪烁CPL 48H ;取反调时闪烁标志位MOV 54H, #00HADD_TIME: INC 50HMOV A, 50HCJNE A, #10,ZDBACD;整点报时时蜂鸣器响延迟时间SETB P3.1 ZDBACD: CJNE A, #20,RETI1 ;产生1秒时钟MOV 50H, #00H ;一秒钟时间到,清零50HMOV A, 51HADD A, #01HDA A ;十进制调整MOV 51H, ACJNE A, #60H,RETI1MOV 51H, #00H ;一分钟到MOV A, 52HADD A, #01HDA AMOV 52H, ACJNE A, #60H,RETI1CLR P3.1MOV 52H, #00H MOV A, 53HADD A, #01HDA AMOV 53H, ACJNE A, #24H,RETI1MOV 53H, #00H ;到24点,清零小时RETI1: POP PSWPOP ACC ;恢复现场RETI ;中断返回;-;键盘扫描程序;R4设置为00H是为了在进入长按处理前加长延时,以区分长按与短按键;-KEY_SCAN: CLR 46H ;关闭调时快进标志MOV P1, #0FFH ;将P1口设置成输入状态MOV A, P1CPL AANL A, #07H JZ EXIT_KEYLCALL DELAY ;延时去抖动MOV A, P1 ;重新判断CPL AANL A, #07HJZ EXIT_KEYMOV R5, AMOV R4, #00H ;用于控制调时快进速度LOOP: LCALL DISPLAY ;进入长按处理MOV A, P1CPL AANL A, #07HJB 47H, LOOP1INC R4 LOOP1: CJNE R1, #03H,LOOP2 LJMP LOOP3LOOP2: CJNE R4, #99H,LOOP3MOV R4, #70H SETB 46HLCALL ADD_KEYLCALL DEC_KEYLOOP3: JNZ LOOP ;等待键释放MOV A, R5 ;输出键值RETEXIT_KEY: RET;-;延时子程序;- DELAY: MOV R7, #200 DJNZ R7, $RETDELAY1: MOV R3, #50MOV TMOD, #00HMOV TH1, #63HMOV TL1, #18H SETB TR1LP1:JBC TF1, LP2SJMP LP1LP2: MOV TH1, #63HMOV TL1, #18H DJNZ R3, LP1 RET ;-;选择键处理子程序;-SET_KEY: CJNE R5, #01H,EXIT ;选择键键值INC R1 ;调整选择功能标志加一CJNE R1, #4,EXITMOV R1, #0MOV 54H, #00H ;调时闪烁清零 RET;-;加1子程序;-ADD_KEY: CJNE R5, #02H,EXIT ;加1键值CJNE R1,#01H,NEXT1 MOV A,53HADD A,#01HDA AMOV 53H, ACJNE A,#24H,EXITMOV 53H, #00HNEXT1: CJNE R1,#02H,NEXT2 MOV A,52HADD A,#01HDA AMOV 52H, ACJNE A,#60H,EXITMOV 52H, #00HNEXT2: CJNE R1,#03H,EXIT MOV A,51HADD A,#01HDAAMOV 51H, ACJNE A,#60H,EXITMOV 51H, #00H RET;-;减1子程序;-DEC_KEY: CJNE R5,#04H,EXIT ;减1键键值CJNE R1,#01H,NEXT3 MOV A,53HADD A,#99HDA AMOV 53H, ACJNEA,#99H,EXITMOV 53H, #23HNEXT3: CJNE R1,#02H,NEXT4 MOV A,52HADD A,#99HDA AMOV 52H, ACJNE A,#99H,EXITMOV 52H, #59HNEXT4:CJNE R1,#03H, EXIT ;选择键功能标志为3调秒,否则跳出MOV A,51HADD A,#99HDA AMOV 51H, ACJNE A,#99H,EXITMOV 51H, #59HRET;-;返回子程序;- EXIT: RET;-;数码管字形编码表;-TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH ;0,1,2,3,4,5,6,7,8,9,不显示TABLE1:DB 0FFH,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH ;小时编码;不显示,1,2,3,4,5,6,7,8,9,不显示END 5 调试与功能说明5.1 硬件调试 检查加工质量,并确保没有任何方面的错误,如短路和断路,尤其要避免电源短路;元器件在安装前要逐一检查,用万用表测棋数值,看是否与所用相同;完成焊接后,应先空载上电,比检查各引脚的点位是否正确。若一切正常,方可在断电的情况下将芯片插入,再次检查各引脚的电位及其逻辑关系。将万用表的探针放到单片机接电源的引脚上检测一下,看是否符合要求。5.2 系统性能测试与功能说明走时:默认为走时状态,按24小时制分别显示“时时-分分-秒秒”,有2个“-”动态显示,时间会按实际时间以秒为最少单位变化。 走时调整:按对秒进行调整,按一下加一秒;按对分进行调整,按一下加一分;按对时进行调整,按一下加一小时,从而达到快速设定时间的目的。结束语本次课程设计,让我受益匪浅,认识到了自己的许多缺点和不足,使我深深的感受到了理论联系实际的必要性及其重要性。在我们以往的学习过程中,我们刻意地去加强理论的基础,对于一个程序我们只求它在运行时没有出错,我们便以为我们的计划成功了岂不知它能否在硬件结构中得以实现则是另
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业自动化与智能电网的融合探讨
- 工业遗产在旅游业中的利用与发展前景分析
- 工业遗产改造为文化创意产业园的实践案例研究
- 工业设计的趋势与前景分析
- 工业设计创新与趋势分析
- 工作环境改善与团队效率关系研究
- 工厂操作人员必须了解的版本更新质量要求
- 工程物流项目的高效安全管理模式及实施策略探讨
- 市场分析与预测方法在市场营销中的应用
- 工程项目管理中的数据化决策与汇报
- 劳务派遣投标方案(完整技术标)
- 日内瓦公约(全文)
- 中建金属屋面施工方案完整版
- 支付清算系统参与者考试题库五
- 成麻五元算账一览表
- 部编版小学语文五年级下册第二单元易错点检测卷-(含答案)
- 数控铣床及加工中心编程与操作
- 最高法关于民间借贷的司法解释全文
- 甘肃省静疗知识大赛考试题库大全-上(选择、判断题部分)
- 不合格退换货应急预案方案
- 沪教版五年级下册数学期末试卷
评论
0/150
提交评论