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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(电子打铃器.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

电子打铃器.docx

1、电子打铃器 单片机课程设计课题:电子打铃器学 院: 电气与信息工程学院专 业: 电子信息工程姓 名:¥学 号: 指导老师:河南城建学院2013年 01 月 01 日成绩评定一、指导教师评语(根据学生设计报告质量、答辩情况及其平时表现综合评定)。二、评分评分项目设计报告评分答辩评分平时表现评分合 计 (100分)任务完成情 况(20分)课程设计报告质量(40分)表达情况(10分)回答问题情 况(10分)工作态度与纪律(10分)独立工作能力(10分)得分课程设计成绩评定班级 姓名 学号成绩: 分(折合等级 )指导教师签字 年 月 日目录摘 要 0引 言 0第一章 设计简介及方案论述 1第二章 设计

2、思路与方案 12.1单片机总体设计思路 12.2各功能模块程序实现原理分析 22.3 AT89C51单片机性能介绍 2第三章 电子打铃系统硬件设计 53.1系统主要硬件电路 53.3蜂鸣器驱动模块的硬件设计 7第四章 系统软件设计 74.1系统软件设计的主要内容 84.2主程序流程设计 8第五章 系统调试与测试结果分析 105.1系统调试 105.2调试现象及分析 105.3仿真结果 10第六章、心得体会 12参考文献: 12附录: 13 引 言本设计是根据我们所学习的单片机课程,按照大纲要求对我们进行的一次课程检验,是进行单片机课程训练的必要任务,也对我们掌握单片机应用有很大的帮助。掌握单片

3、机技术是一门不可或缺的技术,对我们将来的工作以及生活和学习都有很密切的联系。近年来,随着电子技术和微机计算机的迅速发展,单片机的档次不断提高,其应用领域也在不断的扩大,已在工业控制、尖端科学、智能仪器仪表、日用家电、汽车电子系统、办公自动化设备、个人信息终端及通信产品中得到了广泛的应用,成为现代电子系统中最重要的智能化的核心部件。当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未有的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。目前,一个学

4、习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。学习单片机的最有效的方法就是理论与实践并重,本文用AT89C51单片机设计的一个电子打铃系统。第一章 设计简介及方案论述1.作息时间控制钟系统概述: 本设计是一个具有打铃功能的作息时间控制钟。它利用89C51单片机的2Hz时基计时,进行年历计算,并用的蜂鸣器驱动模块将它打出来;在进行时间计算,分每加一时,都与规定的作息时间比较,如果相等则进行相应的控制或动作。由七段显示驱动模块、蜂鸣器驱动模块和按钮控制模块三部分组成,四个按键用于报时及校正时间。现代机关企业,特别是学校要求对时间加以控制,要按时打铃及播放广播,以保证学习与工作的正常运

5、行。本设计实现了这些功能,给学校及其他机关企业带来方便,整体性好,人性化强、可靠性高,实现了对时间控制的智能化。2.设计要求:1 利用单片机组成一个电子打铃器。2 按照学校上下课铃声次序设定定时间3 用一个蜂鸣器模拟电铃,响铃10s。 4 周六周日不打铃5 通过“周” “时” 键和“分”键分别校正周、时和分,每按一次对应+1。第二章 设计思路与方案2.1单片机总体设计思路 (1)设计能正常工作的一个单片机最小硬件系统,外围电路包括设置键盘,LCD或LED的显示屏; (2)进行软件设计,利用单片机系统时钟先设计一个高精度的内部时钟系统,最小精确时间为期1秒; (3)在秒计数器的基础上设计一个24

6、小时时钟,并设计若干定时功能; (4)设计打铃执行机构,完成自动打铃功能。2.2各功能模块程序实现原理分析 图2-1模块组成框图如图2-1所示,该模块由蜂鸣器驱动模块、蜂鸣器驱动模块和按钮控制模块三部分组成。且三部分都通过AT89C51来实现。七段式数码管驱动模块 采用动态扫描方式,通过一组单片机端口驱动并联在一起的LED发光管的一端(共阴或共阳端),LED发光管的另一脚接通用I/O口,控制其亮灭。该方法能驱动较多的LED,控制方式较灵活,而且节省单片机的资源。蜂鸣器驱动模块 采用压电式蜂鸣器,压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。多谐振荡器由晶体管或集成电

7、路构成,当接通电源后(1.5-15V直流工作电压),多谐振荡器起振,输出1.52.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。按钮控制模块四个按钮的一端分别接地,另一端接单片机一个端口的四个引脚,当某一个按钮按下的时候,其对应的引脚就由高电平变成低电平,然后通过单片机扫描读取引脚的电平来判断按钮是否按下。2.3 AT89C51单片机性能介绍AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯

8、片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。引脚说明: VCC:供电电压。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将

9、输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚

10、是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示: 口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。

11、第三章 电子打铃系统硬件设计3.1系统主要硬件电路系统主要硬件电路作为驱动整个打铃系统的电路又分为七段数码显示电路和蜂鸣器驱动电路。由显示七段数码显示电路和蜂鸣器驱动电路组成的系统硬件主要电路如下:图3-3:系统主要硬件电路该系统通过按钮控制(系统使用4只按键,3只按键用来调整时间,另一只为强制打铃按钮;调整选择键SET_KEY:P1.0通过选择键选择调整位,选中位闪烁;增加键ADD_KEY:P1.1按一次使选中位加1;减少键DEC_KEY:P1.2按一次使选中位减1;如果长按ADD_KEY或DEC_KEY,识别后则进行调时快进,此时停止闪烁)AT89C51的计时和定时,在七段数码管上显示出来

12、(实现24小时制电子钟,8位数码管显示,显示时分秒),再通过蜂鸣器 (BEEP:P3.7)来实现打铃。 3.2七段式数码管驱动模块的硬件设计LED数码管显示器内部有七个条形发光二极管和一个小圆点发光二极管组成,其结果图如下所示:comABCDEFG图3-4:七段数码显示管因而它的控制原理和发光二极管的控制原理是相同的。根据各管接线的形式,可分成共阴极型和共阳极型。其八个接口对应的字形如下表:表一:数码管字型码表显示字形dpgfedcba共阴极字型码共阳极字型码0001111110x3F0xC01000001100x060xF92010110110x5B0xA43010011110x4F0xB0

13、4011001100x660x995011011010x6D0x926011111010x7D0x827000001110x070xF88011111110x7F0x809011011110x6F0x90A011101110x770x88B011111000x7C0x83C001110010x390xC6D010111100x5E0xA1E011110010x790x86F011100010x710x8E3.3蜂鸣器驱动模块的硬件设计本设计中的蜂鸣器驱动模块用到了蜂鸣器(SPEAKER)、三极管、100欧姆的电阻。将蜂鸣器的一段接地,另一端接三极管的发射极,三极管的基极通过100欧姆的电阻接在

14、三极管的P3.7引脚,三极管的集电极接+5V的电源。其电路图如下图所示:图3-5:蜂鸣器驱动电路图 第四章 系统软件设计软件是该LED显示屏控制系统的重要组成部分,在系统的软件设计中我们也才用了模块化设计,将系统的各部分功能编写成子模块的形式,这样增强了系统软件的可读性和可移植性。4.1系统软件设计的主要内容系统软件设计由三个模块编程组成:蜂鸣器打铃编程,七段显示管显示编程,按键编程。4.2主程序流程设计 主程序初始化,并打开中断,然后执行中断服务程序。实现24小时制电子钟,8位数码管显示,显示时分秒显示格式:23-59-59(小时十位如果为0则不显示)到预定时间启动蜂鸣器模拟打铃,蜂鸣器BE

15、EP:P3.7打铃方式分起床、熄灯铃和上、下课铃两种系统使用4只按键,3只按键用来调整时间,另一只为强制打铃按钮调整选择键SET_KEY:P1.0;通过选择键选择调整位,选中位闪烁增加键ADD_KEY:P1.1;按一次使选中位加1减少键DEC_KEY;P1.2;按一次使选中位减1,如果长按ADD_KEY或DEC_KEY,识别后则进行调时快进,此时停止闪烁。主程序流程设计图: 图4.1如图所示主程序开始初始化后,就跳转到中断服务程序,如正常走时,则往下进行打铃时间的比较,继续向下执行对打铃的判断程序;如不正常走时,则直接转到显示程序。这以后,继续执行按键的检测,若有键按下,则取值打铃;反之,则返

16、回到中断服务程序的开始继续执行。主程序清单见附录。第五章 系统调试与测试结果分析5.1系统调试根据系统设计方案,本系统的调试共分为三大部分:硬件调试,软件调试和软硬件联调。由于在系统设计中采用模块设计法,所以方便对各电路模块功能进行逐级测试:LED驱动模块的调试,数据存储模块的调试,PC机通信模块的调试等,最后将各模块组合后进行整体测试。5.2调试现象及分析 进入调试状态后应该在关键的地方设置断点然后按步运行,同时观察参数的变化,通过变化来判断程序运行的过程即可找出程序中混乱的部分,进行改正,这需要对软件熟练的掌握和对语言程序的很好的理解,实验板搭建成功后,我们就进入了程序的设计和调试阶段,开

17、始编写程序时很顺利,但是后来在调试过程中出现了很多的错误,比如定时器准确度的设置,子程序的调用问题,最困难的就是对没步程序执行顺序的分析,由于程序中一些语句的错误理解和执行顺序的判断失误,让我掉进了误区,耽误了很长时间,最后在同学的帮助下终于找到了错误的关键点,更正成功了。看来对程序的调试能力我还需要加强,程序的调试需要耐心,而且需要熟练掌握软件的跟部分功能。5.3仿真结果 此系统的仿真效果很好,能实现设计要求和目的所规定的内容。下面是两幅仿真结果图: 图5-1 图5-2第六章、心得体会本系统被广泛用企事业单位,设计比较简单。经过一学期的学习,使我对单片机有了初步的认识,了解了一些软件编程的技

18、巧。 经过这次的课程设计,使我学会了课堂上学不到的知识,颇有一番感受,对于单片机更加的了解了,对各种器件的使用方法更加熟悉,学会了电路的基本设计思路和原理,掌握单片机设计步骤,知道这门课程在工作中的重要性。由于知识点不够精通,所以经常出现问题,在程序设计中我太过马虎,导致第一次制作出来的打铃器不正常工作,仔细检查后我发现程序有错误,然后经过仔细排查我修改了错误。在电路调试过程中我发现了电路的一些问题,但在老师和同学们的同共努力下都得到解决,。这些教训使我领悟到了科学是严谨的,不能有一点马虎,所以我们在对待科学的态度上应该要一丝不苟。最终看到了成果。另外,如果在工作中遇到困难,就要及时虚心向他人

19、请教,提早解决问题,这样才不至于延误工作。课程设计加深了学生对所学课程理论的理解,扩展了教学中的实验内容和要求,积累了实践体验和经验,让我们提前感受到毕业设计的大致过程,进而能顺利进入毕业设计,提高毕业设计质量和学生实际应用能力。参考文献:1电子技术基础:模拟部分 北京高等教育出版社 康华光19992单片机原理及接口技术 北京航空航天大学出版社 李朝青 20053单片机课程设计指导北京航空航天大学出版社 楼然苗20074单片机实验与实践教程北京航空航天大学出版社 何立民2004附录:#include#define uint unsigned int#define uchar unsigned

20、charuchar code segcode=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf;/0,1,2,3,4,5,6,7,8,9,-uchar code dispbit=0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80;/数码管位选码uint code xshijianbiao=10500,75000,80000,84500,85500,94000,100000,104500,105500,114000,150000,154500,155500,164000,165000,173500,19300

21、0,213000;/夏季时间uint code dshijianbiao=11000,75000,80000,84500,85500,94000,100000,104500,105500,114000,143000,151500,152500,160500,161500,170000,190000,210000;/冬季时间uchar buffer=1,1,0,0,0,0,0,0;uint zhou, hour,min,sec,shijian;uint status;sbit spot=P07;sbit led=P37;sbit dxxz=P10;/函数声明void delayMS(uint t

22、) ; void keyprocess(unsigned char key);void display();void timer0();void shanl();/延时函数void delayMS(uint t) / 晶振频率12M uint i; while(t-) for(i=0;i125;i+); /比较打铃函数void compare() uint i; shijian=hour*10000+min*100+sec; for(i=0;i18;i+) if(dxxz=1) if(dshijianbiaoi=shijian&zhou!=6&zhou!=7) uint i;for(i=0;i

23、235;i+) display(); led=0; delayMS(20); led=1; else if(xshijianbiaoi=shijian&zhou!=6&zhou!=7) uint i; for(i=0;i235;i+) display(); led=0; delayMS(20); led=1; /按键处理函数void keyprocess(unsigned char key) /键值处理,正常计时,设置时分秒 switch (key) case 0xB0: if(zhou7) zhou+; else zhou=1; break; case 0xe0: if(hour23) ho

24、ur+; /小时加1 else hour=0; break; case 0xd0: if(min59) min+; /分钟加1 else min=0; break; break; default:break; /数码管显示函数void display() uchar i;/正常计时显示 buffer0=zhou; buffer1=hour/10; / 显示时的十位 buffer2=hour%10; / 显示时的个位 buffer3=min/10; / 显示分的十位 buffer4=min%10; / 显示分的个位 buffer6=sec/10; / 显示秒的十位 buffer7=sec%10;

25、 / 显示秒的个位 for(i=0;i=1000) / 定时 1S 到,以下为时钟的正常走钟逻辑 count=0; sec+; if(sec= 60) sec=0; min+; if(min= 60) min=0; hour+; if(hour= 24) hour=0; zhou+; if(zhou=7) zhou=1; main() /主函数 bit keyrelease; uchar buf; uchar keyinput; keyrelease=1; buf=0xff; TMOD=0x01; /T0工作在方式1,16位计数器 TH0=(65536-1000)/256; / 定时器0设置延

26、时1ms中断初始值 TL0=(65536-1000)%256; TR0=1; IE=0x82; /开定时器0中断 status=0; while(1) /键扫描程序 P2=dispbit1; keyinput=P1&0xf0; if(keyinput!=0xf0) delayMS(10); if(keyinput!=0xf0) if(keyrelease=1) keyrelease=0; buf=keyinput; /buf用来暂时存放键值 else keyrelease=1; keyprocess(buf); /调用按键处理函数 buf=0xff; else keyrelease=1; keyprocess(buf); buf=0xff; display(); compare();

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

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