单片微型计算机与接口技术专周报告题目电子钟设计班级10261学号04号姓名尹荣超指导老师傅林完成时间2012-5-31成都电子机械高等专科学校电气与电子工程系单片微机原理与接口技术专周第2页电子钟专周报告一.实验目的1.学习8051定时器时间计时处理、按键扫描及LED数码管显示的设计方法。2.设计任务及要求:通过LCD液晶模块,进行时间显示,格式为“时:分:秒”;整点报时。二.实验要求A.基本要求:1.通过LCD液晶模块,进行时间显示,格式为“时:分:秒2.整点报时3.清零4.能对时,分,秒任意可调B.扩展部分:1.利用按键可对时间及闹玲进行设置,并可显示闹玲时间。当闹玲时间到蜂鸣器发出声响,按停止键使可使闹玲声停止。2.实现秒表功能3.定时功能三.实验设计分析针对要实现的功能,采用AT89S51单片机进行设计,AT89S51单片机是一款低功耗,高性能CMOS8位单片机,片内含4KB在线可编程(ISP)的可反复擦写1000次的Flash只读程序存储器,器件采用高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构。这样,既能做到经济合理又能实现预期的功能。首先,在编程之前必须了解硬件结构尤其是各引脚的用法,以及内部寄存器、存储单元的用法,否则,编程无从下手,电路也无法设计。这是前期准备工作。第二部分是硬件部分:依据想要的功能分块设计设计,比如输入需要开关电路,输出需要显示驱动电路和数码管电路等。第三部分是软件部分:先学习理解汇编语言的编程方法再根据设计的硬件电路进行分块的编程调试,最终完成程序设计。第四部分是软件画图部分:设计好电路后进行画图,包括电路图和仿真图的绘制。第五部分是软件仿真部分:软硬件设计好后将软件载入芯片中进行仿真,仿真无法完成时检查软件程序和硬件电路并进行修改直到仿真成功。第六部分是硬单片微机原理与接口技术专周第3页件实现部分:连接电路并导入程序检查电路,若与设计的完全一样一般能实现想要的功能。最后进行功能扩展,在已经正确的设计基础上,添加额外的功能!四.实验要求实现A.电路设计1.整体设计此次设计主要是应用单片机来设计电子时钟,硬件部分主要分以下电路模块:显示电路用8个共阴数码管分别显示,小时、分钟和秒,通过动态扫描进行显示,从而避免了译码器的使用,同时节约了I/0端口,使电路更加简单。单片机采用AT89S51系列,这种单片机应用简单,适合电子钟设计。电路的总体设计框架如下:2.分块设计模块电路主要分为:输入部分、输出部分,复位。2.1输入部分输入信号主要是各种模式选择和调整信号,由按键开关提供。以下为输入部分样:输入部分单片机输出部分复位单片微机原理与接口技术专周第4页P3.5P3.6P3.7P2.6P2.7P3.0SECMINHOUR开始/继续时钟/闹钟清零在本实验中主要用用P3口输入按键信号,还用到了特殊的P0口。对于P0口,由于其存在高阻状态,为了实现开关功能,给其添加上拉电阻,具体如下图所示:XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51P2.6P2.7P3.0P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7P3.0P3.5P3.6P3.7234567891RP1220P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7MIN开始/继续时钟/闹钟清零2.2输出部分本电路的输出信号为7段数码管的位选和段选信号,闹铃脉冲信号,提示灯信号。本实验的数码管是共阴的,为了防止段选信号不能驱动数码管,故在P1口连接上拉电阻后,再送段选信号,以提高驱动,位选信号直接从P2口接入,如下图:单片微机原理与接口技术专周第5页P2.5P2.4P2.3P2.2P2.1P2.0234567891RP1220P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7闹铃由P1.0端输出,模块如下:单片微机原理与接口技术专周第6页XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51LS1SPEAKERP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7P3.0P3.5P3.6P3.7MIN单片微机原理与接口技术专周第7页各模块拼接组合,电路总体设计图如下:XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51LS1SPEAKERP3.5P3.6P3.7P2.6P2.7P3.0P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7P3.0P3.5P3.6P3.7P2.5P2.4P2.3P2.2P2.1P2.0234567891RP1220P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7SECMINMINHOUR开始/继续时钟/闹钟清零B.程序设计B.1程序总体设计本实验用汇编程序完成.单片微机原理与接口技术专周第8页NOYES主程序开始显示时间是否有调按1按2按3按4按5按6调秒调分调时开始、继续(秒表)时钟、闹钟清零按4主程序按5按4单片微机原理与接口技术专周第9页结合电路图,程序设计的整体思路为:接通电源,数码管显示时,分,秒。并且走时显示LED灯每隔1秒改变一次明暗,此为正常工作模式。以下为在该工作方式下模式选择的按键方式:1.按4开始计时,秒表开始,停止2.按1调整秒,按4继续计时3.按2调整分,按4继续计时4.按3调整时,按4继续计时5.按5设置闹钟时间,再按5回复原有时间,闹铃声停止6.按6所有设置清零B.2程序主要模块B.2.1不加扩展功能NOYES主程序开始显示时间按1按2按3按4按5按6调秒调分调时开始暂停、继续清零按4按5按4是否有调主程序单片微机原理与接口技术专周第10页程序清单:;12M晶振20100114调试完成0315修改20110303注释STRTEQUP2.6STPEQUP2.7CLRREQUP3.0SECEQUP3.5MINEQUP3.6HOUREQUP3.7ORG00HSJMPMAINORG0BHAJMPT0INT0ORG30HMAIN:MOVSP,#60HMOVR4,#20MOVTMOD,#01HMOVTH0,#03CH;#9EH12M晶振时定时初值取#3CB0H,还可细调,如TL=#0B7H,可以更准MOVTL0,#0B0H;#58HSETBET0SETBEA;MOV28H,#12kS:LCALLDISP;秒调整按键JBSEC,KMLCALLDISPJNBSEC,$-3AJMPSINCkM:JBMIN,KH;分调整按键LCALLDISPJNBMIN,$-3AJMPMINCKH:JBHOUR,K1;时调整按键LCALLDISPJNBHOUR,$-3AJMPHINC单片微机原理与接口技术专周第11页SINC:INC26H;秒调整MOVA,26HCJNEA,#60,SINC0MOV26H,#0SINC0:AJMPKSMINC:INC27H;分调整MOVA,27HCJNEA,#60,MINC0MOV27H,#0MINC0:AJMPKMHINC:INC28H;时调整MOVA,28HCJNEA,#24,HINC0MOV28H,#0HINC0:AJMPKHk1:LCALLDISP;开始键JBSTRT,K2LCALLDISPJNBSTRT,$-3AJMPSTARTk2:JBSTP,K3;暂停键LCALLDISPJNBSTP,STOPK3:JBCLRR,KSLCALLDISPJNBCLRR,CLEAR;清零键AJMPKSSTART:SETBTR0;开始AJMPK1STOP:CLRTR0;暂停AJMPK2CLEAR:CLRTR0;清零MOVA,#0MOV26H,AMOV27H,AMOV28H,A单片微机原理与接口技术专周第12页AJMPKSDISP:MOVA,26HMOVB,#10DIVABMOV20H,B;余数(秒个位数)MOV21H,A;商(秒十位数)MOVA,27HMOVB,#10DIVABMOV22H,B;余数(分个位数)MOV23H,A;商(分十位数)MOVA,28HMOVB,#10DIVABMOV24H,B;余数(时个位数)MOV25H,A;商(时十位数)MOVA,20H;秒个位ACALLSEG7MOVP0,ACLRP2.0ACALLDLYSETBP2.0MOVA,21H;秒十位ACALLSEG7MOVP0,ACLRP2.1ACALLDLYSETBP2.1MOVA,22H;分个位ACALLSEG7MOVP0,ASETBP0.7CLRP2.2ACALLDLYSETBP2.2MOVA,23H;分十位ACALLSEG7MOVP0,ACLRP2.3ACALLDLYSETBP2.3MOVA,24H;时个位单片微机原理与接口技术专周第13页ACALLSEG7MOVP0,ASETBP0.7CLRP2.4ACALLDLYSETBP2.4MOVA,25H;时十位ACALLSEG7MOVP0,ACLRP2.5ACALLDLYSETBP2.5RETT0INT0:MOVTH0,#03CH;#9EH;定时中断子程序。重装定时常数MOVTL0,#0B0H;#58HDJNZR4,T0INTR;50msX20=1S,未满20次,跳出中断子程序MOVR4,#20INC26H;1S,秒存储单元内数+1MOVA,26HCJNEA,#60,T0INTR;未满60S,跳出中断。MOV26H,#0;满60S,秒单元清零INC27H;分+1MOVA,27HCJNEA,#60,T0INTRMOV27H,#0INC28HMOVA,28HCJNEA,#24,T0INTRMOV28H,#0T0INTR: