




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
..目录1设计方案11.1设计目的11.2设计任务12设计总体框图12.1系统设计方框图12.2程序流程图23设计单元电路33.1AT89C51的时钟电路33.2AT89C51的复位电路设计43.3AT89C51的显示电路设计43.4AT89C51的按键电路设计54电路原理说明64.1AT89C51芯片管脚及其功能64.2电路总原理及硬件原理图84.3软件设计95参考文献206设计心得20附录:21附录1:调试报告21附录2:元器件清单22定时闹铃的设计1设计方案1.1设计目的本设计是一个定时闹钟,它仅使用单片的20引脚单片机完成闹钟的全部功能。设计目的是为了学习和巩固单片机知识,使对已学过的基础知识能有更深入的理解,学会独立思考、独立思考、独立工作,以及提高对所学应用基本理论分析和解决实际问题的能力。1.2设计任务本设计是一个定是闹钟,它仅使用单片40个引脚单片机AT89C51完成闹钟的全部功能,包括时钟显示,时钟设置,闹钟设定和闹钟报时。设计目的是学习和巩固单片机知识,使用学习过的关于AT89C51的基础知识能有更深入的理解,学会独立思考,独立工作,以及提高对所学习的应用基本理论分析和解决实际问题的能力。2设计总体框图2.1系统设计方框图6位共阳数码管6位共阳数码管显示单片机AT89C51限流电阻晶振晶振及复位按钮LED指示灯按钮LED指示灯图1系统设计框图开始2.2程序流程图开始有关变量的初始化有关变量的初始化启动走时启动走时显示时间显示时间判断是否闹钟时间到判断是否闹钟时间到YYLED亮LED亮NNNS4是否按下S3是否按下NS4是否按下S3是否按下YYYNN按S3?按S2?按S2?按S4?YNN按S3?按S2?按S2?按S4?YYYYYYYY调整时钟分调整时钟分调整时钟时设置闹钟时设置闹设置闹钟时设置闹钟分NNNN按S1?按S1?按S1?按S1?NNNN按S1?按S1?按S1?按S1?YYYYYYYY图2程序流程图3设计单元电路3.1AT89C51的时钟电路AT89C51系列的单片机时钟方式分为内部和外部方式,外部方式是把外部已经有的时钟信号引入到单片机内部。时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要有晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;而是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:一是用软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现。本设计的采用内部时钟方式。时钟电路如图3所示。图3时钟电路3.2AT89C51的复位电路设计复位是单片机的初始化操作,起主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。除进入系统的正常初始化之外,当由于程序运行出错祸操作错误使系统处于死锁状态时,为摆脱困境,可以使复位键以重新启动,也可以通过监视定时器来强迫复位。RET引脚是复位信号的输入端,如图4所示。图4复位电路3.3AT89C51的显示电路设计分段式显示器〔LED数码管由7条线段围成8字型,每一段包含一个发光二极管。外加正向电压时二极管导通,发出清晰的光。只要按规律控制各发光段亮、灭,就可以显示各种字形或符号。LED数码管有共阳、共阴之分。图是共阳式、共阴式LED数码管的原理图和符号,如图5所示。显示电路显示模块需要实时显示当前的时间,即时、分、秒,因此需要6个数码管。LED显示器的显示控制方式按驱动方式可分成静态显示方式和动态显示方式两种。对于多位LED显示器,通常都是采用动态扫描的方法进行显示,其硬件连接方式如图6所示,时的十位和个位分别显示在第一个和第二个数码管,分的十位和个位分别显示在第三个和第四个数码管,秒的十位和个位分别显示在第五个和第六个数码管。定时时间到后,P3.7被置位,二极管发光,提醒闹钟时间到。图5共阳式、共阴式LED数码管的原理图和数码管的符号图图6数码管硬件连接图3.4AT89C51的按键电路设计S1按键接在P2.0口,用于切换正常走时、调时间、设定闹钟;S2按键接在P2.1口,用于调整时间分加一和设置闹铃分加一功能键;S3按键接在P2.2口,按下后进入闹钟设置状态;S4按键接在P2.3口,按下后进入时间调整状态。按键连接如图7所示。图7按键硬件连接图4电路原理说明4.1AT89C51芯片管脚及其功能AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,可稳定地工作于5V的电源下.该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。AT89C51芯片引脚图如图8所示。图8AT89C51芯片引脚图AT89C51管脚说明:
VCC:供电电压。GND:接地。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写"1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址"1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入"1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流〔ILL这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口:管脚备选功能
P3.0RXD〔串行输入口
P3.1TXD〔串行输出口
P3.2/INT0〔外部中断0
P3.3/INT1〔外部中断1
P3.4T0〔记时器0外部输入
P3.5T1〔记时器1外部输入
P3.6/WR〔外部数据存储器写选通
P3.7/RD〔外部数据存储器读选通
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器〔0000H-FFFFH,不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源〔VPP。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:来自反向振荡器的输出。4.2电路总原理及硬件原理图电路总原理:将软件.hex文件添加到芯片后,就可开始仿真。此设计中数码管显示时分秒,时为24进制,分和秒都为60进制。当按下S3时进入闹钟设置状态,此时再按下S3则设置闹钟时,每按一下闹钟时加一,到23h时回到0h,接着按下S2则设置闹钟分,每按一下闹钟分加一,之后按下S1回到时间显示状态;当按下S4时进入时钟调整状态,此时再按下S4则调整时钟时,每按一下时钟时加一,到23h时回到0h,接着按下S2则设置时钟分,每按一下时钟分加一,之后按下S1回到时间显示状态。电路总原理图如图9所示。图9电路总原理图4.3软件设计设计程序如下:ORG0000HLJMPSTARTORG000BHLJMPTIMESTART:MOVSP,#51HMOV20H,#00H;定义秒MOV21H,#00H;定义分MOV22H,#00H;定义时MOV23H,#00H;定义闹钟分MOV24H,#00H;定义闹钟时MOV25H,#00HMOV26H,#00HMOV30H,#00H;BCD显示时间秒MOV31H,#00HMOV32H,#00H;BCD显示时间分MOV33H,#00HMOV34H,#00H;BCD显示时间时MOV35H,#00HMOV36H,#00H;BCD闹钟分MOV37H,#00HMOV38H,#00H;BCD闹钟时MOV39H,#00HMOV50H,#00H;按键次数MOVTMOD,#01HMOVTH0,#03CHMOVTL0,#0B0HMOVIE,#82H;中断允许SETBTR0;启动T0MOVR2,#14HMOVP2,#0FFHCLRP3.7MAIN:LCALLTIMEPRO;判断是否为闹钟GB:LCALLDISPLAY1;显示时间P1.3,M1LCALLSETTIMELJMPMAINM1:P1.2,M2LCALLSETATIMELJMPMAINM2:P1.0,M4LCALLLOOKATIMEM4:LJMPMAINDELAY:MOVR4,#030H;延时子程序DL00:MOVR5,#0FFHDL11:MOVR6,#09HDL12:DJNZR6,DL12DJNZR5,DL11DJNZR4,DL00RETSETTIME:;设置时间L0:LCALLDISPLAY1MM1:P1.3,L1;进入时间设置状态MOVC,P1.3JCMM1LCALLDELAY1JCMM1MSTOP1:MOVC,P1.3;设置时钟时JNCMSTOP1LCALLDELAY1MOVA,50HINC50HCJNEA,#00H,HJ1LJMPL0HJ1:MOVC,P1.3JNCMSTOP1INC22HMOVA,22HCJNEA,#18H,GO12;时为24h时清零MOV22H,#00HMOV34H,#00HMOV35H,#00HLJMPL0L1:P1.1,L2MOVC,P1.1JCL1LCALLDELAY1JCL1MSTOP2:MOVC,P1.1;设置时钟分JNCMSTOP2LCALLDELAY1MOVC,P1.1JNCMSTOP2INC21HMOVA,21HCJNEA,#3CH,GO11;分为60s时清零MOV21H,#00HMOV32H,#00HMOV33H,#00HLJMPL0GO11:MOVB,#0AHDIVABMOV32H,BMOV33H,ALJMPL0GO12:MOVB,#0AHDIVABMOV34H,BMOV35H,ALJMPL0L2:P1.0,L0MOVC,P1.0JCL2LCALLDELAY1MOVC,P1.0JCL1STOP1:MOVC,P1.0;回到时间显示JNCSTOP1LCALLDELAY1MOVC,P1.0JNCSTOP1MOV50H,#00HLJMPMAINSETATIME:LCALLDISPLAY2;设置闹钟N0:LCALLDISPLAY2MM2:P1.2,N1MOVC,P1.2JCMM2LCALLDELAY1JCMM2MSTOP3:MOVC,P1.2;设置闹钟时JNCMSTOP3LCALLDELAY1MOVA,50HINC50HCJNEA,#00H,HJ2LJMPN0HJ2:MOVC,P1.2JNCMSTOP3INC24HMOVA,24HCJNEA,#18H,GO22;时为24h时清零MOV24H,#00HMOV38H,#00HMOV39H,#00HLJMPN0N1:P1.1,N2MOVC,P1.1JCN1LCALLDELAY1MOVC,P1.1JCN1MSTOP4:MOVC,P1.1;设置闹钟分JNCMSTOP4LCALLDELAY1MOVC,P1.1JNCMSTOP4INC23HMOVA,23HCJNEA,#3CH,GO21;分为60s时清零MOV23H,#00HMOV36H,#00HMOV37H,#00HLJMPN0GO21:MOVB,#0AHDIVABMOV36H,BMOV37H,ALJMPN0GO22:MOVB,#0AHDIVABMOV38H,BMOV39H,ALJMPN0N2:P1.0,N0MOVC,P1.0JCN2LCALLDELAY1MOVC,P1.0JCN1STOP2:MOVC,P1.0;回到时间显示JNCSTOP2LCALLDELAY1MOVC,P1.0JNCSTOP2MOV50H,#00HLJMPMAINTIMEPRO:MOVA,21H;判断是否为闹钟MOVB,23HCJNEA,B,BKMOVA,22HMOVB,24HCJNEA,B,BKSETB25H.0MOVC,25H.0LCALLTIMEOUTJMPBK1BK:CLRP3.7BK1:RETTIMEOUT:SETBP3.7RETLOOKATIME:LCALLDISPLAY2;判断S1是否按下,若按下则显示时间,否则显示闹钟MM:JNBP1.0,LOOKATIMELCALLDELAY1LJMPMAINDELAY1:MOVR4,#14HDL001:MOVR5,#0FFHDL111:DJNZR5,DL111DJNZR4,DL001RETTIME:PUSHACC;定时PUSHPSWMOVTH0,#0E0HMOVTL0,#0B0HDJNZR2,RET0MOVR2,#14HMOVA,20HCLRCINCA;秒自加1CJNEA,#3CH,GO1;秒计数循环MOV20H,#00H;复位MOV30H,#00HMOV31H,#00HMOVA,21HINCA;分自加1CJNEA,#3CH,GO2;分计数循环MOV21H,#00H;复位MOV32H,#00HMOV33H,#00HMOVA,22HINCA;时自加1CJNEA,#18H,GO3;时计数循环MOV22H,#00H;复位MOV34H,#00HMOV35H,#00HMOVA,21HAJMPRET0GO1:MOV20H,AMOVB,#0AHDIVABMOV31H,A;秒高位MOV30H,B;秒低位AJMPRET0GO2:MOV21H,AMOVB,#0AHDIVABMOV3H,A;分高位MOV32H,B;分低位AJMPRET0GO3:MOV22H,AMOVB,#0AHDIVABMOV35H,A;时高位MOV34H,B;时低位AJMPRET0RET0:POPPSWPOPACCRETIDISPLAY1:MOVR0,#30H;显示子程序MOVR3,#01HPLAY1:MOVA,R3MOVP2,AMOVA,R0MOVDPTR,#DSEG1MOVCA,A+DPTRMOVP0,ALCALLDL1MOVA,R3RLAMOVR3,AMOVC,ACC.6JCLD1INCR0LJMPPLAY1LD1:RETDISPLAY2:PUSHACCPUSHPSWMOVR0,#36HMOVR3,#04HPLAY2:MOVA,R3MOVP2,AMOVA,R0MOVDPTR,#DSEG1MOVCA,A+DPTRMOVP0,ALCALLDL1MOVA,R3;判断是否显示到最低位RLA
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年北京体育大学教学管理人员招聘笔试试卷
- 共享出行信用体系在2025年的发展现状与趋势分析报告
- 西方思潮对政治的影响试题及答案
- 中国人民保险集团招聘总部工作人员考试真题2024
- 温州文成县人民法院选调事业编制人员考试真题2024
- 公共政策中的性别平等问题研究试题及答案
- 智慧港口自动化装卸设备在2025年智能化改造效果评估分析报告
- 网络工程师考试指南及试题及答案
- 西方国家政府与民间的关系试题及答案
- 2025年智慧港口自动化装卸设备在港口物流智能化发展中的市场机遇与挑战报告
- 交通管理扣留车辆拖移保管 投标方案(技术方案)
- 2024年湖南省初中学业水平考试地理试卷含答案
- 八年级生物期中模拟卷(考试版A4)(江苏专用苏科版)
- 装配钳工试题及答案
- 髓核微生物组与椎间盘退变的因果关系
- 中国海油安全知识手册(2023版)-纯文字版
- 马工程《公共财政概论》课后习题库(含)参考答案(可做期末复习和试卷)
- 医疗机构工作人员廉洁从业九项准则自查自纠报告
- 组织行为学考试题(附参考答案)
- 中空工序作业指导书
- 2024年重庆市中考物理试卷真题A卷(含答案逐题解析)
评论
0/150
提交评论