




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、电子闹钟毕业设计摘要:本设计是以 89C51 单片机作为控制核心的闹铃系统。 本文大致可以分为三个章节, 第一章节讲了用单片机来制作电子闹钟所带来的优势, 还有电子闹钟在电子产品中未来的趋 势以及本次设计所要实现的课题目标。 第二章节讲了设计的一些思路和该产品包含的一些硬 件电路组成。 第三章节讲了各个软件模块之间的设计以及该产品的程序代码。 最后是一些结 论体会部分和附录图。关键词:PC机;单片机89C51;串行通信;数码显示目录第一章 绪论 11.1 引言 11.2 闹钟的发展趋势 11.3 本次设计所要实现的目标 1第二章 系统总体设计 22.1 系统总体设计思路 22.2 总体硬件组成
2、框图 22.3 AT89C51 的简介32.4 系统功能的确定 42.5 时钟电路 52.6 复位电路 62.7 键盘电路 62.8 数码显示电路 7第三章 系统软件设计 83.1 数据单元分配 83.2 时钟程序设计步骤 83.3 计时子程序模块的实现 93.4 时钟设定子程序模块的实现 103.5 程序说明 113.6 实现方式 123.7 源程序设计 12结论与体会 20主要参考材料: 21附录 1:系统原理图 22附录2: PCB图24第一章 绪论1.1 引言电子闹钟是一种应用非常广泛的日常计时工具, 数字显示的日历钟已经越来 越流行,特别是适合在家庭居室、办公室、大厅、会议室、车站和
3、广场等使用, 壁挂式LED数码管显示的日历钟逐渐受到人们的欢迎。单片机电子闹钟是集电子技术、数字显示技术为一体的高产品,具有按时闹铃,显示清晰直观、走时准 确等优点。 首先介绍设计电子闹钟所涉及的主要硬件和特性,然后说明软件设 计的思路, 程序结构及流程, 并在测试软件上进行调试和修改, 以完成电子闹钟 的基本要求,即可以随意设定起始时间,有秒显示功能,有 12/24 世制选择,可 以设定闹钟, 停电时由电池供电等功能。 现代社会电子闹钟发挥着很大的作用, 也是它存在和发展的一个重要方面, 尤其是在代表集成电路技术的发展方面, 通 过不断提高电子闹钟的计时的精确度可以极大促进定时技术芯片的发展
4、。 同时电 子闹钟与其他嵌入式电子产品一样是微处理器的应用, 通过电子闹钟的设计可以 很好的掌握电子设计技术。1.2 闹钟的发展趋势随着电子技术的飞速发展, 家用电器和办公电子设备逐渐增多, 不同的设备 都有自己的控制器, 使用起来很不方便。 这些具有人们所需要的智能化特性的产 品减轻了人的劳动, 扩大了数字化的范围, 为家庭数字化提供了可能。 基于单片 机的电子闹钟就是新一代的产品, 能够实现远程控制等功能。 它功能强大、 体积 小、质量轻、灵活好用。1.3 本次设计所要实现的目标设计一个电子闹钟1)能随意设定走时起始时间2)螚指示秒节奏,即秒指示3)能通过PC机实现远程控制4)时间预设,定
5、时关机的功能第二章系统总体设计2.1系统总体设计思路先进行系统的整体规划确定整个系统的功能,然后按照每个功能的具体要 求,进行各个模块的实物设计并逐个调试,待全部通过后,进行整个系统的联调, 最终实现一个完整的系统,并制成印刷线路板。 整个系统的设计步骤如下: 在 单片机最小系统的基础上,完成按键电路和复位电路的设计。完成显示电路、数字按键、复位电路。 具有3个功能按键:1) 在复位后的待机状态下,用于启动设定时间参数(对时或定闹);2)在设定时间参数状态而且不是设定最低位(即分个位)的状态下,用于结束当前位的设定,当前设定位下移;3) 在设定最低位(分个位)的状态下,用于结束本次时间设定。2
6、) +1键, 用于对当前设定位(编辑位)进行加1操作,根据正在编辑的当前位的含义(时 十位、时个位、分十位、分个位)自动进行数据的上限和下限判断。例如,对12小时制,小时的十位只能是0、1,如果当前值为0,则按+ 1键后为1,再按 + 1键则又回复到0。把以上各个模块联结起来,整体调试功能。2.2总体硬件组成框图整个系统的原理框图如图2.1所示按键打按锂电路CPU11 1L 酒品显示 MiI位等辅助电路峙阳铃声音指示电路图2.1 系统原理框图2.3 AT89C51 的简介2.3.1 AT89C51 简介AT89C51 是一个低功耗,高性能CMOS 8位单片机,片内含 4k BytesISP(I
7、n-system programmable) 的可反复擦写1000次的Flash只读程序存储器, 器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单 元,功能强大的微型计算机的AT89C51可为许多嵌入式控制应用系统提供高性价 比的解决方案。2.3.2引脚介绍AT89C51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM,32个外部双向输入/输出口,5个中断优 先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双
8、工串行通信口, 看门狗(WDT电路,片内时钟振荡器。图2.2为AT89C51引脚图P1 0 C1 j VeePl 1 23S P0. 0 /ADOP1 2 C3383 P0. L/Ult3 C431 P0, Z/2Pl 4 C5362 PG 3/iOSM0S1/P1 5 c&鮎MIS0/P1 G C7343 P0.5/AD5SCI/P1 7 C8333 P0.6/AD6RST C332 P0.T/AD7RXD/F3 0 C1031TXD/P3. 1 C11 ao ALE/PRjjCnrro/ps. 2 c1229 JESHIKTI/F3- 3 C1328 P2. T/A15T0/P3 4 c1
9、4213 P2.&/A14T1/P3 5 C15能3 P2 5/A13咏円& c16253 P2.4/A12RD/P3 7 C17243 P2. 3/111KTAL2 C18233 F2 2/A10ITAL1 C19Z2 P2. 1U9PDIP tML C20 213 P 乙 Q/1B图2.2 AT89C51引脚图此外,AT89C5设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。 空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工 作,掉电模式冻结振荡器而保存 RAM勺数据,停止芯片其它功能直至外中断激活 或硬件复位。同时该芯片还具有PDIP、TQFF和PLCC
10、等三种封装形式,以适应不 同产品的需求。主要功能特性:兼容MCS-51指令系统 32个双向I/O 口 2个16位可编程定时/计数器全双工UART串行中断口线 2 个外部中断源 中断唤醒省电模式 看门狗( WD)T 电路灵活的 ISP 字节和分页编程 4k 可反复擦写(1000 次)ISP Flash ROM 4.5-5.5V 工作电压时钟频率 0-33MHz 128x8bit 内部 RAM 低功耗空闲和省电模式 3 级加密位软件设置空闲和省电功能双数据寄存器指针2.4 系统功能的确定2.4.1 基本功能 系统具有时间、日期、三路定时功能,并可以对时间、 日期、定时进行设定, 有定时提示音。要求
11、计时精度尽量提高。显示格式为:时间:“时”(第 1、2 位)、“分”(第 3、4 位)、“秒”(第 5、6 位);日期:“年”(第 1 、2 位,如 2007 年显示为 07)、“月”(第 3、4 位)、“日 (第 5、6 位);定时:“时”(第1、2位)、“分”(第 3、4位) 、“状态标志”(第 5、6位)键盘及数码管排列如图 2.3 所示。242扩展功能该系统可以增加温度传感器,实现温度测量,以实时显示温度,用 1、2位 数码管显示;还可以增加湿度传感器,实现湿度测量,以实时显示湿度,用 5、 6位数码管显示。多路定时器功能也可扩展为对多种家电等电气产品的自动控制,比如电饭煲 等;也可利
12、用温度对某些电气产品进行自动控制, 比如空调等;还可利用湿度传 感器对湿度进行调节。如图2.3所示第1位第2位第3位第4位第5位第&位SBHHBH图2.3 系统功能图2.5时钟电路实验板的时钟振荡源电路如图2.4所示。其中JT为11.0592MHz的晶振, 改变两电容CB的值即可对此晶振频率进行调节。该电路提供单片机工作所需的 振荡频率,计算定时器初值即需此晶振频率, 在通信时也需知道晶振频率,以对 波特率进行计算。XTAL2XTAL1GND图2.4时钟电路2.6复位电路如图2.5所示为实验板的复位电路,当 RESET信号为低电平时,实验板为 工作状态,当 RESET信号为高电平时,实验板为复
13、位或下载程序状态。由于 AT89S52具有ISP的功能,即可以通过并口线直接将程序下载到单片机内,因此,AT89S52具有两种状态,下载程序状态和运行状态。该复位电路能实现上电自动 复位,也能手动复位,一般复位时 RESET应保持20毫秒以上高电平,此复位时 间由接地电容控制。KhifRSTRST10K图2.5复位电路2.7键盘电路如图2.6所示为阵列按键电路,各设置及转换信号由此电路输入,实验板提 供了 16个按键,由P1 口经SN74F24(驱动芯片)输出扩展成4X 4的阵列按键,P1.0P1.3为行线,P1.4P1.7为列线。SN74F244有一片选信号线G,当此口线为低电平时,A1A4
14、与丫1Y4接通,反之,A1A4与丫1Y4断开。此键盘用扫描工作方式,若有键按下,则相应位端口被拉低为低电平,由于 本系统只用了 4个按键,所以只需对4个按键进行扫描。扫描时,先置 P3.3 口 为高电平,向 P1 口送OEFH(MOV P1, #0EFH,再置P3.3 口为低电平,读 P1 口( MOV A P1),最后判断P1 口低4位哪位是低电平,若某位为低电平,则相 应按键被按下,如P1.0为低电平(ACC.0=0,则K1键被按下。KIK2K4IIY2Y3Y4AlA2A3QJTOPi. 1XFl 2 F1.3 -GA1A2A3MY1T2Y3Y4Fl. 4Pl. 6 FETAFlSH74F
15、244图2.6 阵列按键2.8数码显示电路如图2.7所示为数码显示电路,实验板使用了 6个共阳数码管,P0 口为段 码信号线,B1B6为位控线,是P1 口经SN74F573(反向驱动芯片,即输入为高 电平,则输出为低电平,反之则输出为高电平,该芯片也有一片选信号C,当此信号为高电平时有效)反向得到,再由 B1B6控制晶体管Q1Q6以达到控制 每位数码管的目的。系统采用动态显示,先向P0 口送第一位数码管需要显示的段码值,再给 P1 口送OFEH延时1毫秒使第一位数码管显示,又向 P0 口送第二位数码管需要显 示的段码值,P1 口送OFDH延时1毫秒,使第二位数码管显示。依次递推,直 到最后一位
16、数码管,然后再循环。改变延时时长可以调节数码管显示的亮度,由 于单片机执行速度很快(微秒级),所以看上去数码管一直亮着。11El E2 a b c d e f g dp 丿丿丿丿丿丿丿丿图2.7数码显示电路丿丿丿丿丿丿丿丿第三章系统软件设计3.1数据单元分配数据存储单元分配如表3.1所示:表3.1数据存储单元分配项目秒分时日月年存储单30H31H32H33H34H35H项目定时1:开定时1:定时1:定时2:开定时2:定时2:存储单36H37H38H39H3AH3BH项目定时3:开定时3:定时3:存显示首地址堆栈起始单元存储单3CH3DH3EH3FH50H标志位单元(20H)分配如表3.2所示:
17、表3.2 标志位单兀(20H)分配位单元项目位单元项目01H1、2位数码管闪烁标志位08H定时1显示标志位02H09H定时2显示标志位03H3、4位数码管闪烁标志位0AH定时3显示标志位04H0BH定时1响铃标志位05H5、6位数码管显示标志位0CH定时2响铃标志位06H0DH定时3响铃标志位07H日期显示标志位0EH总响铃标志位3.2时钟程序设计步骤系统采用模块化结构,主程序只需调用各个子程序模块即可实现相应功能 其模块结构图如图3.1所示。图3.1模块结构图3.3计时子程序模块的实现当TO中断时,执行本程序,因TO设为50毫秒中断,故中断20次为1秒。 中断程序分别有20次计数(1秒),6
18、0次计数(1分),60次计数(1小时),24 次计数(1天),28、29、30、31次计数(1个月),12次计数(1年)。当前位 到设定数值时写0或1,下一位加1。由于本世纪是21世纪,年位前两位是4 的倍数,故判断闰年时只需对年的后两位进行计算, 能被4整除为闰年,否则为 平年,年位只进行加1,大于99时又重新开始。计时中断流程图如图 3.2所示。TO中断修正并重装 宦时常数加1秒,重置屮断枕数秒貫分加1分貫0血加1时買0,日加1BS I,月加i月置1,年加1N 年置0t返回图3.2计时子程序流程图图3.3显示子程序流程图3.4时钟设定子程序模块的实现当设定时间时,断开TO中断,秒单元清0,
19、进入时、分单元设定。设定好 后重装TO初值,开TO中断。流程图如图3.4所示。图3.4时钟设定子程序流程图3.5程序说明3.5.1定时器初值计算因定时器工作于方式1,需要50ms的中断,所以计数初值X =216 - t X fosc /12=65536 - 50 X 10-3 X 11.0592 X 106/12=19456表示成十六进制为x =4C00H故(THQ =4CH (TL0) =00H3.5.2程序初始化程序初始化时,清相应内存单元(20H4FH共48个单元),送时间(00时 00分00秒)、日期(07年10月01日)初值,送定时器T0、T1初值,TH0=TH1=4CH TL0=
20、TL1=00H,特殊寄存器(SP=50H TMOD=11H值等。3.5.3误差分析及校正当T0中断时,需重装定时初值,且要加上从断开 T0中断到允许T0中断共 有13个周期,以减小误差,故理论重装定时初值为(TH0 =4CH (TL0) =13H= 但该外接晶振电路的晶振频率可调, 可能出现误差,所以实际不是这个值。经调试,当定时初值为(TH0 =4CH (TL0) =06H时,24小时约慢2秒,所 以每当计时24小时之后,给秒单元(30H)送02H,使秒累加时从2加起,24 小时就少加2秒,即可使时间得到校正。3.5.4 实现闪动设定闪动可选用段码送00H实现,也可禁止当前位显示,选通位送0
21、实现。本设 计选用后者实现闪动,用定时器 T1 进行控制。3.5.5 实现连续加 1先判断键是否松开,若松开,则只执行一次加 1 程序段,进行单次加 1;若 未松开则连续执行加 1程序段,实现连续加 1。每执行一次加 1 程序段就调用显 示子程序进行延时,以对调节速度进行控制。本系统以 5Hz的速度连续加1,这 样能快速对时间、日期、定时进行设定。3.6 实现方式 该时钟程序的功能模块先后实现的顺序为:主程序-时间模块一显示模块-键盘模块一时间设定及其显示模块一日期 及其显示模块日期设定及其显示模块定时及其显示模块定时设定及其显 示模块-定时提示音及与显示相冲突的协调模块。每完成一个模块就与前
22、一个已完成的模块结合起来调试,直至实现相应功 能,再编写下一模块程序。 在与主程序衔接时, 主程序和各子程序也需作相应的 改动,以便与子程序更好的衔接, 特别是显示子程序需作较大改动, 以便对不同 内容进行显示。3.7 源程序设计 #include #include #define uchar unsigned char #define uint unsigned intsbit dula=P1A0;sbit wela=P1Al;sbit key1=P2A0;sbit key2=P2A1;sbit key3=P2A3;sbit key4=P2A3;sbit key5=P2A4;uchar te
23、mp,tt,sec,min,hour;uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71;void init();void keyscan();void counter();void delay(uint z);void main() init();wela=1;P0=0xfe;temp=P0;wela=0;dula=1;P0=0x3f;dula=0;while(1)wela=1;P0=temp;wela=0;if(temp=0xfe)/1111 11
24、10 dula=1;P0=tablesec%10; dula=0;if(temp=0xfd)/1111 1101dula=1;P0=tablesec/10; dula=0;if(temp=0xfb)/1111 1011 dula=1; P0=0x40; dula=0;if(temp=0xf7)/1111 0111 dula=1;P0=tablemin%10;dula=0;if(temp=0xef)/1110 1111dula=1;P0=tablemin/10;dula=0;if(temp=0xdf)/1101 1111 dula=1; P0=0x40; dula=0;if(temp=0xbf)
25、/1011 1111 dula=1;P0=tablehour%10; dula=0;if(temp=0x7f)/0111 1111dula=1;P0=tablehour/10;dula=0;delay(2); temp=_crol_(temp,1);if(temp=0xff)temp=0xfe;keyscan() ;counter();void delay(uint z) / 延时子函数uint x,y;for(x=z;x0;x-) for(y=110;y0;y-);void init()/ 系统初始化 tt=0;wela=0;dula=0;EA=1;ET0=1;TR0=1;TMOD=0x01
26、;TH0=(65536-50000)/256;TL0=(65536-50000)%256;void timer0() interrupt 1 / 定时器 0 中断 TH0=(65536-50000)/256;TL0=(65536-50000)%256;tt+;void counter() /计时子函数if(tt=20)tt=0;sec+;if(sec=60)sec=0;min+;if(min=60)min=0;hour+;if(hour=24)hour=0;void keyscan()/ 键盘扫描if(key1=1)delay(5);if(key1=1) TR0=0;while(key1); delay(5);while(key1);if(key2=1)delay(5);if(key2=1) sec+;while(key2); delay(5);while(key2);if(key3=1)delay(5);if(key3=1) min+;while(key3);delay(5);while(key3);if(key4=1)delay(5);if(key4=1)hour+;while(key4);delay(5);while(key4); if(key5=1) delay(5);if(key5=1)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023国家能源投资集团有限责任公司第一批社会招聘笔试备考试题及完整答案详解一套
- 2025年黑龙江省五常市辅警招聘考试试题题库完整答案详解
- 2025年Z世代消费趋势预测:新消费品牌发展前景深度报告
- 2025年K2学校STEM课程实施效果评估与教育评价体系创新实践报告
- 慢性阻塞性肺疾病诊治指南变迁2025
- 《模拟导游教程》中职旅游管理专业全套教学课件
- 宪法学试题及参考答案
- 广东省清远市佛冈县高中联考2024-2025学年高一下学期6月月考英语试卷
- 2025年重庆市西南大学附属中学中考三模道德与法治试卷(含答案)
- 2024-2025福建省厦门市集美中学高一下6月英语月考英语试卷
- 2025届浙江省杭州市建兰中学八年级英语第二学期期末综合测试试题含答案
- 小麦收割合同协议书模板
- 广东省惠州市惠阳区2023-2024学年一年级下学期语文期末随堂练习试卷(含答案)
- 起重吊装作业安全与操作规范培训
- 2025辽宁沈阳副食集团所属企业招聘25人笔试参考题库附带答案详解
- 2023电气装置安装工程 旋转电机施工及验收规范
- 施工项目资料管理试题及答案
- 2025年安全知识竞赛题库及答案(共150题)
- 第六单元 年、月、日 单元测试(含答案)2024-2025学年三年级下册数学人教版
- 国家开放大学2025年《机电控制工程基础》形考任务1-4答案
- 合资公司的组织结构与运营规范
评论
0/150
提交评论