深职院论文用纸

更新时间:2023-12-24 01:05:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

目 录

毕业设计(论文)任务书...................................2 摘要.................................... ................5 前言.................................... ................6 1 方案论证与比较 ....................................... 7

1.1 信号采样方法方案论证 .................................................................................. 7 1.2 处理器的选择方案论证 .................................................................................. 7 1.3 系统电源的设计方法方案论证 ...................................................................... 7

2 系统设计 ............................................. 8

2.1 总体设计 .......................................................................................................... 8 2.2 单元电路设计 .................................................................................................. 9 2.2.1 AVR单片机最小系统设计 ........................................................................ 9 2.2.2 系统电源电路设计 .................................................................................. 10 2.2.3 红外遥控专用电路设计 .......................................................................... 10

3 软件设计 ............................................ 12 4 系统测试 ........................................... 13 5 结论 ................................................ 15 致谢.....................................................15 参考文献: ............................................. 16 附录: ................................................. 16

附1:元器件明细表: ........................................................................................... 16 附2:仪器设备清单 ............................................................................................... 16 附3:电路图图纸 ................................................................................................... 17 附4:程序清单 ....................................................................................................... 18

1

毕业设计(论文)任务书

专业(班):08电子四班 姓名:徐英杰 学号:08101263

课题名称、主要内容和基本要求

课题名称: 防爆机器人 主要内容: 本防爆机器人由8位MCU为主控制器,通过红外无线检测,对安装在家中的各个传感器进行实时监控。防暴机器人处于警戒状态。当环境有异常现象时,可以将信息传达给家中的防暴机器人,让机器人开始工作。在本系统中,我们安装了一个不间断电源,本防爆机器人有极高稳定性和有较强的抗干扰能力,系统操作简单,是一个非常实用的系统,并且本系统成本极低,安装十分简单。所以非常适合安装在普通家庭中。总而言之,这是一个在安全性和性价比方面都比较完美的安防系统。 设计要求: 1、 远程控制机器人工作。 2、 防爆机器人有可以工作的机械手臂 3、 防爆机器人电源使用可充电电池

2

进度安排

周次 1~3 工作内容 选定题目、搜集资料 执行情况 完成 4 选择方案、技术可行性分析、方案论证与确定 完成 5 修改开题报告、评定开题报告 完成 6 由老师对方案的制作要求作指定说明并改良 完成 7 电路原理图设计、采购元器件 完成 8~9 硬件的实现(焊接技术、相关仪器设备的使用) 完成 10~13 软件的实现(完成相关软件编程设计工作) 完成 14~15 整个设计的软硬件调试 完成 16 演示制作成品、讲解设计思路、回答提问 完成 3

指导教师评语

指导教师核定成绩: 指导教师签名:

评阅教师评语

评阅教师核定成绩: 评阅教师签名:

毕业设计(论文)成绩

答辩委员会主任签名:

4

摘要:本防爆机器人由8位MCU为主控制器,通过红外无线检测,对安装在家中的各个传感器进行实时监控。防暴机器人处于警戒状态。当环境有异常现象时,可以将信息传达给家中的防暴机器人,让机器人开始工作。在本系统中,我们安装了一个不间断电源,本防爆机器人有极高稳定性和有较强的抗干扰能力,系统操作简单,是一个非常实用的系统,并且本系统成本极低,安装十分简单。所以非常适合安装在普通家庭中。总而言之,这是一个在安全性和性价比方面都比较完美的安防系统。

关键词: MCU 防暴机器人

Abstract: The security system consists of 8-bit MCU-based controller, through the infrared wireless detection, on the various sensors installed in the home real-time monitoring. Ready to leave home in the master man-machine interface through LCD fortification, so that home security systems and anti-riot robots alert. When the environment is abnormal, the corresponding sensor on the occurrence of action, the information is first communicated to the family of anti-riot robots, so the robot to work. MCU will control the GSM module also send text messages to tell his master anomaly occurred at home. In this system, we also installed an uninterruptible power supply, even in case of power failure, the system can continue to work 7 days. The security system has high stability and strong anti-jamming capability, LCD friendly interface, the system is simple, is a very useful system, and low cost of the system, installation is very simple, not easy installation was found, it is very suitable for installation in ordinary families. All in all, this is a cost-effective in terms of safety and security systems are more perfect.

Keyword: MCU Robot Riot

5

前 言

随着科学技术的发展,机器人将在太空探测、救灾防爆、海洋开发等领域有着广阔的应用前景,因而其发展正在成为国内外研究人员关注的焦点。分析上述各种用途的机器人,其构成不外乎机构本体和控制系统两大部分。机构本体在体现机器人特色的同时,也决定了其必然是无人系统,在恶劣的环境下,机器人要具备一定的自主能力。这就要求机器人有一定的“判断能力”和“想法”,需要复杂的算法,包括运动算法和模式识别算法。一般的微处理器是无法完成这项任务,而上述各种机器人又无法使用计算机控制作业。

本智能安防系统由8位MCU为主控制器,通过红外无线检测。当环境有异常现象时,主任控制家中的防暴机器人,让机器人开始工作。在本系统中,我们安装了一个不间断电源。本系统有极高稳定性和有较强的抗干扰能力,系统操作简单,是一个非常实用的系统,并且本系统成本极低,安装十分简单,所以非常适合安装在普通家庭中。总而言之,这是一个在安全性和性价比方面都比较完美的安防系统。

6

1 方案论证与比较

1.1 信号采样方法比较与选择

方案一、使用NRF24L01无线模块,它使用2.4Ghz全球开放面许可证ISM频段,最高工作速率可达2Mbps,高效GFSK调制,抗干扰能力强,低功耗1.9~3.6V工作,待机模式下电流为22uA,掉电模式下为900nA,模块成本较高。

方案二、使用红外遥控系统专用电路,控制芯片的外围元件很少,低电压2.2~5.0V工作电压,CMOS结构保证了极低的功耗,通过调整用户码,可以适用于不同的机型,电路成本极低。

由于我们的传感器全都安装在室内,考虑到信号采样方法的抗干扰能力和成本问题,红外遥控系统专用电路,可以调整用户码,38K载波传输信号,这保证了采样的抗干扰能力,而且控制方便成本便宜 ,所以我们选择使用红外遥控体统专用电路。

1.2 处理器的比较与选择

方案一、使用AVR单片机,目前支持AVR单片机编译器的语言主要有汇编语言、C语言、

BASIC语言等。其中C编译器主要有CodeVisionAVR、AVRGCC、IAR、ICCAVR等,C语言编译器由于它具有功能强大、 运用灵活、代码小、运行速度快、高可靠性等先天性的优点,使得它在专业程序设计上具有不可代替的地位。

方案二、使用89C51单片机,CMOS-8位单片机,低电压工作,高性能,片内4KB的可反复擦写的只读程序存储器和128的随机存取数据存储器,由于一个机器周期共有12个振荡脉冲周期,因此机器周期就是振荡脉冲的十二分频,工作速度较慢。

通过比较,AVR单片机硬件特征和其强大的指令系统和其自带可编程看门狗使它能应用于不同的场合,因此是一种通用的和性能价格比高的控制器,考虑整个系统的稳定性,于是处理器我们选择AVR单片机。

1.3 系统电源的设计方法比较与选择

对于一个功能完善的安防系统,电源的稳定性对于整个系统能否正常稳定地工作及其重要,假如安防系统容易受到外界干扰,使系统发出误判断,很可能会造成及其严重的后果。还考虑到,假如家里停电或有人故意断电,整个安防系统还必须继续正常工作,不然这会是一个很大的系统安全漏洞。

综上所述,安防系统电源要稳定,在停电的情况下,整个系统使用内部蓄电池电源,保证整个系统能够继续正常地工作。

7

2 系统设计

2.1 总体设计

智能家居控制系统其硬件部分主要由三大部分构成,即红外遥控系统专用电路部分、AVR单片机控制单元、电机驱动和电源部分。红外遥控系统专用电路由遥控专用芯片SC9148和SC9149组成,它是系统中控制部分关键的元件,可以完成防爆机器人的所有任务。电源部分则为各个部分提供工作电源。

220市电 变压 整流滤波 稳压输出 +12V和+5V 系统提供电源 单片机 信号分 析处理 机器人前进 机器人左转 机器人右转 机械手臂左转 机械手臂右转 红外编码发射 红外编码发射 红外编码发射 红外编码发射 红外编码发射 防暴机器人执行 红外编码发射 图2.1-1 总体设计框架图

8

2.2 单元电路设计

2.2.1 AVR单片机最小系统设计

单片机最小系统如图2.2-1所示,这个系统的核心就是AVR单片机。最小系统分为2个部分:第一个是复位电路,它是主要由一个电容和一个电阻组成,开始上电时,电容充电复位脚低电平,此时单片机复位,等到电容冲满电时,复位脚与地断开,此时复位脚为高电平,这里的二极管是起保护作用的,按键是用来手动复位的;第二个是时钟电路,它是由一个晶振和两个瓷片电容组成,晶振是为单片机提供外部时钟源设计的,而两个电容的作用是让晶振起振。

图2.2-1 AVR单片机最小系统

AVR单片机是ATMEL公司研制开发的一种新型单片机,它与51单片机、PIC单片机相比具有一系列的优点:

1:在相同的系统时钟下AVR运行速度最快; 2: 芯片内部的Flsah、EEPROM、SRAM容量较大;

3:所有型号的Flash、EEPROM都可以反复烧写、全部支持在线编程烧写(ISP);

4:多种频率的内部RC振荡器、上电自动复位、看门狗、启动延时等功能,零外围电路也可以工作;

5:每个IO口都可以以推换驱动的方式输出高、低电平,驱动能力强;

6:内部资源丰富,一般都集成AD、DA模数器;PWM;SPI、USART、TWI、I2C通信口;丰富的中断源等。

9

2.2.2 系统电源电路设计

安防系统电源既要稳定。所以在这个系统中要使用不间断电源。

本系统的设计还涉及到传感器信号采集与信号放大,其中放大器等部分需要用到±5V电源,因此根据设计要求增加了7805/7905三端稳压IC提供的±5V电源,如图2.2-2由220V的交流电经交流变压器T降压,变成12V交流电,低压交流电再经过全桥整流变成脉动直流17V左右为三端稳压提供电源,脉动直流电经470u电解电容和0.1u瓷片电容滤波,送到稳压块输入端,进行稳压,然后由三端稳压输出端输出±5V直流电压,±12V直流电再由470u和0.1u电容进行滤波,输出比较稳定的±5V直流电压,给模块供电源。

1T1VinC24470uF 700UF7805 7805 7812VoutC31043C4470uF 2200UFGNDC7C81042200UFVout79123-12V+12V

~220V4~220VGNDD1-D42C1104GNDGND21470uF 1Vin图2.2-2 ±5V电源稳压器电路

2.2.3 红外遥控系统专用电路设计

所有红外遥控器的输出都是用编码后的串行数据对38kHz~40kHz的方波进行脉冲幅度调制而产生的。如果直接对已调波进行测量,而其脉宽只有20多微秒,由于单片机的指令周期是微秒级,会产生很大的误差。因此,先要对已调波进行解调,对解调后的波形进行测量。

使用红外遥控系统专用芯片SC9148和SC9149,可以调整用户码,38K载波传输信号,这保证了采样的抗干扰能力。

10

GNDC5104C64700UF32

图2.3-1 红外遥控系统发射电路

图2.3-2 红外遥控系统接收电路

11

3 软件设计

主控制芯片为AVR单片机,由于处理器速度较快,所以采用C语言编程方便简单.软件流程图如下:

开始 初始化 是 按*键 是 选择 1、2、3模式 是 2 3 否 不进行任何安防活动 否 不进行任何安防活动 机器人前进 机器人左转 机器人右转 机械手臂左转 机械手臂右转 红外编码发射 红外编码发射 红外编码发射 红外编码发射 红外编码发射 单片机 信号分 析处理 防暴机器人执行 红外编码发射 主程序流程图

12

4 系统测试

本系统的制作调试主要分为硬件调试、软件调试和联机调试等三大部分。 经过初步的分析设计后,在设计制作硬件电路的同时,调试穿插进行,应用系统的硬件调试和软件调试是分不开的,许多硬件故障是在调试软件时才发现的。但通常是先排除系统中明显的硬件故障后才和软件结合起来调试,如此有利于问题的分析和解决,不会造成问题的积累,从而可以节约大量的调试时间。软件编程中,我是首先完成单元功能模块的调试,然后进行系统调试,整体上采用硬件调试的调试方法。联机调试是最重要的一部分,同时也是本系统成功的关键。

系统PCB板的设计

PCB即印刷电路板,是电子电路的承载体。在现代电子产品中,几乎都要使用PCB。PCB板的设计是电路设计的最后一个环节,也是对原理电路的再设计。因此PCB板的设计是理论设计到实际应用一个十分重要的内容。印制电路板(PCB)是电子产品中电路元件和器件的支撑件.它提供电路元件和器件之间的电气连接。PCB设计的好坏对抗干扰能力影响很大.因此,在进行PCB设计时.必须遵守印制电路板设计原则和抗干扰措施的一般原则,并应符合抗干扰设计的要求。本次设计采用Altium公司PROTEL系列设计完成SCH到PCB的设计,并且手工完成电路焊接以及整机的装配。

系统硬件调试

本系统的硬件调试分为以下阶段进行调试: (1)逻辑错误调试

样机硬件的逻辑错误是由于设计错误和加工过程中的工艺性错误所造成的。这类错误包括:错线、开路、短路等几种,其中短路是最常见的故障。 (2)器件调试

元器件失效的原因有两个方面:一是器件本身已损坏或性能不符合要求;二是由于组装错误造成的元器件失效,如电解电容、二极管的极性错误,集成块安装方向错误等。 (3)可靠性调试

引起系统不可靠的因素很多,如金属化孔、接插件接触不良会造成系统时好时坏;内部和外部的干扰、电源纹波系数过大、器件负载过大等造成逻辑电平不稳定;另外,走线和布局的不合理等也会引起系统可靠性差。

13

(4)电源故障

若样机中存在电源故障,则加电后将造成器件损坏。电源的故障包括:电压值不符合设计要求,电源引出线和插座不对应,电源功率不足、负载能力差。

在本次调试在调试样机加电之前,先用万用表和示波器,根据硬件电气原理图和装配图仔细检查样机线路的正确性,并核对元器件的型号、规格和安装是否符合要求。还特别注意电源的走线,防止电源之间的短路和极性错误,并重点检查扩展系统总线是否存在相互间的短路;或其它信号线的短路,由于本设计的印刷电路板布线密度较高,出现了两处因工艺原因造成短路,短路点用刻刀断开。

对于样机所用的电源事先做了单独调试,调试好后,检查其电压值、负载能力、极性等均符合要求,然后加到系统的各个部件上。在不插片子的情况下,加电检查各插件上引脚的电位,仔细测量各地点电位是否正常,还特别注意单片机插座上的各点电位是否正常,防止了联机时会损坏仿真器。

软件及联机调试

主控程序调试

软件调试与所选用的软件结构和程序设计技术有关。本系统采用模块程序设计技术,逐个模块调好以后,再进行系统程序总调试。由于采用了实时多任务操作系统,采用是逐个任务进行调试,下面进一步予以说明。在调试第一个任务时,同时也调试相关的子程序、中断服务程序和操作系统的程序。等逐个任务调试好以后,再使各个任务同时运行,在本次调试中操作系统中没有错误,在单步和断点调试后,进行了连续调试,因为单步运行只能验证程序的正确与否,而不能确定定时精度、CPU的实时响应等问题。等全部完成后,反复运行多次,除了观察稳定性之外,还观察了用户系统的操作是否符合设计要求的操等,部分程序作了适当修正后系统能够正常运行。

14

5 结论

本文基于仿生原理,使用连杆机构作为机器人的六足,以AVR单片机为控制器的核心,小型带减速器直流电机作为驱动元件,制作出了动作灵活、价格低廉、功能强大以及模块化结构的机器人。

由于系统架构设计合理,功能电路实现较好,系统性能优良、稳定,较好地达到了当初预想要求的各项指标。

致谢

首先感谢深圳职业技术学院,给我提供这么好的学习生活环境,在校学习和生活的日子是我一生中一段难忘的经历!

感谢周山雪老师细心为我指导毕业设计的方向和修改论文,从他那里学到的不只是专业知识,更多的是做人的道理,感谢王洋老师三年来担任我们的班主任,对我们生活、学习方面都付出了许多努力,没有他的带领,我们不会成为合格的毕业生,另外还要感谢夏继媛、张胜雨老师,他们在学习方面给了我大量的指导,让我学到了知识,也获得了实践锻炼的机会。他们严谨的治学态度、对我的严格要求以及为人处世的坦荡将使我终身受益。除此之外,他们对我生活的关心和照顾也使得我得以顺利完成大学的学业。在此祝愿他们身体健康,全家幸福!

感谢我的同学黄春光,他给了我很多的帮助和鼓励,在做毕业设计的过程中是他一路指导着我走过来的,没有他,我的毕业设计也不会那么容易的完成。他让我学到很多,他是我学习、工作和生活上的伙伴,也是面对困难和挑战时的战友。

15

参考文献:

[1]《模拟电子线路基础》,吴运昌著,广州:华南理工大学出版社,2004年; [2]《数字电子技术基础》,阎石著,北京:高等教育出版社,1997年; [3]《单片机原理及应用》,李建忠著,西安:西安电子科技大学,2002年; [4]《单片机工程实践技术》,付家才著,北京:化学工业出版社,2003; [5]《单片机原理及其接口技术》,胡汉才著,北京:清华大学出版社,1996;

[6]《机器人设计与控制》,[美]丹尼斯克拉克 迈克尔欧文斯著,北京科学出版社,2004; [7] 《红外检测与控制电路》,陈永甫著,北京:人民邮电出版社,2004。

附录:

附1:元器件明细表:

1、 ATMEGA16 2、 SC9148 3、 SC9149

附2:仪器设备清单

1、低频信号发生器 2、数字万用表 3、模拟示波器 4、稳压电源

16

附3:部分电路图图纸

VCCR1C139K102C2C3102SIP2A1A2A3A4A5VCCR155K1J212161514131211109U1R115K1R125K1R135K1R145K19149J1J5O1O2O3O4O5D1D2D3D4D512345123VCCR347KQ6PNPR210KA1A2A3A4A512345678VCCVCCR2110KO1R2210KO2R2310KO3R2410KO4R2510KO5A1R3110KQ1NPNA2R3210KQ2NPNA3R3310KQ3NPNA4R3410KQ4NPNA5R3510KQ5NPN 红外遥控系统接收电路

红外遥控系统接收电路PCB

17

附4:程序清单

/***************************************************** This program was produced by the CodeWizardAVR V2.03.4 Standard Automatic Program Generator

?Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com

Project : Version :

Date : 2010-9-3 Author : Company : Comments:

Chip type : ATmega16L Program type : Application Clock frequency : 7.372800 MHz Memory model : Small External RAM size : 0 Data Stack size : 256

*****************************************************/

#include

// Standard Input/Output functions #include #include

#define MOSI PORTB.1 //液晶模块定义 #define SCLK PORTB.2

// Declare your global variables here #define uchar unsigned char #define uint unsigned int uchar keyVal;

uchar col[4]={0xef,0xdf,0xbf,0x7f}; uchar row[4]={0x07,0x0b,0x0d,0x0e};

flash uchar gsm_text1[]=\

18

flash uchar gsm_text2[]=\flash uchar gsm_text3[]=\

flash uchar gsm_text4[]=\

void lcd_wrByte(unsigned char chw) {

uchar i;

for(i=0;i<8;i++) {

MOSI=chw&0x80; //取出最高位 SCLK=1; SCLK=0;

chw<<=1; //左移 }

}

void lcd_wrCmd(char HC,char LC) {

lcd_wrByte(0xF8);

lcd_wrByte(HC); //传输高四位 lcd_wrByte(LC); //传输低四位 }

void lcd_wrDat(char HD,char LD) {

lcd_wrByte(0xFA);

lcd_wrByte(HD); //传输高四位 lcd_wrByte(LD); //传输低四位 } /*

x表示在第几行显示,y表示在第几列显示*/

void lcd_set_xy(uchar x,uchar y) {

uchar adr=0xff;

switch(x) {

case 1: adr = 0x7F + y;

break; //在第1行y列显示 case 2: adr = 0x8F + y;

break; //在第2行y列显示 case 3: adr = 0x87 + y;

19

break; //在第3行y列显示 case 4: adr = 0x97 + y;

break; //在第4行y列显示 //default: ; }

lcd_wrCmd(adr&0xF0,(adr&0x0F)<<4); }

void lcd_puts(uchar x,uchar y,uchar *str) {

lcd_set_xy(x,y); delay_us(20); while(*str) {

lcd_wrDat((*(str))&0xF0,((*(str))&0x0F)<<4); str++;

delay_us(20); }

delay_ms(1); }

void lcd_clr() {

lcd_wrCmd(0x00,0x10); //显示右移 //delay_us(200); }

void lcd_init(void) {

//OUT_LCD_CS; //若LCD_CS //SET_LCD_CS; delay_ms(1);

lcd_wrCmd(0x30,0x30); //使用8位控制界面,使用基本指令集 //lcd_wrCmd(0x00,0xF0); //整体显示ON lcd_wrCmd(0x00,0xC0); //整体显示ON lcd_wrCmd(0x00,0x10); //清屏 //lcd_wrCmd(0x10,0x00); //光标 lcd_wrCmd(0x00,0x60);

lcd_wrCmd(0x00,0x01); // //清屏,将DDRAM的地址计数器归零

20

//lcd_wrCmd(0x00,0x70); //显示右移 delay_ms(1); //不可省去!!! }

unsigned char GetKeyVal() //键盘扫描 {

uchar i,j,getSta,k[10];

for(i=0;i<4;i++) {

PORTA= col[i];

delay_us(2); if(PINA!=col[i]) {

getSta=PINA&0x0F; for(j=0;j<4;j++)

if(getSta==row[j]) {

keyVal=j+i*4; switch(keyVal) {

case 0:k[1]='*';break; case 1:k[1]='0';break; case 2:k[1]='#';break; case 3:k[1]='D';break; case 4:k[1]='7';break; case 5:k[1]='8';break; case 6:k[1]='9';break; case 7:k[1]='C';break; case 8:k[1]='4';break; case 9:k[1]='5';break; case 10:k[1]='6';break; case 11:k[1]='B';break; case 12:k[1]='1';break; case 13:k[1]='2';break; case 14:k[1]='3';break; case 15:k[1]='A';break; }

//return keyVal; return k[1]; } } }

return 0xFF; }

21

void gsm(flash uchar *s) {

/*******发送GSM手机短信*******/ delay_ms(500);

printf(\ //putsf(\ putchar(0x0d); //回车键 delay_ms(200);

printf(\ putchar(0x0d); delay_ms(500); printf(\ delay_ms(500); putchar('\

printf(\ putchar('\

putchar(0x0d); //or 0a delay_ms(900); printf(s);

delay_ms(500); putchar(0x1a);

delay_ms(500); }

void main(void) {

// Declare your local variables here

uchar ch1[] ={\欢迎使用智能家居系统!请按* 键\ uchar ch2[]={\、外出模式\ uchar ch3[]={\、室内模式\ uchar ch4[]={\、退出安防\ uchar ch5[]={\功能设定:\

uchar ch6[]={\您选择的模式\ uchar bf[]={\已经成功布防\

uchar cf[]={\已退出安防! 谢谢使用!\ uchar queren=0; uchar temp[10]; uchar zt=0;

// Input/Output Ports initialization // Port A initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTA=0xff; DDRA=0xf0;

22

// Port B initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTB=0xff; DDRB.0=1; DDRB.1=1; DDRB.2=1; DDRB.3=0; DDRB.4=0; DDRB.5=0; DDRB.6=0; DDRB.7=0;

// Port C initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTC=0x00; DDRC=0x00;

// Port D initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTD=0x00; DDRD=0x00;

// Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=FFh // OC0 output: Disconnected TCCR0=0x00; TCNT0=0x00; OCR0=0x00;

// Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer 1 Stopped // Mode: Normal top=FFFFh // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off

// Input Capture on Falling Edge // Timer 1 Overflow Interrupt: Off

23

// Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00;

// Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer 2 Stopped // Mode: Normal top=FFh // OC2 output: Disconnected ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00;

// External Interrupt(s) initialization // INT0: Off // INT1: Off // INT2: Off MCUCR=0x00; MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x00;

// USART initialization

// Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: On // USART Transmitter: On

// USART Mode: Asynchronous // USART Baud Rate: 9600 UCSRA=0x00; UCSRB=0x18; UCSRC=0x86; UBRRH=0x00;

24

UBRRL=0x2F;

// Analog Comparator initialization // Analog Comparator: Off

// Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; SFIOR=0x00;

/*******发送GSM手机短信*******/ /*

delay_ms(5000);

printf(\ //putsf(\ putchar(0x0d); //回车键 delay_ms(200);

//AT+IPR=9600 回车 // printf(\ //putchar(0x0d);

printf(\ putchar(0x0d); delay_ms(500); //回车是0x0d

printf(\ delay_ms(500); putchar('\

printf(\ // for(i=0;i<11;i++)

// putchar(num[i]+0x30); putchar('\ //putchar(';');

putchar(0x0d); //or 0a delay_ms(900); printf(\ delay_ms(500); putchar(0x1a); delay_ms(500); */

lcd_init();

lcd_puts(1,1,ch1); delay_ms(200); while (1) {

25

// Place your code here temp[0]=GetKeyVal(); if (temp[0]!=0xff) {

lcd_init();

lcd_puts(1,1,temp); //0~F //delay_ms(10); switch(keyVal)

{ case 0: queren=1;break; case 12:zt=1;break; case 13:zt=2;break; case 14:zt=3;break; default:zt=0; }

while(GetKeyVal()!=0xff); //等待按键弹起 }

if(queren==1) //模式选择 {

queren=0;

lcd_puts(1,2,ch5); lcd_puts(2,2,ch2); lcd_puts(3,2,ch3);

lcd_puts(4,2,ch4); delay_ms(2000);

}

if(zt==1) //户外模式 {

zt=0;

gsm(gsm_text1);

lcd_puts(2,2,ch6); lcd_puts(3,2,bf); delay_ms(2000); lcd_init();

lcd_puts(1,1,ch1); delay_ms(200); }

if(zt==2) //室内模式 {

zt=0;

//gsm(gsm_text1); lcd_puts(2,2,ch6);

26

lcd_puts(3,2,bf); delay_ms(2000); lcd_init();

lcd_puts(1,1,ch1); delay_ms(200); }

if(zt==3) //退出安防 {

} {

}

{

}

{

}

{

}

{

} }; }

zt=0;

//gsm(gsm_text1); lcd_puts(2,2,cf); delay_ms(2000); lcd_init();

lcd_puts(1,1,ch1); delay_ms(200); if(PINB.3==0) gsm(gsm_text4); PORTB.0=1; if(PINB.4==0) gsm(gsm_text2); PORTB.0=1; if(PINB.5==0) gsm(gsm_text2); PORTB.0=1; if(PINB.6==0) gsm(gsm_text3); PORTB.0=1; if(PINB.7==0) gsm(gsm_text3); PORTB.0=1; 27

本文来源:https://www.bwwdw.com/article/eo65.html

Top