《(电子行业企业管理)单片机课程设计电子时钟2968502658精品》由会员分享,可在线阅读,更多相关《(电子行业企业管理)单片机课程设计电子时钟2968502658精品(24页珍藏版)》请在金锄头文库上搜索。
1、单片机实训单片机课程设计 -定时闹铃 系别: 电子通信工程系 专业: 应用电子技术 班级: 嵌入式091班 姓名:黄文钦 学号: 2009080202338 实训地点: 实训时间:2011年1月10日至1月14日1.概述1.1 系统的作用本系统是利用STC89C52单片机结合6个七段显示器以24时制“时时分分秒秒”格式显示时间的电子定时闹铃,系统可以设置2组定时闹铃;当定时闹铃时,该电子时钟通过蜂鸣器发出嘀嘀嘀嘀响声;本系统还具有整点报时功能,当现在时间为整点报时。还有秒表功能,由于该电子定时闹铃有强大功能可以在多种场合下使用,利用七段显示器发光也可以在夜晚和黑暗场合下使用。1.2 系统的功能
2、要求(1)使用6位七段显示器显示24时制时间。(2)时间显示格式为“时时分分秒秒”。(3)定时闹铃功能。(4)整点报时功能:当现在时间为整点时响铃。(5)定时闹铃和现在时间模式可以互相切换而不影响各自功能。(6)具有4个按键来进行功能设置,可以设置当前时间、闹铃的时间设置和秒表开关设置。(7)具有秒表计时功能(8)调时区域闪烁(9)通过复位按键可以重启系统。2.系统的硬件设计2.1系统的电路原理(1)系统以STC89C52单片机为本电路的核心元件,通过单片机的P0.0P0.7引脚和A102J排阻加上拉电压来驱动七段显示器段显示数字。(2)通过单片机的P2.2P2.7引脚连接A103J排阻拉升电
3、压信号,控制共阴极七段显示器连通接地来循环点亮6位七段显示器。(3)在七段显示器供电的同时由P0脚驱动显示不同数字。根据人眼的视觉暂留特点,调整延迟时间使所观察到时间数字是稳定的数字。(4)系统使用了YXDZ蜂鸣器,通过单片机P3.0引脚连接8550PNP三极管推动发声。(5)电路通过4个按键连接单片机P1.0P1.3引脚低电平控制系统功能设置。(6)单片机的复位电路,采用传统上电复位,通过Reset按键控制。(7)系统通过一个发光二极管指示电路供电是或正常。2.2 电原理图图1 控制电路2.3 各控制按钮控制功能说明系统接通电源后指示灯LED亮,程序执行后工作,蜂鸣器发出两声响声,七段显示器
4、显示“00 00 00”,表示程序开始执行,然后显示现在时间,按下操作键K1K4动作如下:(1)按操作键K1,进入“设置现在时间”模式后,操作键功能如下: 操作键K1:当前区域加1。 操作键K2:当前区域减1。 操作键K3:分、时区域切换。 操作键K4:设置完成,退出。(2)按操作键K2,进入“显示、设置闹铃时间”模式后,操作键功能如下: 操作键K1:当前闹铃区域加1。 操作键K2:当前闹铃区域减1。 操作键K3:分、时区域切换 操作键K4:第一次进入第二组,第二次为退出。(3)按操作键K3:进入“秒表”模式后,操作键功能如下: 操作键K1:启动秒表。 操作键K2:停止秒表。 操作键K3:清零
5、。 操作键K4:退出。(4)按操作键K4:在响铃时关闭闹钟自动退出,不是响铃则进入“设置闹铃的开关”模式后,操作键功能如下: 操作键K1:启动当前闹铃。 操作键K2:停止当前闹铃。 操作键K3:切换闹铃组。 操作键K4:设置完成,退出。(5)按操作键Reset:复位键,系统重启。3.软件设计3.1 资源分配表和程序流程图表一 程序内存资源分配表内存地址变量名称作用说明20H存放50毫秒计时21H存放0.5秒计时22HSECON存放1秒计时23HMIN存放1分计时24HHOUR存放1小时计时25H用于中断1(#6H)26H用于显示中的闪烁27H.0闹钟标志位27H.1允许响铃27H.2用于标志分
6、、秒(1为秒),闹钟功能时也一样27H.3闹钟总开关(1为开)27H.4用于闪烁标志27H.5用于闪烁27H.6秒表标志27H.7两组闹钟的标志位,默认值为028H-29H用于保存闪烁时的调时区地址30H-35H存放调时区地址36HDISP用于存放要显示的首字(例如秒)37H-39H第一组闹钟的时分40HSP栈底50H-52H 秒表53H-55H第二组闹钟的时分56H存放闹钟调分地址57H存放闹钟调时地址2AH.0闹钟组的切换标志(默认值为0)2AH.1切换(默认值为0)2AH.2闹钟第二组开关(默认值为0)表二 芯片端口资源分配表芯片端口变量名称作用说明P1.0K1操作键K1P1.1K2操作
7、键K2P1.2K3操作键K3P1.3K4操作键K4P1.7SPK压电喇叭控制信号P0七段显示器数数字形状控制P2.2控制时间小时的十位七段显示器亮灭P2.3控制时间小时的个位七段显示器亮灭P2.4控制时间分钟的十位七段显示器亮灭P2.5控制时间分钟的个位七段显示器亮灭P2.6控制时间秒钟的十位七段显示器亮灭P2.7控制时间秒钟的个位七段显示器亮灭P3.0BELL蜂鸣器P3.1LED半秒闪烁P3.2LED显示第一组闹钟是否开启P3.3LED显示第二组闹钟是否开启表三 寄存器资源分配表组寄存器作用说明第0组R0存放秒显示地址R1显示首址R2#06HR3#0FEHR4#3HR6、R7延时初始值第1组
8、R0用于keyB、CR5用于中断图2主程序控制流程图初始化定时器NYY进入“设置闹铃的开关”模式进入“秒表”模式Y进入“显示、设置闹铃时间”模式进入“设置现在时间”模式NN是否按K4键?是否按K3键?是否按K2键?NY是否按K1键?扫描显示器更新时间,启动定时器T0初始化变量开始NNNYYYY退出调时区切换当前区减1当前区加1KEY3KEY2KEY4KEY1更新时间显示设置现在时间N切换二组闹铃第一次更新显示NNYYYY退出时分切换当前区减1当前区加1KEY3KEY2KEY4KEY1转换闹铃模式显示设置闹铃时间 NNNYYYY退出清零关闭启动KEY3KEY2KEY4KEY1秒表显示秒表显示KE
9、Y1NNYYYY退出闹铃组切换关当前闹铃开当前闹铃KEY3KEY2KEY4闹钟正在响关闭响铃秒表N中断程序T0置标志位N检测闹铃时变量变0YY整点报时时变量=24分=0时加1分变量=60秒=0分加1NYYY清标志位21H=2 次数到检查闹铃开、关响铃NNYYYY1YN0N秒变量加1秒变量=60标志位21H加1半秒指示灯闪累加器入栈重新载入计数初值、定时器计数10次计时中断程序开始计时中断程序结束将累加器出栈中断程序T1111000分=60秒=60中断返回分变量=0秒变量=0分变量加1毫秒变量=0秒变量加110毫秒单元加1毫秒=1000重装初始值中断返回106次取反闪烁标志01重装初始值中断程序
10、1开始用以闪烁、秒表标志位3.2 源程序清单本系统程序清单如下:;-;8052 CLOCK WITH SEGX6 CLOCK + 2ALARM + TIMER + SW;时钟+2闹钟+响铃+秒表;89C52 ASM USE:Keil;-程序功能说明-;-K1:设置现在时间; -K1:当前单元加1; -K2:当前单元减1; -K3:切换单元区; -K4:OK;-K2:显示和设置闹铃时间,2个闹铃; -K1:当前单元加1; -K2:当前单元减1; -K3:切换单元区; -K4:切换闹铃组,第二次为OK;-K3:设置秒表 ; -K1:秒表启动; -K2:秒表暂停; -K2:秒表清零; -K4:OK;
11、-K4:设置闹铃开关(当真正闹铃时停掉闹钟并退出); -K1:当前闹铃组开; -K2:当前闹铃组关; -K3:切换闹组; -K4:OK;-KEY1 EQU P1.0;调时间调分再调时KEY2 EQU P1.1KEY3 EQU P1.2KEY4 EQU P1.3SECON EQU 22H;时钟的秒MIN EQU 23HHOUR EQU 24HDISP EQU 36H;显示的首地址存放BELL BIT P3.0ORG 0000H LJMP START ORG 000BH LJMP T0_INTORG 001BHLJMP T1_INT ORG 0100HSTART: MOV 20H,#00HMOV 21H,#00H ;0.5秒计时 MOV 22H,#00H ;1秒计时 MOV 23H,#00H ;1分计时 MOV 24H,#00H ;1h计时MOV 38H,#01H ;闹钟分MOV 39H,#00H ;闹钟时MOV 37H,#101 ;第一组闹钟的首字节显示-1MOV 53H,#102