




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录1.绪论:课题研究的意义和目的.22.课题要求2.1基本要求.22.2提高要求.22.3扩展要求.23.课题内容简介.34.总体设计框图.35.电路工作原理.56.硬件电路原理阐述6.1单片机控制系统电路6.1.1复位电路的设计.56.1.2时钟电路的设计.66.1.3引脚分配的设计.66.2红外线接收电路.66.3键盘修改电路.76.4 LCD显示电路.86.5录音报警电路.87.软件设计流程.98.附件8.1调试报告.108.2心得体会.118.3参考文献.138.4程序清单.148.5整机电路图.288.6元器件清单.291 绪论:课题研究的意义和目的随着社会经济的发展,人民的生活水
2、平相应地不断提高。人们对自身的财产安全越来越重视,如何保障财产安全成为社会普遍关注的热点问题。传统的方法(如安装防盗门、防盗窗、防盗网等)已日益淘汰,取而代之的则是各种先进的、智能化的电子保安设备。现代化的居民住房大多安装有社区安全防范系统,但是也存在着安全防范系统灵敏度不高、效率低、误报率高、监视范围没有针对性、与住户脱离了直接联系等缺陷,而且往往价格过高,普通家庭消费不了。因此,一套高效快捷、安全可靠、物美价廉的警报系统对家庭用户来说显得非常重要。本次的课题设计采用89C51主控芯片,集防盗、密码修改,LCD显示,输入读报等功能于一体,一遇情况立即自动报警,成本低,电路简单,满足绝大多数家
3、庭的需求。2 课题要求2.1基本要求 必须实现键盘输入以及输入的信号进行LCD显示。2.2提高要求 要求实现语音报读功能,红外线数据接收。2.3扩展要求 完成整个报警功能;实现密码加密,输入,修改,验证等功能。实现红外线接收;红外线传输的解调采用模拟电路设计;能通过USB接口,用PC机供电系统。3 课题内容简介红外线报警系统完成如下功能:红外线发射子系统和红外线接受子系统分别安装在门和门框上,红外线发送器和接收器正对。进入报警状态后,如果红外线发射子系统发射的红外线在接收子系统不能被接收,证明门被打开过,这时报警响起。整个系统红由外线发射子系统和红外线接收子系统构成,红外线发射子系统键盘输入模
4、块,输入报警开启和关闭,密码等信息。显示模块将显示输入的信息和系统提示的信息。89C51根据输入,将信息处理后向红外线发射模块和LCD传送。红外线接收子系统中的红外线接收模块接收到信息后,发送到信息处理器89C51,处理好信息分别发送到显示模块进行显示和报警模块进行报警或提示。此次课题设计主要实现以下功能:由键盘输入修改密码,同时语音播报及在LCD显示器上显示出来89C51把数据发送给PT2262编码,然后通过红外线发射二极管发射出去。4 总体设计框架总体结构框图如下所示:键盘输入模块显示模块LCD89C51语音提示模块报警模块显示模块LCD89C51红外线接收模块键盘输入模块红外线发送模块本
5、课题设计包括硬件和软件设计两个部分。模块划分为键盘输入模块、语音模块,显示模块LCD、红外线发送模块等子模块。电路结构可划分为:由红外线编码芯片PT2262及相关模拟电路组成的红外线发送装置、由ISD1720控制的报警器、单片机89C51控制电路、LCD显示电路,键盘输入电路及相关的控制管理软件组成。就此设计的核心模块来说,单片机就是设计的中心单元,所以此系统也是单片机应用系统的一种应用。单片机应用系统也是有硬件和软件组成。硬件包括单片机、输入/输出设备、以及外围应用电路等组成的系统,软件是各种工作程序的总称。单片机应用系统的研制过程包括总体设计、硬件设计、软件设计等几个阶段。5 电路工作原理
6、本设计中以51系列单片机AT89C51为核心。整个系统是在系统软件控制下工作的。开启电源后,芯片进行初始化,第一次工作时应按下按键进行各种提示音的录制(声音内容随时可以修改)。语音提示数据输入,输完数据后按下确认键,数据送入单片机处理后传给编码芯片PT2262编码,然后编码信号与38KHZ的电流调制,最后通过红外线发射二极管发射出去。值得注意的是,PT2262和PT2272的地址码要相匹配才能工作,否则接收端不能读出来自发射端的信号。6 硬件电路设计阐述6.1单片机控制系统电路6.1.1复位电路的设计图1.复位电路复位方法一般有上电自动复位和外部按键手动复位,单片机在时钟电路工作以后, 在RE
7、SET端持续给出2个机器周期以上的高电平时就可以完成复位操作。例如使用晶振频率为12MHz时,则复位信号持续时间应不小于2us。本设计采用的是外部手动按键复位电路。6.1.2时钟电路的设计图2.时钟电路6.1.3引脚分配的设计图3.89C51引脚分配图 说明:P10P17、P06、RD、WR接LCD显示器,DS0DS3接红外线发射,X2,X1接晶振,P0P4接ISD1700;P20P27接键盘6.2红外线编码及发送电路图4.红外线及发送发送电路此电路利用红外线编码芯片PT2262对信号进行编码,然后发送出去。编码芯片PT2262发出的编码信号由:地址码、数据码、同步码组成一个完整的码字,解码芯
8、片PT2272接收到信号后,其地址码经过两次比较核对后,VT脚才输出高电频,与此同时相应的地址码才输出高电频。只有发射断PT2262和接收端PT2272的地址编码完全相同一样,才能配对使用,本设计中令地址端的所有管脚都悬空。6.3键盘修改电路图5.键盘模块电路本次设计采用4*4键盘。其中0-9是数字键,剩余键中,有一个修改键,一个确定键,和一个录音键。其余为非法键。6.4 LCD显示电路图6.LCD显示电路此电路可显示键盘输入的信号和接收到的信号。其中还可通过调节R6来实现对比度的调节。6.5录音报警电路图7报警录音电路按下录音键,分段录音,用于数据输入提示的报读。7.软件设计流程按上述工作原
9、理和硬件结构分析可知系统基本主程序工作流程图如下图所示; 开始 中断计时初始化芯片初始化初始界面显示有键按下否? NO YES 执行按键功能结束 方波发生程序写计数初值 方波产生脚脚取反中断返回8.附件8.1调试报告调试过程:(1) 在Keil环境中进行程序编写,编译,调试。(2)程序调试通过后,利用烧录工具将程序固化到89C51单片机中。(3)检查线路应焊接无误。(4)电源电路的调试。(5)将固化好程序的AT89C51插入电路的插座上,接上电源进行软硬联调。调试结果: 接通电源后,LCD显示器“input code”,按下按键,显示器上显示所按的数据(即设置的密码),按下确认键后显示器显示“
10、complete”, “please wait”,若按下取消键,显示最初的界面。此红外线报警发射模块能够正确地实现键盘输入以及对输入的信号进行LCD显示。当按下修改键时,LCD显示“new password”,通过正确输入六位密码(0-9)最后按下确认键,即可完成密码修改,LCD显示“complete”。若想取消之前的密码修改,则按下取消键取消密码的修改。若是按下录音键,ISD1720进入录音状态,不同的键代表不同的地址,这样实现指定片段录音,当LCD显示的时候,也赋给SoundID不同的值,以实现分段定点放音。此装置不能正确地发射解调后的波,而且放音程序也不能正常实现,需要我们继续改善8.2
11、心得体会本次课程设计是以小组的方式展开的,共四人,两个负责软件编辑,两个负责硬件电路的焊接。在为时三个星期的设计过程中,彼此互相探讨,合作默契。这次的课程设计让我们学会了很多。对于生医专业的学生来说,做这个设计之前都没学过单片机,这意味着我们要自学,这无疑加大了我们的难度,可也正是如此,才让我们充分体验到非凡的乐趣。开始时,我们脑里一片浆糊,不知从何处下手,因为是首次接触完全意义上的课程设计,很多知识都不懂,都需要在网上找资料从头开始学习。以前不是没有接触过设计之类的课程,但那时大多数是找老一届所留下的“遗产”依葫芦画瓢,最后课程设计结束了,我们依然一片茫然,一点感觉也没有。但本次的课程设计,
12、首先是课题很吸引人,增强了我们的兴趣,每个都想通过自己真正的努力做出来;其次是持续时间长,为时三个星期,这充分让我们自己找资料学习相关内容,和团队内部成员之间的相互讨论。所以我们由开始时的茫然无措转变为思路清晰,每个人都知道自己的要干什么,充分调动了每个成员的积极性。在这三个星期里,我们小组经历了不少。硬件布线方面,我们小组中负责硬件电路的组员细心谨慎,在布线方面花了很大的心思:导线在电路板上的行走设计成最优化,焊接成后看上去美观整齐。焊接很顺利,焊点也很美观。到软件调试时,开始时要么不显示,要么只显示方块,不显示字,折腾了半天才发现跨接的导线由于焊接时勒得过紧,焊接温度高,把导线外层的塑料皮
13、熔掉,导线间短路了。改正过来后得以正常工作。事后组员们都唏嘘不已。问题找出来了后,接下来的工作比较顺利地完成。本次课程设计结束了,每人都收获颇丰,不仅在知识上,更是在思想认知上。设计确实有些辛苦,但苦中也有乐,在如今单一的理论学习中,很少有机会能有实践的机会,这次的课程设计无疑是理论付诸实践的一次尝试。本次设计是一个团队任务,组员们积极开动脑筋,互相讨论,实在不懂就上网查资料,自学相关知识,提高学习能力的同时又增进了团队成员彼此间的默契。成果出来了,让我们明悟三周的辛苦总算没有白费,成就感油然而生。当然,这少不了老师和其他同学的帮助,很多知识都是在相互讨论中学习和得到巩固的,在此我们组员对他们
14、表示衷心的感谢!8.3参考文献1杨帆.红外线智能遥控开关的设计. 电气自动化, 2010.32(3):174-176.2童诗白. 模拟电子技术基础M. 北京: 高等教育出版社, 1998.3点阵字符型液晶显示模块使用手册.北京精电蓬远显示技术有限公司,1-25.4刘同法。单片机基础与最小系统实践.北京航空航天大学出版社,250-269.5李光飞.51系列单片机设计实例. 北京航空航天大学出版社,32-466肖金球. 单片机原理及接口技术.清华大学出版社,168-175. 7 戴佳,苗龙. 51单片机应用系统开发典型实例.中国电力出版社, 61-768 周航慈. 单片机应用程序设计技术. 北京航
15、空航天大学出版社, 68-699 陌尘. 编码解码芯片PT2262-PT2272工作原理J.电子制作,20048.4程序清单1ISD1720录放音程序:/ 延时子程序void delay(int ms) int n;while(ms-) for(n = 0; n< 250; n+) _nop_(); _nop_(); _nop_(); _nop_(); /初始化ISD1720void isd_init(void) SS=1; SCLK=1; MOSI=0; isd_reset(); while(!isd_is_free(); isd_pu(); while(!isd_is_free();
16、 isd_setapc2(); while(!isd_is_free(); isd_clearint(); /向CPU发送&读回数据uchar isd_senddata(uchar dat) uchar b,j,BUF_ISD=dat; SCLK=1; SS=0; for(j=4;j>0;j-); for(b=8;b>0;b+) SCLK = 0;for(j=2;j>0;j-);if(BUF_ISD&0x01)MOSI=1;elseMOSI=0; BUF_ISD>>=1; /右移一位 if(MISO) /逐个接收MISO端口的数据,将数据存在BUF
17、_ISD的最高位 BUF_ISD|=0x80;SCLK=1;for(j=6;j>0;j-) ; /延迟MOSI=0;return(BUF_ISD); /芯片上电 void isd_pu(void) SS = 0; delay(5); isd_senddata(ISD_PU); isd_senddata(0x00); SS = 1; /停止当前操作void isd_stop(void) SS = 0; delay(5); isd_senddata(ISD_STOP); isd_senddata(0x00); SS = 1; /复位MCUvoid isd_reset(void) SS = 0
18、; delay(5); isd_senddata(ISD_RESET); isd_senddata(0x00); SS = 1; /清除EOM标志和中断信号void isd_clearint(void) SS = 0; delay(5); isd_senddata(ISD_CLRINT); isd_senddata(0x00); SS = 1; void isd_pd(void) /芯片下电 SS = 0; delay(5); isd_senddata(ISD_PD); isd_senddata(0x00); SS = 1; /初始化APC寄存器,音量最大,关模拟输出,遇到EOM标志自动结束v
19、oid isd_setapc2(void) SS = 0; delay(5); isd_senddata(ISD_WRAPCVOL); /ISD_WRAPCVOL:将<D11:D0>写入APC寄存器,并由<D2:D0>控制音量 isd_senddata(0xA0); /音量最大 isd_senddata(0x00); SS = 1; BOOL isd_is_free() /检测ISD1720当前是否为空闲状态 uchar status; SS = 0; delay(5); isd_senddata(ISD_RDSTATUS); isd_senddata(0x00); s
20、tatus = isd_senddata(0x00); SS = 1; if(status & 0x01) = 0x01) return 1; else return 0; /播放指定片断void isd_playid(uchar SoundID) uint start_addr, end_addr; if(SoundID > MAX_SOUND_ID) SoundID = MAX_SOUND_ID; start_addr = isd_seg_addrSoundID; end_addr = isd_seg_addrSoundID + 1 -1; SS = 0; delay(5);
21、 isd_clearint(); while(!isd_is_free(); /等待空闲 isd_senddata(ISD_SETPLAY); isd_senddata(0x00); isd_senddata(start_addr & 0xFF); isd_senddata(start_addr >> 8); isd_senddata(end_addr & 0xFF); isd_senddata(end_addr >> 8); SS = 1; void isd_set-rec(uchar saddl,saddh,eaddl,eaddh)isd_sendd
22、ata(0x81);isd_senddata(0x00);isd_senddata(saddl);isd_senddata(saddh);isd_senddata(eaddl);isd_senddata(eaddh);isd_senddata(0x00);SS=1;void luyin()k=getkey();void isd_init();switch(k)case 12: void isd_set-rec(10,00,1F,00); void isd_pd();break;case 13:void isd_set-rec(20,00,2F,00); void isd_pd();break;
23、case 14: void isd_set-rec(30,00,3F,00); void isd_pd();break;default:break;2.键盘2.1按键扫描程序:uchar kbscan(void)uchar sccode,recode;P2=0xf0;if(P2&0xf0)!=0xf0) delay(30); if(P2&0xf0)!=0xf0) sccode=0xfe; while (sccode&0x10)!=0) P2=sccode; if(P2&0xf0)!=0xf0) recode=(P2&0xf0); return(recod
24、e+(sccode&0x0f); else sccode=(sccode<<1)|0x01); return(0);2.2键盘功能程序:/0键按下的功能function_0() lcd_pos(i); lcd_wdat('0');P33 = 0;P32 = 0;P31 = 0;P30 = 0;/1键按下的功能function_1() lcd_pos(i); lcd_wdat('1');P33 = 0;P32 = 0;P31 = 0;P30 = 1;/2键按下的功能function_2() lcd_pos(i); lcd_wdat('2
25、');P33 = 0;P32 = 0;P31 = 1;P30 = 0;/3键按下的功能function_3() lcd_pos(i); lcd_wdat('3');P33 = 0;P32 = 0;P31 = 1;P30 = 1;/4键按下的功能function_4() lcd_pos(i); lcd_wdat('4');P33 = 0;P32 = 1;P31 = 0;P30 = 0;/5键按下的功能function_5() lcd_pos(i); lcd_wdat('5');P33 = 0;P32 = 1;P31 = 0;P30 = 1;
26、/6键按下的功能function_6() lcd_pos(i); lcd_wdat('6');P33 = 0;P32 = 1;P31 = 1;P30 = 0;/7键按下的功能function_7() lcd_pos(i); lcd_wdat('7');P33 = 0;P32 = 1;P31 = 1;P30 = 1;/8键按下的功能function_8() lcd_pos(i); lcd_wdat('8');P33 = 1;P32 = 0;P31 = 0;P30 = 0;/9键按下的功能function_9() lcd_pos(i); lcd_wd
27、at('9');P33 = 1;P32 = 0;P31 = 0;P30 = 1;/10(确认)键按下的功能function_10()P33 = 1;P32 = 0;P31 = 1;P30 = 0;isd_playid(1);delay(100); lcd_wcmd(0x01); /清除LCD的显示内容 i=0;lcd_init();/ 初始化LCDdelay(10);lcd_pos(0);/ 设置显示位置为第一行的第1个字符s = 0;while(dis1s != '0')/ 显示字符"input complete"lcd_wdat(dis1
28、s);s+;delay(200);isd_playid(2);delay(100);lcd_wcmd(0x01); /清除LCD的显示内容 lcd_pos(1);/ 设置显示位置为第一行的第1个字符s = 0;while(dis2s != '0')/ 显示字符"please wait"lcd_wdat(dis2s);s+;delay(200);lcd_wcmd(0x01); /清除LCD的显示内容 /清除LCD的显示内容/11(取消)键按下的功能function_11()P33 = 1;P32 = 0;P31 = 1;P30 = 1;isd_playid(0
29、);delay(100); lcd_wcmd(0x01); /清除LCD的显示内容i=0;lcd_init();/ 初始化LCDdelay(10);lcd_pos(1);/ 设置显示位置为第一行的第1个字符s = 0;while(dis3s != '0')/ 显示字符"Input Code"lcd_wdat(dis3s);s+;delay(600);lcd_wcmd(0x01); /清除LCD的显示内容 delay(180);/12键按下的功能function_12() /修改密码P33 = 1;P32 = 1;P31 = 0;P30 = 0;isd_pla
30、yid(0);delay(100); lcd_wcmd(0x01); set_password();/13键按下的功能function_13() /14键按下的功能function_14() /15键按下的功能function_15() /无按键按下的功能function_16() P33 = 1;P32 = 1;P31 = 1;P30 = 1; 3.LCD初始化程序:/ 测试LCD忙碌状态BOOL lcd_bz() BOOL result;LCD_RS = 0;LCD_RW = 1;LCD_EP = 1;_nop_();_nop_();_nop_();_nop_();result = (BO
31、OL)(P1 & 0x80);LCD_EP = 0;return result; / 写入指令数据到LCDlcd_wcmd(BYTE cmd) while(lcd_bz();LCD_RS = 0;LCD_RW = 0;LCD_EP = 0;_nop_();_nop_(); P1= cmd;_nop_();_nop_();_nop_();_nop_();LCD_EP = 1;_nop_();_nop_();_nop_();_nop_();LCD_EP = 0; /设定显示位置lcd_pos(BYTE pos) lcd_wcmd(pos | 0x80);/写入字符显示数据到LCDlcd_w
32、dat(BYTE dat) while(lcd_bz();LCD_RS = 1;LCD_RW = 0;LCD_EP = 0;P1 = dat;_nop_();_nop_();_nop_();_nop_();LCD_EP = 1;_nop_();_nop_();_nop_();_nop_();LCD_EP = 0; lcd_init() /LCD初始化设定lcd_wcmd(0x30); /16*1显示,5*7点阵,8位数据delay(1);lcd_wcmd(0x0c); /显示开,关光标delay(1);lcd_wcmd(0x06); /移动光标delay(1);lcd_wcmd(0x01);
33、/清除LCD的显示内容delay(1);4.设置密码程序:void set_password()uint s;lcd_wcmd(0x01); /清除LCD的显示内容 lcd_pos(1);/ 设置显示位置为第一行的第1个字符s = 0;while(dis2s != '0')/ 显示字符"set password"lcd_wdat(dis4s);s+; for(s=0;s<6;s+) /循环6次输入 while(kbscan()!=1) /等待有按键按下时停止扫描 key=kbscan(); /扫描看是否有键按下,若无继续扫描 if(s=0) lcd_c
34、lr(); /清屏if(s=6) password6='0'password_ss=k+0x30; /转换成ASC码存储lcd_pos(s+5);lcd_wdat(dis_buf);while(kbscan()!=1) /等待确认键key=kbscan();switch(key)case 0x7b:function_11();i=0;break; /取消键 case 0x7d:function_10();i=0;break; /确认键default:disp1();break;5.PT2262发射程序:void pt_init()P2=0xf0;if(P2&0xf0)=
35、0xf0)P33 = 1;P32 = 1;P31 = 1;P30 = 1;6.主程序:void main (void) /* 初始化各参数 */* 函数预定义 */ /38KHz方波的产生TMOD=0x01; TH1=(65536-13)/256; TL1=(65536-13)%256;EA=1; ET1=1; TR1=1;/初始化LCD和语音芯片 isd_init();isd_playid(0);delay(100);while(1)pt_init();i=0;lcd_pos(0);/ 设置显示位置为第一行的第1个字符s = 0;while(dis3s != '0')/ 显示字符"Input Code"lcd_wdat(dis3s);s+;delay(300);lcd_init(); lcd_wcmd(0x06); lcd_pos(0); while(1)k
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 横结肠扭转的临床护理
- 暑假家教心得体会模版
- 大学生职业规划大赛《医学影像技术专业》生涯发展展示
- 针灸治疗后护理
- 银行安全消防试题及答案
- 医药国企面试题及答案
- 2025年苏教版科学小学五年级下册期末复习检测题及答案(三)
- 停车场物业管理服务方案(完整版)
- 宣城国企面试题目及答案
- 行政国企面试题库及答案
- 就业协议书范本(完整版)
- 《大数据导论(第2版)》全套教学课件
- 英语漫谈中国故事智慧树知到答案2024年上海立达学院
- 2024年湖北省宜昌市中考物理试卷
- 小学英语语法专题训练:名词所有格(含答案)
- 公司食堂外包项目投标方案(技术方案)
- 2024新苏教版一年级数学上册第二单元第1课《认识6~9》教案
- GB/T 35170-2024水泥窑协同处置的生活垃圾预处理可燃物
- DL∕T 5161.5-2018 电气装置安装工程质量检验及评定规程 第5部分:电缆线路施工质量检验
- 不信谣不传谣不造谣谣言止于智者
- 煤矿重要岗位人员《水泵司机》复训机考题库(含答案)
评论
0/150
提交评论