版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机项目打铃器设计 朱琳 指导老师:张小明老师 班级:09信息一班目录1摘要2任务3.硬件图及其设计说明4.使用说明5.结束语6.致谢摘要 本设计是采用单片机技术的打铃器,目前以单片机技术的应用为核心的产品种类非常丰富。应用我们所学过的知识和查阅相关资料,我制作了这个单片机技术为基础的打铃器,这是一个简单的实用的单片机电子设计产品。我们通过书本上的知识,再通过每一次上课张老师让我们独立完成自己的项目,自己动脑筋,自己解决。实在没办法的,可以请教张老师 指点1,2 在一个半月里的努力与奋斗,有了今天的成果,之前我都没想到我会完成这个任务的。本打铃器设计是以单片机技术为核心,采用了中小规模集成度
2、的单片机制作的功能较为完善的电子闹钟。硬件设计应用了成熟的数字钟电路的基本设计方法以,并详细介绍了系统的工作原理。硬件电路中使用了除AT89C52外,另外还有LCD、晶振、电阻、电容、发光二极管、开关、喇叭等元件。在硬件电路的基础上,软件设计按照系统设计功能的要求,运用所学的C语言,实现的功能包括时时-分分显示、可设置多组时间、定时时间到能发出10秒的报警声。整体进行仿真并调试构成了整个完整的打铃器的设计。最后通过反复的林洋板的实际烧片仿真,该系统能够实现所有要求的功能包括:(1)能显示时时-分分。(2) 可设置多组时间(3)定时时间到蜂鸣器能发出铃声。当然这个系统仍然是属于比较简单的单片机应
3、用系统,要设计功能更强的更复杂的系统还需要我进一步的学习。任务1.1设计任务1、 设计一个打铃器程序2、 先通过keil软件仿真。3、 再根据原来的程序基础上对硬件进行仿真4、 然后通过修改程序把它移到林洋开发板上5、 最后通过实验进行对打铃器的功能添加与修改。6、写出完整的设计任务书:课题的名称、系统的功能、硬件原理图、程序清单;1.2设计目的(1)巩固、加深和扩大单片机应用的知识面,提高综合及灵活运用所学知识解决工业控制的能力;(2)培养针对课题需要,选择和查阅有关手册、图表及文献资料的自学能力,提高组成系统、编程、调试的动手能力;(3)针对课题设计方案的分析、选择、比较、熟悉单片机所用系
4、统开发、研制的过程,软硬件设计的方法、内容及步骤;(4)掌握打铃器的工作原理。硬件图及其设计说明1.闹钟元件清单130pF电容 2个7导线若干2CRYSTAL1个8蜂鸣器1个310K电阻 1个9数码管 1个410UF电解电容1个10接地线2个5RESPACK-82个11万能板1个6 AT89C521个2设计说明3.1 AT89C52单片机简介AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8K bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内
5、置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。 1. C1和C2取30pF 目的是可以稳定频率并对频率有微调作用 2. 51单片机内部有一个高增益的反相放大器,反相放大器的输入端为XTAL1,输出端XTAL2,在两端接晶振及两个电容,目的可以构成稳定的自激振荡器。 3.上电自动复位是在加电瞬间通过电容充电来实现的,在通电瞬间,电容C3通过电阻R11充电,RST端出现高电平而实现复位。4.BUZ1是蜂鸣器接在P1.5端 程序设计及其设计说明 /头文件:#include "reg51.h"/变量定义:unsigned char dis
6、pbitcode=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/表:共阳数码管 0-9 unsigned char ly_tt=0;/作为计数时间量unsigned char ly_miao=55;/秒unsigned char ly_fen=59;/分unsigned char ly_shi=7;/时unsigned char i,k; /引脚定义:sbit SMG_q = P10;/定义数码管阳级控制脚(千位)sbit SMG_b = P11;/定义数码管阳级控制脚(百位)sbit SMG_s = P12;/定义数码管阳级控制脚(十位
7、)sbit SMG_g = P13;/定义数码管阳级控制脚(个位)sbit sound = P15;/函数声明:void display(unsigned char shi,unsigned char fen);/定义显示函数,参数为显示时分void delay(void); void init();/初如化函数void sounder();/主函数,C语言的入口函数:void main() init();/初始化中断控制寄存器while(1)if(ly_tt=20)/20*50ms为1秒ly_tt=0;ly_miao+;if(ly_miao=60)ly_miao=0;ly_fen+;if(l
8、y_fen=60)/满60分清0ly_fen=0;ly_shi+;if(ly_shi=24)/满24小时清0ly_shi=0;display(ly_shi,ly_fen);/显示变量内容if(ly_shi=8&&ly_fen=0&&ly_miao=0)|(ly_shi=8&&ly_fen=02&&ly_miao=0)|(ly_shi=8&&ly_fen=55&&ly_miao=0)|(ly_shi=9&&ly_fen=40&&ly_miao=0)|(ly_shi=9&
9、amp;&ly_fen=55&&ly_miao=0)|(ly_shi=10&&ly_fen=40&&ly_miao=0)|(ly_shi=10&&ly_fen=50&&ly_miao=0)|(ly_shi=11&&ly_fen=35&&ly_miao=0)|(ly_shi=14&&ly_fen=00&&ly_miao=0)|(ly_shi=14&&ly_fen=45&&ly_miao=0)|(ly_shi=14&
10、amp;&ly_fen=55&&ly_miao=0)|(ly_shi=15&&ly_fen=40&&ly_miao=0)|(ly_shi=15&&ly_fen=55&&ly_miao=0)|(ly_shi=16&&ly_fen=40&&ly_miao=0)|(ly_shi=16&&ly_fen=50&&ly_miao=0)|(ly_shi=17&&ly_fen=35&&ly_miao=0) sound=0; if
11、(ly_shi=8&&ly_fen=0&&ly_miao>=10)|(ly_shi=8&&ly_fen=02&&ly_miao>=10)|(ly_shi=8&&ly_fen=55&&ly_miao>=10)|(ly_shi=9&&ly_fen=40&&ly_ly_miao>=10)|(ly_shi=9&&ly_fen=55&&ly_ly_miao>=10)|(ly_shi=10&&ly_fe
12、n=40&&ly_ly_miao>=10)|(ly_shi=10&&ly_fen=50&&ly_ly_miao>=10)|(ly_shi=11&&ly_fen=35&&ly_ly_miao>=10)|(ly_shi=14&&ly_fen=00&&ly_ly_miao>=10)|(ly_shi=14&&ly_fen=45&&ly_ly_miao>=10)|(ly_shi=14&&ly_fen=55&&
13、amp;ly_ly_miao>=10)|(ly_shi=15&&ly_fen=40&&ly_miao>=10)|(ly_shi=15&&ly_fen=55&&ly_ly_miao>=10)|(ly_shi=16&&ly_fen=40&&ly_ly_miao>=10)|(ly_shi=16&&ly_fen=50&&ly_ly_miao>=10)|(ly_shi=17&&ly_fen=35&&ly_ly_mia
14、o>=10) sound=1; /初始化函数void init()ly_tt=0;TMOD=0X01;/设置定时器1为模式一,即16位计算模式TH0=(65536-50000)/256;/给计数寄存器赋值,50毫秒时间TL0=(65536-50000)%256;EA=1;/开启总中断ET0=1;/开启定时器0中断TR0=1;/启动定时器/中断函数,关键字"interrupt" , 这是C语言的中断函数表示法,1表时定地器0void timer() interrupt 1TH0=(65536-50000)/256;/重新赋值TL0=(65536-50000)%256;l
15、y_tt+;/50毫秒计数/显示函数,参数为显示内容,只显示两位数void display(unsigned char shi,unsigned char fen)SMG_q=0;/选择千位数码管,在这里显示的是小时的十位P0=dispbitcodeshi/10;/delay();/P0=0XFF;/SMG_q=1;/SMG_b=0;/选择百位数码管,在这里显示的是小时的个位P0=dispbitcodeshi%10;if(ly_tt>=10)P0&=0x7f;/小数点以半秒的时间闪烁delay();/P0=0XFF;/SMG_b=1;/SMG_s=0;/选择十位数码管,在这里显示
16、的是分的十位P0=dispbitcodefen/10;/delay();/P0=0XFF;/SMG_s=1;/SMG_g=0;/选择个位数码管,在这里显示的是分的个位P0=dispbitcodefen%10;/delay();/P0=0XFF;/SMG_g=1;/void delay(void)unsigned char i=10;while(i-);使用说明按下林洋开发板的电源按钮,数码管显示当前设置时间。到打铃的时间时(打铃的时间可以自己设置),蜂鸣器响10秒时间后自动停止(响铃时间可以自己设置)。结束语这个学期我们信息班在张老师的带领下,学习的单片机 由于教学模式比其他老师不一样。所以我
17、们班级学习的氛围也相对来说非常好 张老师分组每2个人一个项目,而且,在者之前,我们都认为是不可能完成的任务。但是,经过半个学期的努力与奋斗。再在张老师的带领下,大家都很努力的做自己的项目。到现在 大部分同学都完成了自己的杰作。这次打铃器制作是单片机学习阶段一次非常难得的理论与实际相结合的机会,通过这次比较完整系统设计,我摆脱了单纯的理论知识学习状态,和实际设计的结合锻炼了我的综合运用所学的专业基础知识,解决实际工程问题的能力,同时也提高我查阅文献资料、设计手册、设计规范以及电脑制图等其他专业能力水平,而且通过对整体的掌控,对局部的取舍,以及对细节的斟酌处理,都使我的能力得到了锻炼,经验得到了丰
18、富,并且意志品质力,抗压能力及耐力也都得到了不同程度的提升。通过这次设计,让我了解了利用单片机设计系统的一些步骤,同时也了解了关于电子钟的设计原理与设计思想,这次的设计使我认识到我对单片机应用方面的知识知道的太少了,对于书本上的很多理论知识还不能灵活运用,有很多我们掌握的知识在等着我去学习,我会在以后的学习生活中弥补我所缺少的知识。本次设计使我从中学到了一些很重要的东西,那就是如何从理论到实践的转化,怎么样将我所学到的知识运用到我以后的工作中去。此次的设计给我奠定了一个实践基础,我会在以后的学习,生活中磨练自己,使自己适应于以后的竞争。致 谢本文是在张小明老师精心指导和大力支持下完成的。张小明老师以其严谨求实的治学态度、高度的敬业精神、兢兢业业、孜孜以求的工作作风和大胆创新的进取精
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《GRP时间管理RevB》课件
- 2025年长沙货运从业资格证考试模拟考试题库答案
- 2025年内蒙古货物运输从业资格证考试题
- 2025年广安货运资格证考试题
- 2025年石家庄货运从业考试试题答案解析
- 粤教版八年级下册地理-第八章-珠江三角洲-单元检测
- 社区用电安全规定
- 四川省城市排水工程招标文件
- 文化产业园硅PU施工合同
- 装卸作业应急预案
- 南水北调江苏水源公司2024年校园招聘高频难、易错点500题模拟试题附带答案详解
- 幼儿园小班健康《打针吃药我不怕》课件
- 广州英语小学六年级英语六上册作文范文1-6单元
- 2025届上海市宝山区行知实验生物高一上期末教学质量检测模拟试题含解析
- 中国戏曲 昆曲学习通超星期末考试答案章节答案2024年
- 农村饮水安全动态监测工作方案
- 《司马光》公开课一等奖创新教案
- 中医药创新团队及人才支持计划实施方案、申报书
- 农场场长、副场长岗位责任制
- 2024年山东省青岛中德生态园(青岛国际经济合作区)管委会选聘52人历年高频500题难、易错点模拟试题附带答案详解
- “数字城市”公共智慧底座项目解决方案
评论
0/150
提交评论