基于51单片机的自动打铃系统.docx
《基于51单片机的自动打铃系统.docx》由会员分享,可在线阅读,更多相关《基于51单片机的自动打铃系统.docx(29页珍藏版)》请在三一文库上搜索。
1、大连民族学院2007级电子信息工程专业单片机系统课程设计报告机电信息工程学院单片机系统课程设计报告系:电子信息工程系专 业:班 级:072班设计题目:自动打铃系统设计学生姓名:张锡斌仇龙佳指导教师:刘忠富于为民完成日期:2010年5月31日一、设计任务和性能指标 21.1 设计任务21.2 性能指标2二、设计方案2三、系统硬件设置33.1、 单片机最小系统 33.2、 钟电路 DS130243.3、 显示电路的设计 53.4、 键盘接口的设计 53.5、 铃电路的设计 6四、系统软件设计4.1 程序流程图74.2 主程序设计 10124.3 显示子程序的设计 11五、调试及性能分析5.1 调试
2、步骤125.2 性能分析12六、心得体会12参考文献13附录1系统硬件电路图 14附录2程序清单15大连民族学院2007级电子信息工程专业单片机系统课程设计报告一、设计任务和性能指标1.1 设计任务用单片机器件为主体,设计一台自动打铃系统。(一)基本要求1、基本计时和显示功能(用12小时制显示)。包括上下午标志,时、分的数 字显示,秒信号指示。2、能设置当前时间(含上、下午,时,分)。3、能实现基本打铃功能,规定:上午 6: 00起床铃:打铃5秒、停2秒、 再打铃5秒。下午10: 30熄灯铃:打铃5秒、停2秒、再打铃5秒。铃声可 用小喇叭播放,凡是用到铃声功能的均按此处理。(二)发挥部分1、增
3、加整点报时功能,整点时响铃 5秒,要求有控制启动和关闭功能。2、增加调整起床铃、熄灯铃时间的功能。3、增设上午4节课的上下课打铃功能,规定如下: 7. 30上课,8. 20下 课:8. 30上课,9. 20下课;9. 40上课,10. 30下课;10. 40上课,11. 30 下课;每次铃声5秒。4、特色和创新自选。1.2 性能指标1 .时钟:上下午(1位)、时(2位)、分(2位)2 .校对键:确认键/设置键、右移键/灭铃键、加键、减键3 .响铃:蜂鸣器二.设计方案二、设计方案按照系统设计的功能的要求,初步确定设计系统由主控模块、时钟模块、显示模块、键扫描接口电路共四个模块组成,电路系统构成框
4、图如图1.1所示通过内部定时产生中断,从而驱动电铃打铃。电路系统构成框图如图1.1所示。主控芯片使用51系歹AT89C52单片机,采用高性能的静态80C51设计,由先进工艺 制造,并带有非易失性Flash程序存储器。它是一种高性能、低功耗的8位COMS 微处理芯片,市场应用最多。时钟芯片使用美国DALLAS公司推出的一种高性能、低功耗、带 RAM的 实时时钟芯片DS1302。采用DS1302作为主要计时芯片、可以做到计时准确。 更重要的是,DS1302可以在很小的电流的后备电源 (2.55.5V电源,在2.5V时 耗电小于300nA)下继续计时,并可编程选择多种充电电流对后备电源进行慢速 充电
5、,可以保证后备电源基本不耗电。 采用串行数据传输,与单片机硬件连接简 单,如果使用时钟芯片DS12887,将采用并行数据传输,占用更多的硬件资源。 因此为节省单片机端口,时钟芯片采用 DS1302。1.1硬件电路设计设定51单片机工作在定时器工作方式1,每100ms产生一次中断,利用软 件将基准100ms单元进行累加,当定时器产生10次中断就产生1S信号,这时 秒单元加1。同理,对分单元时单元和上下午单元计数,从而产生秒,分,时, 上下午的值,通过五位七段显示器进行显示。由于动态显示法需要数据锁存等硬 件,接口较复杂,考虑显示只有五位,且系统没有其他复杂的处理任务,所以采 用动态扫描实现LED
6、的显示。本系统采用四个按键,1键为功能键,另外三个做控制键。按一下 1键进入 时间设置,接着按2键选择需要调整的位,然后按 3和4键进行时调整,按3 键进行加数,按4键进行减数,按两下1键调整结束时钟继续走动。当时钟时间 与设置时间一致时,驱动电路动作进行打铃,按时间点不同打铃规则不同,此时 按2键强制灭铃。三、系统硬件设置3.1单片机最小系统单片机最小应用系统的设计电路原理图,如图3.1所示。本次设计我们选用了 AT89C52单片机。该单片机要求电源电压为+5V,所 以40号引脚接+5V电源,20号脚接地。因为AT89C52单片机的片内ROM为 4KB, 128位RAM,根据初步分析,本设计
7、程序应该小于4KB,故无须外扩的ROM ,所以单片机应直接访问片内程序存储器,单片机的31号脚接高电平。AT89C52单片机是一种时序逻辑电路,必须有脉冲信号才能正常工作,而时钟 脉冲是由振荡电路提供的,时钟可以由内部方式或外部方式产生,内部振荡方式, 只要接上两个微调电容和一个晶振即可,其中微调电容选用33pF其作用是稳定振荡频率,快速起振。本次毕业设计我们采用内部振荡方式,外接晶振为11.0592MHz,振荡周期=1/11.0592仙s,时 钟周期=2/11.0592仙s,机器周期=12/11.0592 s,指令周期=1 4 gAT89C52在开机时需复位,以便 CPU及其它功能部件都处于
8、确定的初始状 态,有利于进行下一步操作。MCS-51系列单片机的有效复位信号两个机器周期 以上的高电平。其复位的实现通常可以采用开机上电复位和外部手动复位两种方式。图中采用的是开机上电复位,复位电路由 10N F的电解电容和8.2K电阻组 成,其时间常数为T=RC, T=10pfx 8.2k, T=82ms大于10ms,所以单片机能够 有效复位,单片机只要保持82ms以上的高电平就能使单片机有效复位UI AT89C511FLOVCCPL1P0.0Pl.2PD.lPl 3P0.2Pl.4P0,3402弱3哭4375366交7rlrUs4Pl.6P口 5Pl.7P0,634S3393210Kj 1
9、rU. fP3.0 EA/VPPP3ALSPROGF3.2 DSENP33 P2.DP3.4P2,1P35P2.2P33P2331113012弱ir2114翌u_2316斜172513rS.fr2.4XTAL2_P2,5XTAIHD/P37VSS WRJT3.62 口 1120r图3.1单片机最小应用系统3.2 时钟电路 DS1302(1)性能特性实时时钟可对秒,分,时等进行计数,存在高速数据暂存的 31*8位RAM , 最少引脚的串行I/O 口; 2.55.5V电压工作范围25V耗电小于300nA;用于时 钟或RAM数据读/写的单字节或多字节数据传送方式; 简单的3线接口;可选的 慢速充电的
10、能力。DS1302时钟芯片包括实时时钟和31字节的静态RAM,它经过一个简单的 串行接口与微处理器通信,实时时钟提供秒,分,时等信息,时钟运行可以采用 24H,或带AM/PM的12H格式,采用三线接口与 CPU进行同眇通信,并可采 用突发方式一次传送多个字节的时钟信号或 RAM数据。DS1302有主电源/后备 电源双电源引脚;(2)工作原理DS1302在任何数据传送时必须先初始化, 把RST引脚置为高电平,然后把 8位地址和命令装入移位寄存器,数据在 SCLK的上升沿被输入,无论是读周期 还是写周期开始8位指定40个寄存器中哪个将被访问到,在开始8个时钟周期, 把命令字节装入歌位寄存器之后,另
11、外的时钟周期在闱时操作时输出数据, 在写 操作时写入数据,时钟脉冲的个数在单位字节下为8加8,在多字节方式下为8加字节数,最大可达248字节数。为了提高对32个地址的寻址能力,可以把时钟或 RAM寄存器规定为多字 节方式,在多字节方式中,读或写从地址0的位0开始,必须管按数据传送的次序电先的8个寄存器。但是当以多个字节写 RAM时,为了传送数据不必写所有 31字节,不管是否写了全部31字节,所写的每个字节都将传送至 RAM。时钟暂停:秒寄存器的位7定义位时钟暂停位,当它为1时,DS1302停止振荡, 进入低功耗的备份方式,通常在对 DS1302进行写操作时,停止振荡,当它为 0 时时钟将开始启
12、动。8051通过串口向DS1302写数据的程序框图如图3.2,其中,Px可以是8051 单片机的任何一位I/O 口,注意因为DS1302的数据发送或接收时序和8051的用 行口不完全一致,因此,需要在TXD的输出端加反相器,另外,接收数据时,不能以申 行口的接收方式接收,必须将用行口当作普通I/O 口进行数据接收.DS1302的晶振选用32.768KHZ,电容推荐值为6PF,因为振荡频率较低,也可 以不接电容,对计时精度影响不大。图3.2 DS1302写数据的程序框图3.3 显示电路的设计显示部分采用普通的共阳数码管显示,采用动态扫描,以减少硬件电路,数 码管分别为上下午,十时,时,十分,分显
13、示,显示时采用用行口输出控制数码 管,其中P2.2P2.4口控制数码管的位选,低电平数码管显示,动态扫描显示中 单片机P0 口输出数码管的段码。3.4 键盘接口的设计31P3 2XTAL1图3.4键盘电路本次设计的控制电路是由4个按键组成的,用以实现时钟信息的调整。其电 路图如图3.4所示,按键与P1 口的P1.0至|J P1.3相连。由于P1 口内有上拉电阻, 所以该图中上拉电阻可以省去。四个按键中, S1为数据+1键,S2为数据-1键, S3为数据选择键,S4为强制打铃或者强制关闭键。3.5 打铃电路的设计本次设计打铃电路如图3.5所示,单片机通过P3.7控制蜂鸣器是否发出声响。 当时间与
14、预定打铃时间相同时,单片机通过P3.7输出为1KHz的方波,使得蜂鸣器发出声响。图中PNP三极管作用是电流放大,以保证蜂鸣器能正常发出声 首。UI AT89C5I1 JP1.0 VCCPl.l P0.CP1J2 P0,lPl 3 PO.2Pl.4 P03Pl J P0 4Pl.6 PQ.5PE7 PO.6RSTP0.7P3.0 EA/VPPP3ALEZPROGP3.2 DSENP3.3P2,0P3 4P2.1P3.5P2.2P3.6P2.3P3.7P2.4XT 应 L2_P2.5 XTAHOfP3.7VSS WKZP3.6402393宛437536635734833Q3210311130122
15、91321142215231624172518261920VCC9012BELL27图3.5打铃电路四、系统软件设计4.1程序流程图初始化参数设置调用键盘子程序调用显示子程序调用控制子程序主程序流程图定时中断程序流程图显示程序流程图4.2主程序设计void main()uchar NowKey;uchar BeforKey=0xff;uchar KeyCount=0;uchar i=0;AlarmSingal=0;RayFlag=1;RayFlag2=1;TMOD=0x10;/ 设置 T1EA=1;ET1=1;TH1=0x3c;TL1=0xb0;TR1=1;while(1) D_Scan(Ti
16、meData,0);/动态扫描按键控制 if(KeyCount=2) KeyCount=0; NowKey=GetKey(); if(NowKey!=BeforKey)switch (NowKey) case 1:TimeSet(); break;case 2:AlarmSingal=0; break;default: break; BeforKey=NowKey;else KeyCount+;4.3显示子程序的设计void D_Scan(uchar *ShowAddress,uchar FlagBit) .uchar ShowBit;uchar Show;for(ShowBit=0;Show
17、Bit<5;ShowBit+)if(FlagBit!=5)switch(ShowBit)case 0:Show=BCD_to_Text(*ShowAddress)%10);break;case 1:Show=BCD_to_Text(*ShowAddress)/10);break;case 2:Show=BCD_to_Text(*(ShowAddress+1)%10);break;case 3:Show=BCD_to_Text(*(ShowAddress+1)/10);break;case 4:Show=BCD_to_Text(*(ShowAddress+2)%10);break; 一一P
18、2=0xff;switch(FlagBit)case 0:P0=Show;break;case 1:/股分闪动if(RayFlag2 && (ShowBit=0|ShowBit=1)P0=0x40;else P0=Show;break;case 2:/世时闪动if(RayFlag2 && (ShowBit=2|ShowBit=3)P0=0x40;else P0=Show;break;case 3:/我上下午闪动if(RayFlag2 && ShowBit=4)P0=0x40;else P0=Show;break;P2=GetClockBit(Sh
19、owBit);Delay(1);五、调试及性能分析5.1 调试步骤进入调试状态后应该在关键的地方设置断点然后按步运行,同时观察参数的变化,通过变化来判断程序运行的过程即可找出程序中混乱的部分,进行改正, 这需要对软件熟练的掌握和对语言程序的很好的理解,实验板搭建成功后,我们就进入了程序的设计和调试阶段,开始编写程序时很顺利,但是后来在调试过程 中出现了很多的错误,比如定时器准确度的设置,子程序的调用问题,最困难的 就是对没步程序执行顺序的分析,由于程序中一些语句的错误理解和执行顺序的 判断失误,让我掉进了误区,耽误了很长时间,最后在同学的帮助下终于找到了 错误的关键点,更正成功了。看来对程序的
20、调试能力我还需要加强, 程序的调试 需要耐心,而且需要熟练掌握软件的跟部分功能。5.2 性能分析自动打铃系统在学校很工厂和日常生活中应用广泛, 原理主要是通过单片机 的计数器进行计时,同时通过定时器中断扫描定时时间点来判断是否到了打铃时 问,到了打铃,同时可以手动灭铃,主要功能即计时和打铃,相当于闹钟,通过 计时器DS1302的使用使电路在断电后依然有后备电源进行计数, 设计很人性化。 还可以通过按键来设置时间,如果想深入设计,也可以通过键盘来设置闹钟时间, 使系统更加方便。六、心得体会本系统被子广泛用企事业单位,设计比较简单。经过一学期的学习,使我对单 片机有了初步的认识,了解了一些软件编程
21、的技巧。 经过这次的课程设计,使我 学会了课堂上学不到的知识,颇有一番感受,对于单片机更加的了解了,对各种 器件的使用方法更加熟悉,学会了电路的基本设计思路和原理,掌握单片机设计 步骤,知道这门课程在工作中的重要性,因为需要大量的资料,所以我和我的合作 者到图书馆查阅了大量的资料,也利用了互联网查找大量的资料,经过一番努力, 第一周我们完成了电路图的设计,第二周我们领取了所需的元器件,开始了电路 的装调,经过几天的努力,终于把电路装好了,但电路调试过程并不是那么的容 易,但经过调试我们发现了电路的一些问题,但在老师和同学们的同共努力下都 得到解决,最终看到了成果.我感谢老师,课程设计加深了学生
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 自动 打铃 系统
链接地址:https://www.31doc.com/p-13350943.html