单片机应用技术毕业设计手机控制家用电器

上传人:仙*** 文档编号:30647893 上传时间:2021-10-11 格式:DOC 页数:31 大小:470.60KB
收藏 版权申诉 举报 下载
单片机应用技术毕业设计手机控制家用电器_第1页
第1页 / 共31页
单片机应用技术毕业设计手机控制家用电器_第2页
第2页 / 共31页
单片机应用技术毕业设计手机控制家用电器_第3页
第3页 / 共31页
资源描述:

《单片机应用技术毕业设计手机控制家用电器》由会员分享,可在线阅读,更多相关《单片机应用技术毕业设计手机控制家用电器(31页珍藏版)》请在装配图网上搜索。

1、毕 业 设 计题 目: 手机控制家用电器 类别: 单片机应用技术 专业: 电子信息工程 应用电子 班级: 113电子信息工程 113应用电子 学号: 2011342101、2011348117、2011348109 姓名: 崔剑锋、 张宗瑾 、郑胜林 指导教师: 黄媛婕 2012年 12 月 25 日0目 录设计题目:2一、内容摘要:2二、关键字:2三、引言:2四、正文:2五、结束语17六、参考资料19七、致谢词19八、附录20 手机控制家用电器一、内容摘要:本设计为手机控制室内灯系统设计,硬件部分它以STC12C5A60S2单片机为核心,利用GSM模块900-B与单片机的串口通信、单片机红外

2、接发、单片机的扩展I/O并行输出,采用红外控制实现智能家居的特点。软件部分它结合定时/计数,中断,串行口扩展I/O等知识进行程序编译。二、关键字:单片机、GSM模块900-B、红外发射、扩展、定时/计数器、中断。三、引言:随着微控技术的日益完善和发展,为了适应快节奏的现代社会对生活品质的要求,单片机的应用在不断走向深入。它的应用比定导致传统的控制技术从根本上发生变革。也就是说单片机应用的出现是对传统控制技术的革命。它在工业控制、数据采集、智能化仪表、机电一体化、家用电器等领路得到了广泛应用,极大的提高了这些领域的技术水平和自动化控制。实现智能化离不开运算和控制单元,本系统采用MCU(STC12

3、C5A60S2)作为主控器件,单片机应用系统由硬件和软件组成。硬件由单片机扩展的存储器、输入/出设备以及各种实现单片机系统控制要求的接口电路和有关的外围电路芯片或部件组成;软件由单片机应用系统实现其特定控制功能的各种工作程序和管理序组成。在单片机应用系统开发的过程中,应不断调整软、硬件,协调地进行软、硬件设计,以提高工作效率,当系统硬件和软件紧密配合、协调一致,就可以组成高性能的单片机应用系统。因此单片机的开发应用已成为高新技术工程领域的一项重大项目。因此了解单片机知识,掌握单片机的应用技术具有重大的意义。本文主要从计算机的应用上来实现智能家居智能化的管理,控制家电的运行。4、 正文:4.1主

4、要内容:当我们不在家时,我们可以用手机控制家里的大小用电器,让窗帘打开、让灯打开、让收音机打开。当然当你手机没有电时,你还可以也可以拿起一个遥控对家里各种器件进行控制。4.1.1系统总设计:单片机红外发送单片机GSM模块900-B手机图1.1系统框图4.1.2 GSM模块900-B应用分析: 首先用GSM模块连接单片机,然后打开GSM的电源,GSM模块搜索网络,这时会模块并连接。因为GSM模块是以串口连接单片机的,需要打开端口才可以连接,串口配置为:波特率9600,无校验,然后将数据通过手机短信的形式发送给GSM模块,然后模块再将数据传送给单片机,经过红外发射短路发射控制家用的电器。图1.2G

5、SM模块与单片机数据传送图 图1.3GSM模块结构图(1)、GSM模块的工作状态在应用方面GSM模块是用于单片机跟电脑配对通讯。使用方法是把GSM模块的通信线RXD TXD连接到单片机,然后用手机或者电脑给GSM模块发AT,并配对连接。如果是使用手机,。使用电脑连接后会自动分配com口,一般会出现固定一个口是可以通信。如果是想利用电脑连接模块,用GSM串口调试助手软件。给GSM模块发AT指令。(2)、如何进行AT指令操作 GSM模块出厂时参数基本固定,用电脑进行AT指令,需要用一根USB转TTL线连接到模块,USB的TXD、RXD、直接连接到模块的TXD、RXD。在GSM模块的指示灯闪烁的情况

6、下进行。也可以通过连接到单片机设置,单片机的RXD、TXD直接连接到模块RXD、TXD。然后再模块没有配对连接的情况下(通过GSM串口调试助手软件可以看到返回的代码),直接通过串口发送AT指令对应的字符即可。 (3)、GSM跟单片机的连接的调试这一步是最难的一步,需要经过串口跟电脑的连接,然后看GSM串口调试助手软件是否有指令返回,如果有AT指令,就证明GSM模块是好的,然后再跟单片机连接,单片机晶振选用11.0592MHz,单片机的RXD、TXD直接连接到模块RXD、TXD。在GSM模块连接单片机时,同时启动GSM模块的电源,这是GSM模块先注册网络,GSM模块板上有一颗黄色的led灯会一直

7、闪烁,如果已经注册网络了,黄色的led灯会隔一会闪烁,这时如果看到1602LCD屏会有link success时,证明GSM模块已经跟单片机连接上,如果还是没有连上,还要经过GSM串口调试助手软件给GSM模块发AT指令。(4) 、AT指令的应用给TE 指示新消息:AT+CNMI举例:TE 指示新消息AT+CNMI=2,1 NOTE:将短信存储到ME 或SIM 卡后,再给出新短信指示OK+CMTI: SM,1 NOTE:显示新短信指示AT+CNMI=2,2 NOTE:收到短信,直接给出短信内容OK+CMT: 8613902288001,07/04/19,22:36:19+32,145,4,0,0

8、,8613912345500,145,4TESTSMS 格式:AT+CMGF设置命令用于指定短消息的输入和发送的格式。AT+CMGF=1 NOTE:设置短信为文本方式OKAT+CMGL=ALL NOTE:列举当前存储单元中的所有短信+CMGL: 1,REC READ,8613902288001,07/04/19,22:34:09+32,145,4TEST显示文本格式参数:AT+CSDH,使用设置命令,可控制是否在文本模式下的结果码中显示详细的头信息举例:设置不同的 CSDH 值AT+CSDH=1OKAT+CMGR=5+CMGR: REC UNREAD,8613902288001,07/04/1

9、9,04:56:13+32,145,4,0,0,8613912345500,145,4TESTOKAT+CSDH=0OKAT+CMGR=5+CMGR: REC READ,8613902288001,07/04/19,04:56:13+32TESTOK删除消息:AT+CMGD使用设置命令,可删除优选消息存储器中,位置号码参数为的消息。举例:删除短信AT+CMGD=1 NOTE:删除第一条短信OKAT+CMGD=1,4 NOTE:删除当前存储器中全部短信OK发送消息:AT+CMGS 使用设置命令,可将SMS(SMS-SUBMIT)从TE 发送到网络侧。发送成功后,消息参考值将返回给TE。在接收到非

10、请求发送状态报告结果码时,使用该取值可进行消息识别。举例:发送文本方式的短信AT+CMGF=1 NOTE:设置以文本方式发送短信OKAT+CMGS=13912340110 NOTE:输入对方号码 SMS NOTE:输入短信内容,以ctrl-Z 发送;ESC 取消+CMGS: 35OK举例:发送和接收 PDU 方式的短信(具体编码格式,请参考GSM 04.11 和03.40 )AT+CMGF=0OKAT+CMGS=16 0891683108200105F011000D91683118087981F60004000168+CMGS: 35OKAT+CMGR=8 NOTE:读取PDU 短信+CMGR

11、: 0,220891683108200105F0040D91683184821969F2000470404271726423026869OKPDU 编码解析:发送数据:0891683108200105F011000D91683118087981F600040001684.1.4红外传送应用分析:由发射模块与接收模块两部分组成。发送模块先由键盘操作键值,以二进制信号的形式,传送给单片机,然后单片机将待发送的二进制信号编码调制为一系列的脉冲串信号,通过红外发射管发射红外信号。红外接收模块普遍采用价格便宜,性能可靠的一体化红外接收头(如HS0038,它接收红外信号频率为38KHz,周期约为26us)

12、接收红外信号,它同时对信号进行放大、检波、整形,得到TTL电平的编码信号,再传送给单片机,经单片机解码并由数码管显示接收到的数据。系统的构成框图如图1.4。键盘按钮单片机红外发射电 路红外接收头单片机液晶屏图1.4红外收发器系统的构成框图(1)、红外发射原理要对红外遥控器所发的信号进行解码,必须先理解这些信号。a) 波形首先来看看,当我们按下遥控器时,红外发射器是发送了一个什么样的信号波形,如下图:图1.5红外发送波形图由上图所示,当一个键按下超过22ms,振荡器使芯片激活,将发射一组108ms的编码脉冲(由位置1所示)。如果键按下超过108ms仍未松开,接下来发射的代码(连发代码由位置3所示

13、)将仅由起始码(9ms)和结束码(2.5ms)组成。下面把位置1的波形放大:图1.6红外发送波形图由位置1的波形得知,这108ms发射代码由一个起始码(9ms),一个结果码(4.5ms),低8位地址码(用户编码)(9ms18ms),高8位地址码(用户编码)(9ms18ms),8位数据码(键值数据码)(9ms18ms)和这8位数据的反码(键值数据码反码)(9ms18ms)组成。b) 编码格式遥控器发射的信号由一串0和1的二进制代码组成不同的芯片对0和1的编码有所不同。通常有曼彻斯特编码和脉冲宽度编码。XS-091遥控板的0和1采用PWM方法编码,即脉冲宽度调制。下图为一个发射波形对应的编码方法:

14、放大0和1的波形如下图:这种编码具有以下特征:以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”。(2)、红外接收原理a) 波形红外接收头将38K载波信号过虑,接收到的波形刚好与发射波形相反:放大,位定义0和位定义1波形如下:(3)、解码原理及算法注:代码宽度算法:16位地址码的最短宽度:1.1216=18ms 16位地址码的最长宽度:2.24ms16=36ms可以得知8位数据代码及其8位反代码的宽度和不变:(1.12ms+2.24ms)8=27ms所有32位代码的宽度为

15、(18ms+27ms)(36ms+27ms)4.2详细设计4.2.1 硬件设计核心器件:GSM900-B通信模块,单片机系统采用STC89C52芯片,晶振选用11.0592MHz,12.000MHZ。辅助器件:(1)电源电压采用5V1.2A。(2)红外发射管4.2.2 单片机最小系统: 图5.2.1单片机最小系统单片机最小系统以为STC89C52核心,外加时钟和复位电路,电路结构简单,抗干扰能力强,成本相对较低,非常符合本设计的所有要求.STC89C52单片机系列是在MCS-52系列的基础上发展起来的,是当前8位单片机的典型代表,采用CHMOS工艺,即互补金属氧化物的HMOS工艺, CHMOS

16、是CMOS和HMOS的结合,具有HMOS高速度和高密度的特点,还具有CMOS低功耗的特点.时钟电路在单片机的外部通过XTAL1,XTAL2这两个引脚跨接晶体振荡器和微调电容,构成稳定的自激振荡器.本系统采用的为11.0592MHz的晶振,一个机器周期为1us,C1,C2为30pF。复位电路分为上电自动复位和按键手动复位,RST引脚是复位信号的输入端,复位信号是高电平有效.上电自动复位通过电容C3和电阻R2来实现,按键手动复位是图中复位键来实现的。以下是总电路图如图2.4 总电路图2.42.2软件设计 本系统的软件包括主程序,显示程序,I/O口扩展输出和中断程序四部分。主程序:设置堆栈,定时器初

17、始化,中断系统初始化,显示缓冲区赋初值,设置状态标志,状态切换。具体流程如下,具体源程序见附录2。 2.3 主程序流程图 图2.4 中断服务程序框图4.3 调试(1)打开Keil程序,执行菜单命令“ Project”,然后,“ New Project”创建“gsmhongwai.”项目,并选择单片机型号为AT89C51。(2)执行菜单命令“File”,然后,“New”创建文件,输入汇编源程序,保存为“gsmhongwai.c”在“Project”栏的File项目管理窗口中右击文件组,选择“Add Files to Group Source Group1”,将源程序“gsmhongwai.c”添

18、加到项目中。(3)执行菜单命令“Project,然 后,“Options for Target Target 1”,在弹出的对话框中选择”Output”选项卡,选中“Create HEX File”。在“Debug”选项卡中,选中“Use:Proteus VSM Simulator”。(4)执行菜单命令“Project”,然后,“Build Target”,编译源程序。如果编译成功,则在”Output Window”窗口中显示没有错误,并创建了“gsmhongwai.hex”文件。(5)在已绘制好原理图的Proteus ISIS菜单栏中,执行菜单命令“Debug”,然后,“Use Remote

19、 Debug Monitor”将该项选中,使”Debug”选中“Start/Stop Debug Session”,或直接单击图标。(6)在Keil代码编辑窗口中设置相应断点,断点的设置方法:在需在设置断点语名的空白处双击鼠标左键,可设置断点;再次双击,可取消该断点。(7)设置好断点后,在Keil中按F5键运行程序。4.4硬件电路优化和扩展4.4.1电路优化:为了简化电路完美和不被手机没电影响,使用了红外遥控,利用了红外可以减少显现实中过多的线路,产生短路和安全性等问题,并可以避免在手机没电时无法对电器的控制。4.4.2电路扩展:(1)DVD的控制在播放着音乐的时候,我们总会时不时的换歌,加大

20、或减少声量。现实中只要拿起遥控对DVD机按几下就可以进行换歌以及声量的改变,但对于我们无法需找这样的设备,我们可以用手机对GSM通信模块发短信,实现控制(2)家用电器及LED灯控制 用户可以在户外通过任意一部手机,根据短信提示对家用电器(如电饭煲、电暖风、空调、电热水器等)进行远程开启、关闭、延时开关等控制的设定。该系统具有成本低、功能强、易扩展等优点。如果你在外面,忘记关灯,你可以用手机短信控制家里的灯,实现亮灭,节省能源,起到环保的作用。现实中在床上躺着看电视,当我们想要睡觉时又要从床里起来关掉电灯;为了解决这种问题我们必然采用智能设备。对于电灯的控制我们采用了继电器,这样就解决了低压控制

21、高压的问题。对于窗帘、窗户、门等的控制我们采用了电机。这样就实现家电智能化的特性五、结束语:通过本次毕业设计,对单片机有了深一层的了解和掌握,对I/O口的扩展,中断,定时/计数器等应用有了更深刻的体会。程序调试过程,使我们平时所学的理论和实践相结合,对以前没有学习过的GSM模块进行一步步的去探索,对GSM模块的AT指令有了初步的了解,的确提高了自己的实操能力,从实践探索中找到学习的方法其实,我们在开始做设计时,难度很大,很迷茫。特别对GSM模块的功能一点都不怎么了解,特别在GSM模块与单片机连接的过程中,我们遇到的难题很多,我们不断的去积累经验,通过在黄媛婕老师帮助下,理清了思路,总结经验,分

22、别对模块各功能测试,一步步的调整了单片机的晶振,我们也考虑到单片机和GSM串口电平不稳定的问题。同时,在网上查阅资料,攻克了设计中的道道难题。到毕业设计的后阶段我们在做红外发射这一块也遇到了不少难题,第一我们对遥控进行解码,我们解出遥控的编码是错误的,让后我们用示波器对遥控进行解码,我们的时序错误了,所以控制不了家用电器,这一步我们学习到电子知识的精准性,一点都不能误差,还有我们的模块对电源的要求挺高的,我们也在这里也摸索了,最后我们用到台式电脑的USB电源是最稳定的。最后经过黄媛婕老师的耐心指点和连续的奋战才完成。本次设计我们才能顺利完成,算是有了很大的收获。总结的感受有以下几方面:(1)巩

23、固了课本上的知识。通过本次毕业设计,我不但对单片机有了更为深入的了解,而且对GSM模块的使用有了很大程度的认识,对一个课题如何去设计和实现功能,画流程图,编程序等,怎样去解决技术上问题,在一定程度上学会了推理的方法,一步步的提高探索能力,对以后的工作启到一定帮助。(2)在本次设计中,我们进一步加强了自己的动手能力和运用专业知识的能力,从中学习到如何去思考和解决问题方法,以及如何灵活地掌握改变方法去实现设计方案;特别是深刻体会到的是软硬件结合的重要性,对整个设计启到了一个核心内容。以及两者的联系和配合作用。软硬件结合是我们设计重要组成部分。(3)通过本次设计,让我了解到智能控制技术对当今人们生活

24、影响的重要性。方便了人们的生活,同时这次做设计的经历也使我们受益匪浅。让我知道了做任何事情都应脚踏实地一步步的去探索,保持积极的态度地去做。不断的学习新的知识,开阔自己的知识面。 本次设计中我们用自己学到的知识完成代码,对单片机串口的设计也有了新的认识,特别对GSM通信模块的运用,还有在GSM模块中,学习许多AT指令,也在毕业设计中运用许多指令,从学习中去应用,在设计过程中了解到许多流程和该注意的事项,增强了电子产品开发的意识。对以后的就业有一定的帮助,促进我们以后更好的学习,锻炼了自身的能力。 六、参考文献:1张迎新等、单片机初级教程M第二版北京:北京航空航天大学出版社,200682杨黎.基

25、于C语言单片机应用技术与Proteus仿真M.长沙:中南大学出版社,2012.8 3何利民.MCS-51系列单片机应用系统设计系统配置与接口技术M .北京:北京航空航天大学出版社,2003. 4魏立峰 王宝兴.单片机原理及应用技术M第一版.北京大学出版社. 20065胡乾斌.单片机原理与应用M第二版.华中科技大学出版社.20066谢自美.电子线路设计.实验.测试M第一版.华中科技大学出版社,2000.七、致谢词:本设计从开题到方案的设计和具体电路试验的实施始终是在指导老师黄媛婕老师的精心指导和周密安排下进行的。感谢他们长期在学习和生活中给予我的帮助,使我们受益非浅,同时,培养了我处理问题和我解

26、决问题的能力。此外,感谢同有黄媛婕老师三年来对我的关心和帮助,也感谢我在参加各类比赛的队友在合作的过程中给我信心和勇气,使我跨过一道道难关,和积累了很多实际经验。感谢在大学期间关心和支持我的所有老师和朋友。大学时光是精彩却又短暂,是人生一段美好的回忆,时间如梭,转眼毕业在即。回想在大学求学的三年,心中充满无限感激和留恋之情。带着几分留恋我将要离开这里。感谢汕尾职业技术学院三年来对我精心培养。在此我要特别感谢的就是黄媛婕老师。在本次毕业设计中,她给了我细心的指导和帮助,同时也很感谢我的同学对我的帮助,让我更好的了解和掌握毕设的知识。在这个毕业设计中出现的各种大小问题黄老师耐心帮我解决和讲解还有提

27、供一些解决问题的方法。让我能在不断的进步和各方面素质有所提高,使我对于单片机有了更深刻的认识,还有对课外知识学习方法的了解,并最终得以完成作品和毕业论文。 三年以来在知识的海洋有幸在各位老师的指引下和教育下,我收获了很多。三年中对我专业课的讲解,使我更加深入的了解了电子技术专业所开设的各门专业课程重要性。对我以后工作启到一定的帮助,老师们高深精湛的造诣与严谨求实的治学态度将永远激励着我。在此,谨向各位老师们致以衷心的感谢和崇高的敬意! 最后,感谢在百忙之中给我审稿和评议本人论文答辩的诸位老师以及提供辅助软件的Keil、Pretues两大公司表示感谢!没有你们也同样会让我感到心有余而力不足的。由

28、于本人知识有限,此毕业设计有不足之处,还望各位老师体谅和建议。八、附录:1、元件清单元件名称型号数量电阻1001个电阻101个电阻10K2个电阻1K2个电解电容10uF2个瓷片电容30pF4个三极管80501个GSM模块GSM900-B1个晶振11.0592MHz2个晶振12.0000MHZ1个红外发射管/1个单片机STC89C52RC2片点触开关/2个导线/若干2. 程序清单GSM模块接收短信程序void main(void) init1602(); Serial_Init(); /初始化串口 CLR_Buf(); /清除缓存内容 /LED3=1; Delay_ms(800); /延时 wr

29、ite_com(0x01); write_str(linking.,0,10); Delay_ms(800); Send_ASCII(AT);Send_Hex(0x0d); /发送回车符 Send_Hex(0x0a); /发送换行符while(!Hand(OK) /判断是否握手成功,如果不成功延时一会,再发送AT握手指令Send_ASCII(AT); /发送联机指令 Send_Hex(0x0d); /发送回车符 Send_Hex(0x0a); /发送换行符Delay_ms(600); /延时write_str(linking123.,0,13);write_str(link success,0

30、,12);CLR_Buf(); /清除缓存内容Delay_ms(Delay_Time); /延时Send_ASCII(AT+CNMI=2,1);/设置当有新短信到来时提示 Send_Hex(0x0d); /发送回车符Send_Hex(0x0a); /发送换行符Delay_ms(Delay_Time); /延时while(!Hand(OK) /等待设置成功/while(!Hand(ERROR) Send_ASCII(AT+CNMI=2,1);/设置当有新短信到来时提示 Send_Hex(0x0d); /发送回车符Send_Hex(0x0a); /发送换行符Delay_ms(Delay_Time)

31、; /延时CLR_Buf(); /清除缓存内容Delay_ms(Delay_Time); /延时Send_ASCII(AT+CMGF=1);/文本(TEXT)模式 #include#include #define uchar unsigned char#define uint unsigned int#define Buf_Max 140/缓存长度200#define Delay_Time 2000 /延时长度sbit IGT = P10; /点火信号sbit P2_0 = P20; /点火信号sbit P1_6 = P16; /点火信号sbit P1_7 = P17; /点火信号unsign

32、ed char i=0,j=0;/定义缓存指针uchar dd;uchar flag=0;unsigned char Num_Receive_add;unsigned char idata Rec_BufBuf_Max; /定义缓存数组unsigned char Mima=dzxx;unsigned char Num_Receive11=0x30;unsigned char Num112=0;void Serial_Init(void); /声明串口初始化函数void Send_ASCII(unsigned char *b); /声明发送字符(ASCII码)函数void Delay_ms(un

33、signed int time); /声明延时函数void CLR_Buf(void);/声明清除缓存内容void Send_Hex(unsigned char b); /声明发送字符(十六进制)函数bit Hand(unsigned char *a); /声明判断缓存中是否含有指定的字符串函数void Call(unsigned char *Num);void Message(void);void write_data(uchar date);void write_str(uchar *str,bit line,uint m);void write_com(uchar com);/写指令到1

34、602void init1602();extern void Second_Serial_Port_Send(unsigned char i);/*主函数*/21Send_Hex(0x0d); /发送回车符Send_Hex(0x0a); /发送换行符Delay_ms(Delay_Time); /延时while(!Hand(OK);/等待设置成功CLR_Buf(); /清除缓存内容 Delay_ms(Delay_Time); /延时Send_ASCII(AT+CSDH=0);Send_Hex(0x0d); /发送回车符Send_Hex(0x0a); /发送换行符Delay_ms(Delay_Ti

35、me); /延时while(1)if(strstr(Rec_Buf,+CMTI)!=NULL) /若缓存字符串中含有+CMTI就表示有新的短信 CLR_Buf(); /清除缓存内容 Delay_ms(Delay_Time);/延时 Send_ASCII(AT+CMGR=1); /发送读取信息指令 Send_Hex(0x0d); /发送回车符 Send_Hex(0x0a); /发送换行符 Delay_ms(Delay_Time); /延时 while(!Hand(OK); /等待设置成功for(j=0;j140) /如果缓存满,将缓存指针指向缓存的首地址 i = 0;ES = 1; /开启串口中

36、断/*发送字符(ASCII)函数*/*函数原型:void Send_ASCII(unsigned char *b) /*函数功能:发送字符(ASCII码)/*输入参数:unsigned char *b/*输出参数:无/*/void Send_ASCII(unsigned char *b) ES = 0; /关串口中断 for (b; *b!=0;b+) SBUF = *b; while(TI!=1); /等待发送完成 TI = 0; /清除发送中断标志位 ES = 1; /开串口中断 Rec_Bufk = 0; i = 0; /接收字符串的起始存储位置*发送字符(十六进制)函数*/*函数原型:

37、void Send_Hex(unsigned char c)/*函数功能:发送字符(十六进制)/*输入参数:unsigned char c/*输出参数:无/*调用模块:无/*/ void Send_Hex(unsigned char c) ES = 0; /关串口中断 SBUF = c; while(TI!=1); /等待发送完成 TI = 0; /清除发送中断标志位ES = 1; /开串口中断/*判断缓存中是否含有指定的字符串函数*/*函数原型:bit Hand(unsigned char *a)/*函数功能:判断缓存中是否含有指定的字符串/*输入参数:unsigned char *a 指定

38、的字符串/*输出参数:bit 1-含有 0-不含有/*调用模块:无/*/bit Hand(unsigned char *a) if(strstr(Rec_Buf,a)!=NULL) return 1; else return 0;void Message(void) Send_ASCII(AT+CMGF=1); /文本(TEXT)模式 void Call(unsigned char *Num) ES = 0; /关串口中断 Send_ASCII(ATD); Send_Hex(0x22); Send_ASCII(Num); Send_Hex(0x22); Send_ASCII(;); Send_

39、Hex(0x0d); /发送回车符 Send_Hex(0x0a); /发送换行符 Delay_ms(Delay_Time); ES = 1; /开串口中断/*time ms延时函数*/*函数原型:Delay_ms(unsigned int time)/*函数功能:延时Time ms/*输入参数:time/*输出参数:无/*/void Delay_ms(unsigned int time) unsigned char j; for(;time0;time-) j = 1500; while(j-); /*清除缓存数据函数*/*函数原型:void CLR_Buf(void)/*函数功能:清除缓存数

40、据/*输入参数:无/*输出参数:无/*调用模块:无/*/void CLR_Buf(void) unsigned char k; for(k=0;k); Delay_ms(Delay_Time); /延时 CLR_Buf(); /清除缓存内容Send_ASCII(Set Successed);Delay_ms(Delay_Time); /延时 Send_Hex(0x1a); while(!Hand(OK); /等待设置成功CLR_Buf(); /清除缓存内容液晶1602显示模块程序 write_data(strnum); Delay1(1); void init1602() en=0; writ

41、e_com(0x38); write_com(0x0c); write_com(0x06); /write_com(0x01);显示清屏 #include #define uchar unsigned char#define uint unsigned intuchar code table=I LIKE MCU!;uchar code table1=WWW.TXMCU.COM;sbit en=P35;sbit rs=P37;/extern void Delay1(uint z);void Delay1(uint z) uint x,y; for(x=z;x0;x-) for(y=110;y0

42、;y-);void write_com(uchar com) rs=0; P0=com; Delay1(5); en=1; Delay1(5); en=0;void write_data(uchar date) rs=1; P0=date; Delay1(5); en=1; Delay1(5); en=0;void write_str(uchar *str,bit line,uint m) uchar num; if(line=0) write_com(0x80+0x01);/数据指针设置 for(num=0;numm;num+) 29#include static bit OP; /红外发射

43、管的亮灭static unsigned int count; /延时计数器static unsigned int endcount; /终止延时计数static unsigned char flag; /红外发送标志char iraddr1,t; /十六位地址的第一个字节char iraddr2,b,num; /十六位地址的第二个字节sbit P0_4=P34 ;void SendIRdata( unsigned char jianzhima,unsigned char yonghuma1,unsigned char yonghuma2);void delay1();unsignedintk;

44、void jianzhidiaoyong( unsigned char jianzhima,unsigned char yonghuma1,unsigned char yonghuma2 ) for(k=0;k1;k+) delay1();SendIRdata(jianzhima,yonghuma1,yonghuma2);/定时器0中断处理 void timeint(void) interrupt 1 TH0=0xFF; TL0=0xE6; /设定时值为38K 也就是每隔26us中断一次 count+; if (flag=1) OP=OP; else OP = 0; P0_4 = OP; vo

45、id SendIRdata(unsigned char jianzhima,unsigned char yonghuma1,unsigned char yonghuma2) int i; char irdata;/发送9ms的起始码 endcount=210; flag=1; count=0; dowhile(countendcount); /发送4.5ms的结果码 endcount=117; flag=0; count=0; dowhile(countendcount); /发送十六位地址的前八位 irdata=yonghuma1; for(i=0;i8;i+) /先发送0.56ms的38K

46、HZ红外波(即编码中0.56ms的低电平) endcount=10; flag=1; count=0; dowhile(countendcount);/停止发送红外信号(即编码中的高电平) if(irdata-(irdata/2)*2) /判断二进制数个位为1还是0 endcount=36; /1为宽的高电平 else endcount=15; /0为窄的高电平 flag=0; count=0; dowhile(count1; 红外发射程序 case 1: jianzhima=0x14; yonghuma1=0x40; yonghuma2=0x87;duquxinxi=0; jianzhidiaoyong(jianzhima,yonghuma1,yonghuma2); break; case 2: jianzhima=0x07; yonghuma1=0x40; yonghuma2=0x87; duquxinxi=0;jianzhidiaoyong(jianzhima,yonghuma1,yon ghuma2);break; case 3: jianzhima=0x08; yonghuma1=0x41; yonghuma2=0x87; duquxinxi=0;jianzhidiaoyong(jianzhima,yonghuma1

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!