单片机实验报告(简易报警器)[骄阳教育]_第1页
单片机实验报告(简易报警器)[骄阳教育]_第2页
单片机实验报告(简易报警器)[骄阳教育]_第3页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、简易报警器一、本次根据单片机课程设计题目与要求,我选择的是设计一个简易报警器。二、课程设计要求:自制一个单片机最小系统,包括串口下载、复位电路,采用两路外部中断输入门禁和红外探测两路信号(采用两个小按键模拟),中断信号输入后能将报警信息在四位一体数码管上显示,并输出声光报警信号。三、设计所需的硬件:0.1uF的无极性电容五个;10uF的极性电容两个;发光二极管两个;三极管9013四个; 4.7千欧的排阻一个;100,1k,10k的电阻若干;芯片插座若干;11.0592MHz的晶振一个;单片机STC89C54RD芯片一块;MAX232串口芯片一块;导线若干;四、课程设计要求是用按键红外探测和输入

2、门禁。但是由于实验室设备的条件,我采用的是红绿两个二极管代替红外探测的发光显示和输入门禁的报警装置。五、总体设计思想STC89C54RD+复位电路时钟电路电源LCD1602发光二极管模拟红外探测与输入门禁按键模块六、晶振电路振荡器是数字钟的核心。振荡器的稳定度及频率的精确度决定了数字钟计时的准确程度,通常选用石英晶体构成振荡器电路。石英晶体振荡器的作用是产生时间标准信号。因此,一般采用石英晶体振荡器经过分频得到这一时间脉冲信号。七、按键模块鉴于使用中断电路会增加硬件电路的复杂度,本电路采用独立按键的方法,只需在程序中加入扫描程序即可。其中P2.0接按键光标移位,P2.1接按键时间加数,P2.2

3、接按键时间减数,P3.2接按键模拟红外探测,P3.3接按键模拟输入门禁,。九、SPEAKER电路报警器装置的原理就是利用P3.7出来的高低电平交换使得扬声器发出声音。但是由于实验室的器材有限,所以我们改用了发光二极管来代替SPEAKER电路。十、实验仿真程序如下:#include #include #define uchar unsigned char#define uint unsigned intuchar code table_data=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00;uchar code table_sele

4、ct=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;uchar table_buffer=0,0;uchar count0,count1;sbit LEDREDCON=P00;sbit LEDGREENCON=P01;sbit spe=P02;sbit Kint0=P32;sbit Kint1=P33;sbit RS=P37;sbit RW=P36;sbit E=P35;uchar FRQ=0x00;void delay(uint ms) uchar i;while(ms-) for(i=0;i120;i+);void check_busy() /判断LCD忙

5、,要不停的检测,所以需要有个大循环while(1)E=0; /当RS=0和RW=1时,可以读忙信号。delay(3);RS=0;delay(3);RW=1;delay(3);E=1;delay(3);if(P1&0x80)=0)break;E=0;void write_command(uchar tempdata)E=0; /当RS=0和RW=0时,可以写入指令或者显示地址。delay(3);RS=0;delay(3);RW=0;P1=tempdata;delay(3);E=1; /此处高电平是将数据锁存起来delay(3);E=0;check_busy();void init_1602()

6、/LCD1602的初始化子函数write_command(0x38);/写指令write_command(0x0c);/显示开和光标位置write_command(0x01);/显示清屏write_command(0x06);/显示光标移动设置void write_data(uint j) /向LCD1602液晶显示器写数据E=0; /当RS=1和RW=0时,可以写入数据。delay(3);RS=1;delay(3);RW=0;P1=j;delay(3);E=1; /此处高电平是将数据锁存起来delay(3);E=0;check_busy();void init() /初始化子函数TMOD =

7、 0x11;TH0 = 0x00;TL0 = 0xff;IT0 = 1;IT1 = 1;IE = 0x8f;/EA=1;ET1=1;EX1=0;ET0=1;EX0=1;IP = 0x05;TR0 = 0;TR1 = 0;void main()init();init_1602();while(1) FRQ+; delay(10);void external_int0() interrupt 0 write_command(0x01);LEDGREENCON=1; count1+;if(count1=1)if(LEDREDCON=1)LEDREDCON=0;else LEDREDCON=1;if(

8、Kint0=0)while(!Kint0);delay(5);LEDREDCON=0;write_data(0);spe=1;if(count1=2)count1=0; LEDREDCON=1;write_command(0x01); void external_int1() interrupt 2write_command(0x01);LEDREDCON=1; count0+;if(count0=1)if(LEDGREENCON=1)LEDGREENCON=0;else LEDGREENCON=1;if(Kint1=0)/低电平有效while(!Kint1);delay(5);LEDGREE

9、NCON=0;write_data(1);/显示数据spe=1;if(count0=2)count0=0; LEDGREENCON=1;write_command(0x01);void timer0() interrupt 1 TH0=0xfe;TL0=FRQ;spe=spe;void timer1() interrupt 3 TH0=-5000/256;TL0=-5000%256; LEDGREENCON=_crol_(LEDGREENCON,1);LEDREDCON =_crol_(LEDREDCON,1);十一、实验仿真图如下:十二、硬件焊接及检测 在电脑上操作完成之后,我们开始硬件实现

10、。我按照设计好的电路图的将芯片槽口焊好,并用万能表进行检测。电路的焊接是否虚焊,是否短路,地和电源分配。在检查过程中,出现一个问题。我是将芯片插好后检测,结果万能表一直报错。我将线路一个个的排查,最后才发现原来是芯片内部出现短路。这次的焊接,我明白了,在检测过程中如果采用分部份进行查找,检测错误的效率会大大提高。十三、软件下载将编好的实验程序烧到ATC89C54芯片中。加上电源,出现实验要求的结果。十四、课程设计的心得体会本次实验是在上学期的单片机课程学习后的一次实践。单片机课程主要是采用汇编语言进行编写程序,而这次我是用c语言进行编写实验程序的。为此我在课程设计过程中,对c语言在单片机应用上花了一些时间,搞清楚了如何使用c语言编写单片机程序。在实验仿真过程中,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论