ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:22.19KB ,
资源ID:17480726      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17480726.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于单片机的定时闹钟课程设计报告书Word文档下载推荐.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于单片机的定时闹钟课程设计报告书Word文档下载推荐.docx

1、单片机作为核心的控制元件,使得电路的可靠性比较高,功能也比较强大, 而且可以随时的更新系统,进行不同状态的组合。本系统采用单片机STC89C52作为本设计的核心元件,利用两个4位7段共阴LED作为显示器件。接入共阴LED显示器,可显示时,分钟,秒,单片机外围接有定时报警系统,定时时间到,蜂鸣器发出报警声,提示预先设定时间到。电路由下列部分组成:时钟电路、复位电路、控制电路、LED显示、报警电路,芯片选用STC89C52单片机。 系统基本框图如图2.1所示:图2.1 系统基本框图3.方案说明此设计主要是通过单片机系统,综合运用定时器、中断、数码显示等知识设计一个可定时的电子钟。它包括系统总体方案

2、及硬件设计,软件设计,Proteus软件仿真等部分。 系统总体方案及硬件设计是本设计的重要组成部分,在这部分详细介绍了时钟原理,硬件设计,数码管LED,以及在设计过程中考虑到技术指标,机型的选择,器件的选择等一系列问题。 硬件设计的主要任务是根据总体设计要求,以及在所选机型的基础上,确定系统扩展所要用的存储器,I/O电路及有关外围电路等然后设计出系统的电路原理图。 合理的软件结构是设计出一个性能优良的单片机应用性系统软件的基础,因此必须充分重视。在本设计中采用应用广泛的C语言。用Proteus软件仿真检查设计是否合理。4.硬件方案设计4.1单片机STC89C52STC89C52是一个低电压,高

3、性能CMOS型8位单片机,片内含8KB的可反复擦写的Flash只读程序存储器(ROM)和512B的随机存取数据存储器(RAM),器件采用STC公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机的STC89C52提供了高性价比的解决方案。其引脚图如下图4.1所示:图4.1 STS89C52STC89C52具体介绍如下:1)主电源引脚(2根)VCC(40):电源输入,接5V电源GND(20):接地线2)外接晶振引脚(2根)XTAL1(19):片内振荡电路的输入端XTAL2(18):片内振荡电路的输出端3)控制引脚

4、(4根)RST/VPP(9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。ALE/PROG(30):地址锁存允许信号PSEN(29):外部存储器读选通信号EA/VPP(31):程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。4)可编程输入/输出引脚(32根)STC89C52单片机有4组8位的可编程I/O口,分别为P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。PO口(3932):8位双向I/O口线,名称为P0.0P0.7P1口(18):8位准双向I/O口线,名称为P1.0P1.7 P2口(2128):8位准双向I/O口线,

5、名称为P2.0P2.7 P3口(1017):8位准双向I/O口线,名称为P3.0P3.74.2 时钟电路单片机的时钟产生方法有两种:内部时钟方式和外部时钟方式。本系统中STC89C52单片机采用内部时钟方式。最常用的内部时钟方式是采用外接晶体和电容组成的并联谐振回路。振荡晶体可在1.2MHz12MHz之间。电容值无严格要求,但电容取值对振荡频率输出的稳定性、大小和振荡电路起振速度有少许影响,一般可在20pF100pF之间取值。STC89C52单片机的时钟电路如图4.2所示。图4.2 时钟电路4.3数码管显示电路单片机中通常使用7段LED,LED是发光二极管显示器的缩写。LED显示器由于结构简单

6、,价格便宜,体积小,亮度高,电压低,可靠性高,寿命长,响应速度快,颜色鲜艳,配置灵活,与单片机接口方便而得到广泛应用。LED显示器是由若干个发光二极管组成显示字段的显示部件,当发光二极管导通时,相应的一个点或一个笔划发光,控制不同组合的二极管导通,就能显示出各种字符。LED显示器有多种形式,如:“米”字型显示器,点阵显示器和七段数码显示器等,在单片机系统中使用最多的是七段数码显示器。LED七段数码显示器由8个发光二极管组成显示字符,根据内部发光二极管的连接形式不同,LED有共阴极和共阳极两种,如图4.3.1所示为4为7段共阴数码管的引脚图。图4.3.1 4段共阴数码管引脚图采用高亮共阴型s位数

7、码管,为示区别,显示秒的两个数码管个头较小,另外4个较大。共阴数码管连接线路如下:一般用7个发光二极管构成显示数字和符号,另外还用一段发光二极管显示小数点。这种显示器一般分为两种,共阳极显示器和共阴极显示器,共阳极显示器是把每个二极管的正端连在一起,共阴极显示器是把每个二极管的阴极连在一起。一只显示器是有8个发光二极管构成,当把某段加正向电压时,则该段所对应的笔划亮,不加正向电压则暗,为了保护各段不受损坏需要加限流电阻,无论是共阳极显示器还是共阴极显示器,它的8段排列顺序都是一样的:A段、B段、C段、D段、E段、F段、G段和DP段。在单片机中通常使用7段LED。数码管的显示电路如下图4.3.2

8、所示:图4.3.2 数码管的显示电路数码管中二极管电流的计算二极管本身有2V的电压降,一般二极管电流取10mA,则需添加的电阻为R=(U-ULed)/ILed,代入相关数值,即为300。本设计中,选用的电阻为470,则电流为I=(U-ULed)/R,代入实际数值,即为6.4mA,能够满足显示效果。4.4键盘电路设计方案中使用的是3个开关键组成的键盘电路,如下图4.4所示:图4.4 键盘电路图4.5报警电路设计方案中,采用的是蜂鸣器和PNP型三极管组成的报警电路。如下图4.5所示:图4.5 报警电路5.软件方案设计5.1系统软件设计该系统软件主要有主程序模块,定时中断服务程序,中断等待服务程序,

9、键盘程序,显示子程序服务程序等六大模块组成,因为C语言容易理解和记忆,所以我们用C语言来写此程序。5.2键盘程序键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦有键按下,便转向相应的子程序处理,处理结束后再返回。5.3 LED 七段LED由七个发光二极管按日字排开,所有发光二极管的阳极连在一起成共阳极,阴极连在一块称共阴极接法。当采用芯片驱动时不需要加限流电阻,其他情况下一般应外接限流电阻。动态显示电路有显示块,字形码封锁驱动器,字位锁存驱动器三部分组成。5.4音响报警电路在STC89C52外围的一个管口上加蜂鸣器,通过软件与硬件的结合可实现定时闹钟功能。5.5

10、程序流程图图5.5 程序流程图6.调试设几个按键从左往右为K1,K2,K3。K1与P1.0相连,K2与P1.1相连,K3与P1.2相连。按一下启动开关,显示为时间显示。按一下K1,进入时间显示的小时设定状态;按两下K1,进入时间显示的分钟设定状态;按三下K1,进入定时的小时设定状态;按四下K1,进入定时的分钟设定状态;按五下K1,退出设定,进入当前时间显示状态;K2和K3分别是对当前设定值的加和减。如下图6.1和6.2所示。图6.1 调时仿真效果图图6.2 定时仿真效果图7.小结 在做课程设计的过程中,我进一步认识到全面专业知识以及逻辑思考方式对研究问题的重要性,同时我也更加具体的掌握了课程设

11、计的基本方法。经过不断的努力,我终于完成了这次课程设计,总的来说,我学到了不少的东西,知道了理论联系实际的重要性。在设计过程中我遇到了很多的困难,但没放弃,查阅了许多相关的书籍,自己独立思考和借鉴了前人的许多优秀成果,并与所学的知识紧密的结合了起来。我相信这过程对我今后的学习和工作有着积极的影响,并搭好了平台。通过这次设计,我对这门课有了更好的理解,尤其结合了这几年学的相关的专业知识,对各门课都有了一个较全面的理解。这必将对我以后的学习和工作有很大的帮助。本次课程设计的定时闹钟电路,可以满足人们的基本要求,但因为知识水平有限,此电路中存在一定的问题,虽可以通过增加电路解决,但过于复杂和现有水平

12、有限,本次设计就未深入涉及,想要更好的改进电路,需要进一步的努力,如果有好的意见,希望老师给予支持指导。8.参考文献1 何立民.单片机应用技术选编10.北京:北京航空航天大学出版社2 林立.单片机原理及应用.北京:电子工业出版社3 沙占友等.单片机外围电路设计.西安:4 江力.蔡骏.王艳春.董泽芳.单片机原理与应用技术.北京,清华大学出版社5 潘永红.柳殊.单片机原理与应用.西安,西安电子科技大学出版社 定时闹钟源程序#include unsigned char led12=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40,0x00;

13、 /用一维数组定义0-9、横杠、全灭unsigned char a8;unsigned char second=0,minute=0,hour=1;unsigned char minute1=0,hour1=0;unsigned char b8=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f; /扫描unsigned char k=0;unsigned int temp; / 记录毫秒为秒的变量unsigned char M,S_flag; /M是模式,更新时间的种模式加上正常模式 S_flag闪烁标志sbit K1=P10;sbit K2=P11;sbit K

14、3=P12;sbit BEEP=P33;void delay(unsigned n) /0.2毫秒 int x,y; for(x=0;xn;x+) for(y=0;y24;y+);void time1() interrupt 3 /定时器中断函数 TH1=0xfc; /定时ms TL1=0x18; temp+; if(temp=1000) /配合定时器定时s temp=0; second+; if(second=59) second=0; if(minute59) minute+; else minute=0; hour+; hour%=24; if(hour1=hour&minute1=mi

15、nute&second10) /闹钟时间到if(M=0) BEEP=!BEEP; if(temp%250=0) /每ms S_flag=!S_flag; /闪烁标志位取反 if(k=8) k=0; P0=ak; P2=bk+; delay(1); P2=0xff; void display() switch(M) case 0: a0=ledhour/10; a1=ledhour%10; a2=led10; a3=ledminute/10; a4=ledminute%10; a5=led10; a6=ledsecond/10; a7=ledsecond%10; break; case 1: i

16、f(S_flag=1) a0=ledhour/10; a1=ledhour%10; else a0=led11; a1=led11; case 2: a3=ledminute/10; a4=ledminute%10; a3=led11; a4=led11; case 3: a0=ledhour1/10; a1=ledhour1%10; a3=ledminute1/10; a4=ledminute1%10; a5=led11; a6=led11; a7=led11; case 4: a0=ledhour1/10; a1=ledhour1%10; a3=ledminute1/10; a4=ledm

17、inute1%10; void key_prc() if(K1=0) delay(10); /延时去抖 if(K1=0) /按K1进行模式切换 M+; if(M=5) M=0; while(!K1);/等待按键释放 if(M!=0) /模式-调时 if(K2=0) delay(10); /延时去抖 if(K2=0) /加键按下 if(hour 0) hour-; else hour=23;K3); break; case 2: /模式-调分 if(K2=0) if(minute0) minute-; else minute=59; break; case 3: /模式-闹钟调时 if(K2=0) delay(10); if(hour10) hour1-; else hour1=23; break; case 4: /模式-闹钟调分 if(minute1 minute1-; else minute1=59; break; void main() S_flag=0; /闪烁标志位 TMOD=0x10; /定时器以方式定时 EA=1; /打开总中断 ET1=1; /允许定时器中断 TR1=1; /开启定时器(开始定时计数) while(1) key_prc(); display();

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1