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

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

单片机应用综合设计报告设计题目:学院名称:专业:班级:姓名:指导教师:日期:2015.12.28~2015.12.31一、任务书1.用80C51设计一个数字时钟。2.可显示时、分、秒。3.按键实现时、分、秒人工校准。4.具有闹钟功能。5.实现秒表/时钟转换,秒表要求精确到10ms。二、总体方案用80C51设计一个数字时钟。该数字钟能显示时、分、秒,并具有闹钟、秒表功能。由四个按键控制,功能分别为启动、调时,调闹、止闹、退出调时,切换秒表时钟,加一,减一、暂停。另外两个按键为电源控制键,复位键。该电子钟上电或按键复位后能自动显示系统提示符“P.”,进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从0时0分0秒开始运行,进入时钟运行状态;再次按电子钟启动/调整键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按启动/调整键再次进入时钟运行状态。用两个四位一体共阴数码管作时间显示:能显示时、分、秒。用一个+5V有源蜂鸣器做闹钟声报警功能,并用四个按键做时间和闹钟调整的数字钟。利用定时/计数器、中断系统来实现时钟计数。用定时器1实现时钟计时,定时器0实现秒表计时。把定时器0和定时器1都设为工作方式1,定时时间为1.25ms和125ms,则计数溢出8次即得时钟、秒表计时最小单位(10毫秒/秒)。晶振频率f=6MHz。X1=216-125*103/2=0BDCH。X2=216-1.25*103/2=0FEFFH。采用中断方式进行溢出次数累计,计满8次。从秒到分和从分到时的计时是通过累加和数值比较实现。三、硬件设计(1)单片机最小系统单片机最小系统由单片机,时钟电路,复位电路组成。其中由6MHz晶振构成的振荡电路,并通过使复位端经电阻与Vcc电源接通而实现的按键电平复位电路。(2)电源系统以+5V直流稳压电源作为电源供应系统。(3)输入系统由四个调整键组成独立式键盘,分别具有为启动、调时、退出调闹,调闹、止闹、退出调时,秒表切换,加一,减一、暂停功能。(4)输出系统由两个四位一体的共阴数码管,并以74LS244做驱动电路构成显示输出,由NPN三极管以及一个蜂鸣器构成闹铃。四、软件设计1234ABCD4321DCBATitleNumberRevisionSizeA4Date:5-Jan-2010SheetofFile:F:\数字钟设计\数字电子钟.DdbDrawnBy:C130pFY16MHzC230pFXTAL2XTAL1XTAL2P1.1S2SW-PBP1.2R1200ΩP1.3R21kP1.4P1.5P1.6P1.7VCCRSTRSTASW-PBBSW-PBR34k7R44k7P1.0123456789RP14K7P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7VCCP0.1P0.2P0.3P0.4P0.5P0.6P0.7P0.0CSW-PBDSW-PBR54k7R64k7P1.1P1.2P1.3VCCP1.7GNDP1.6RSTP1.5SICKMISOMSOIabcdefgdpR7510RR8510RR9510RR10510RR11510RR12510RR13510RR14510Rabcdefgdp12J1+5VA1B2LS1BELLVCCR151KP1.412345678910J2ISPVCCS1SWSPSTELEC22μFGNDXTAL1数字电子钟121邓利波VCCD1LEDR16200ΩVCCB1C2E3Q1NPNP1.0P1.0/T21P1.1/T2EX2P1.23P1.34P1.45P1.56P1.67P1.78RST9P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.5/T115P3.6/WR16P3.7/RD17XTAL218XTAL119GND20P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427P2.7/A1528PSEN29ALE/PROG30EA/VPP31P0.7/AD732P0.6/AD633P0.5/AD534P0.4/AD435P0.3/AD336P0.2/AD237P0.1/AD138P0.0/AD039VCC40U1AT89S52abfcgdeDPY-4a11b7c4d2e1f10g5h3dpeM16M28M39M412DS17SEG-4abfcgdeDPY-4a11b7c4d2e1f10g5h3dpeM16M28M39M412DS27SEG-41G11A121Y1181A241Y2161A361Y3141A481Y412VCC20GND102G192A1112Y192A2132Y272A3152Y352A4172Y43U274LS244P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7VCCP2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.74.1单片机资源使用情况(1)时钟与秒表的时分秒在片内RAM存储地址如表3.1所示。表3.1时钟存储地址表3.4秒表存储地址(2)电子钟的时钟时间在八位数码管上进行显示,因此,在片内RAM中设置显示缓冲区共8个单元。LED7LED6LED5LED4LED3LED2LED1LED074H73H72H71H70H6FH6EH6DH显示缓冲区从左至右依次存时、-、分、-、秒的数值。(3)闹钟的时分秒在片内RAM存储地址如表3.2所示。表3.2闹钟标志位存储地址表(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所示。名称时分秒十位7AH78H76H个位79H77H75H名称时分秒十位66H64H62H个位65H63H61H名称时分秒十位6CH6AH68H个位6BH69H67H(2)1秒计时子程序流程框图如图3.2所示。(3)键监控子程序流程框图如图3.3所示,它还包含了键扫描和P1口处理子程序,它们的程序流程框图分别为图3.4和3.5。图3.1主程序流程框图开始调上电显示清零赋初值开启走秒调显示查闹调键监控程序图3.21秒计时流程框图开始关中断和定时器赋初值秒清零秒加11秒到否60秒到否分加160分到否时加1中断返回装载到缓冲区时清零分清零开启中断和定时器24小时到否11111YYYYNNNN图3.3键监控程序流程框图返回开始调键扫描子程序A键按下B键按下?C按下D键按下?执行A键功能执行B键功能执行C键功能执行D键功能NNNNYYYY图3.4键扫描子程序流程框图开始有键按下调显示去抖动调显示去抖动计算保存键值按键释放恢复键值返回调显示去抖动NNYYYN键确实按下4.3源程序清单LJMPMAINORG000BHLJMPINTT0ORG001BHLJMPINTT1;---------------------------------------------------------;-----------------主程序----------------------------------;---------------------------------------------------------MAIN:LCALLBEGIN;上电显示“PP”MOVSP,#30HMOVR0,#7AH;清7AH-67H单元MOVR1,#14HLCALLCLR0图3.5P1口处理子程序流程框图开始保护现场读P1口P1口数据取反P1口数据处理P1口数据保存恢复现场返回MOV20H,#00HMOV6CH,#01HMOV6BH,#02HMOV7BH,#0CH;熄灭符MOVTMOD,#11H;定时器0、1的工作方式为1MOVTH1,#0BH;125msMOVTL1,#0DCHMOVTH0,#0FEHMOVTL0,#0FFH;1.25msMOVR7,#08H;125ms*8=1s,1.25ms*8=10msSETBEASETBET1SETBTR1LOOP:LCALLDIR;调显示子程序LCALLCLOCK;查闹钟LCALLKEYCJB20H.0,KEYAA;若A键按下跳转,调时JB20H.1,KEYCC;若B键按下跳转,调闹JB20H.2,KEYEE;若C键按下跳转,切换秒表JB20H.3,KEYDD;若D键按下跳转,暂停LJMPLOOP;--------------秒表显示程序-----------------------KEYEE:CLRET1CLRTR1SETBET0SETBTR0MBLOOP:LCALLDIRSLCALLDIRSLCALLKEYCSJB20H.2,OUTSETSJB20H.3,MBZLJMPMBLOOPOUTSETS:CLRET0CLRTR0SETBET1SETBTR1LJMPLOOPMBZ:CLRET0CLRTR0MBZLOOP:LCALLKEYCSJB20H.3,OUTMBZJB20H.2,OUTSETSLJMPMBZLOOPOUTMBZ:SETBET0SETBTR0LJMPMBLOOP;-------------------------------------------------;--------------闹钟调整程序-----------------------;-------------------------------------------------KEYCC:CLRET1LCALLSETCHSETBET1LJMPLOOP;-------------------------------------------------;------------------暂停---------------------------;-------------------------------------------------KEYDD:CLRET1CLRTR1LOOPSP:LCALLKEYC;键扫描JB20H.3,OUTSP;D键按下,暂停取消,继续走LJMPLOOPSPOUTSP:SETBTR1SETBET1LJMPLOOP;-------------------------------------------------;-------------时钟调整程序------------------------;-------------------------------------------------KEYAA:CLRTR1CLRET1LJMPSETHHOUTSET:SETBET1SETBTR1LJMPLOOP;---------------时位调整-------------------------;------------------------------------------------SETHH:MOVR5,#0FFHLOOPH0:MOVR0,#79HMOVR1,#7AHLCALLRDIRH;输出LCALLDIR;显示LCALLDIRLCALLKEYC;键扫描JNB20H.0,H1LJMPSETMM;A键按下,调分H1:JNB20H.1,H2LJMPOUTSET;B键按下,退出调时H2:JNB20H.2,H3LJMPADDH1;C键按下,加1H3:JNB20H.3,H4LJMPSUBH1;D键按下,减1H4:DJNZR5,LOOPH0;无键按下,循环,返回LJMPOUTSET;------------时加减一----------------------------ADDH1:MOVR0,#79H;加一LCALLADD1LJMPSETHSUBH1:MOVR0,#79H;减一LCALLSUBBH1LJMPSETHSETH:MOVR0,#79HMOVR1,

1 / 31
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功