温室大棚卷帘机控制系统总体方案设计_第1页
温室大棚卷帘机控制系统总体方案设计_第2页
温室大棚卷帘机控制系统总体方案设计_第3页
温室大棚卷帘机控制系统总体方案设计_第4页
温室大棚卷帘机控制系统总体方案设计_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、 .wd. .wd. .wd.目 录TOC o 1-3 h z uHYPERLINK l _Toc262226718第一章绪论 PAGEREF _Toc262226718 h 2HYPERLINK l _Toc2622267191.1 背景介绍 PAGEREF _Toc262226719 h 2HYPERLINK l _Toc2622267201.2 相关技术的情况 PAGEREF _Toc262226720 h 2HYPERLINK l _Toc2622267211.3 设计的意义 PAGEREF _Toc262226721 h 2HYPERLINK l _Toc262226722第二章总体

2、设计方案 PAGEREF _Toc262226722 h 3HYPERLINK l _Toc2622267232.1 构造设计 PAGEREF _Toc262226723 h 3HYPERLINK l _Toc2622267242.2 本设计主要功能流程图 PAGEREF _Toc262226724 h 3HYPERLINK l _Toc262226725第三章硬件设计模块 PAGEREF _Toc262226725 h 5HYPERLINK l _Toc2622267263.1 单片机主控制模块 PAGEREF _Toc262226726 h 5HYPERLINK l _Toc2622267

3、273.2 GSM短信收发模块 PAGEREF _Toc262226727 h 6HYPERLINK l _Toc2622267283.3 温度显示模块 PAGEREF _Toc262226728 h 8HYPERLINK l _Toc2622267293.4 矩阵键盘模块 PAGEREF _Toc262226729 h 10HYPERLINK l _Toc2622267303.5 步进电机仿卷帘机模块 PAGEREF _Toc262226730 h 11HYPERLINK l _Toc262226731第四章软件设计 PAGEREF _Toc262226731 h 13HYPERLINK l

4、 _Toc2622267324.1 程序设计总流程图 PAGEREF _Toc262226732 h 13HYPERLINK l _Toc2622267334.2GSM短信模块程序设计 PAGEREF _Toc262226733 h 14HYPERLINK l _Toc2622267344.3 DS18B20程序设计 PAGEREF _Toc262226734 h 16HYPERLINK l _Toc2622267354.4 1602液晶程序设计 PAGEREF _Toc262226735 h 19HYPERLINK l _Toc2622267364.5矩阵键盘程序设计 PAGEREF _To

5、c262226736 h 22HYPERLINK l _Toc2622267374.6步进电机程序设计 PAGEREF _Toc262226737 h 24HYPERLINK l _Toc262226738第五章调试与总结 PAGEREF _Toc262226738 h 27HYPERLINK l _Toc2622267395.1 调试 PAGEREF _Toc262226739 h 27HYPERLINK l _Toc2622267405.2总结 PAGEREF _Toc262226740 h 27HYPERLINK l _Toc262226741致谢 PAGEREF _Toc2622267

6、41 h 29HYPERLINK l _Toc262226742参考文献 PAGEREF _Toc262226742 h 30HYPERLINK l _Toc262226743附录 PAGEREF _Toc262226743 h 31第一章 绪论1.1 背景介绍2009年12月8日黄昏,福兴地某村一位中年妇女到自家大棚上放草帘,由于没有及时停住卷帘机,导致绳子在铁杆上反缠,该妇女去拉绳子时,不慎被绳子缠住围巾,最终被勒住颈部,当场死亡。1.2相关技术的情况目前使用的温室大棚卷帘机是靠人工送电,以到达控制卷帘机升降的目的,存在着很大的安全隐患。卷帘机本是帮助人们干活的工具,可有时却成了杀人工具,

7、而且不管温室中是否有劳动任务,管理人员必须亲自到温室按动按键实现卷帘机的升降,浪费了时间。1.3设计的意义本设计以发送短信的方式来控制卷帘机的升降,通过远程控制,就能实现卷帘机的自动升降,一方面可以有效的防止类似上述情况的发生,另一方面可减轻管理人员的劳动强度,在温室中没有劳动任务的时候不必亲自到温室,仅仅为实现大棚帘子的升降,节省了时间。同时本设计外加其他功能,一方面能检测室内温度,将温度以短信的形式发给管理人员,使管理人员能够及时准确的了解温室内的温度情况,及时实现对温室大棚的通风,使作物获得适宜的生长温度,有利于作物的生长;另一功能就是当室内温度过低时,卷帘机能够自动放帘,以保证室内 基

8、本恒温,缩短蔬菜生长周期,使蔬菜提前上市,提高经济效益。第二章 总体设计方案温室大棚卷帘机控制系统总体方案设计是根据其功能而设计的,从全局的角度,以系统的观点而进展整体方面的设计,主要由GSM短信收发模块、温度显示模块、矩阵键盘设置模块,步进电机模拟卷帘机模块等组成。2.1构造设计AT89S52单片机GSM短信收发模块1602液晶显示模块按键设置模块卷帘机升降控制温度检测模块图2-1 总体框架构造图其中AT89S52单片机作为本系统的主控制模块。按键设置模块可设置最低报警温度和管理人员手机号码。GSM模块中的短信内容由单片机进展判别,如读到升起的指令,卷帘机往上卷,假设为降指令,那么往下卷。同

9、时18B20温度传感器将检测到的温度传输到LCD显示,温度一旦低于设置的值,单片机发短信给GSM,提示管理人员降下帘子。2.2 本设计主要功能流程图图2-2功能流程图小节:本章对该设计的总体框架构造体系设计进展了论述,并对该设计的功能通过流程图的形式进展了介绍,硬件及软件模块的设计分别在第三章、第四章给以介绍。第三章硬件设计模块温室大棚卷帘机控制系统硬件模块主要由单片机主控制模块、GSM短信收发模块、温度显示模块、按键模块、步进电机仿卷帘机五大模块组成。下面分别对五大模块进展分析。3.1 单片机主控制模块本模块主要由单片机最小系统搭建而成,主要包括复位电路与时钟电路两大局部,这里单片机主要进展

10、计算,判断,进制转换等一系列工作,也是整个系统中最关键的局部,下面具体介绍一下单片机主控制模块的各个组成。3.1.1 AT89S52功能简介AT89S52和AT89S51如图 基本是一样的,S52比S51多一个定时器,由于S52的定时器2不常用,故在此我们讨论S51,它是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚构造,芯片内集成了通用8位中央处理器和ISP Flash存储单

11、元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89S51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器RAM,32个外部双向输入/输出I/O口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗WDT电路,片内时钟振荡器。 ( 图3-1-1 AT89S51引脚图 ) 3.1.2复位电路为确保单片机系统中电路稳定可靠工作,复位电路是必不可少的局部,复位电路有上电自动复位和按键复位两种,这里采用按键复位。其工作电路图3.1.2。3.1.3时钟电路时钟电

12、路是单片机工作的心脏,它控制着单片机的工作节奏,单片机就是通过复杂的时序电路完成不同指令功能的。时钟的工作电路图如3.1.3。图3-1-2复位电路图3-1-3时钟电路3.2 GSM短信收发模块GSM短信收发的主要功能是收发短信,当温度低于设定的值时自动给管理人员发送短信,给以报警提示,同时承受管理人员回复的短信,通过单片机判断短信内容,控制卷帘机的升降。3.2.1 TC35模块简介TC35是Siemens公司推出的新一代无线通信GSM模块,可以快速安全可靠地实现系统方案中的数据、语音传输、短消息服务(Short Message Service)和 。模块的工作电压为3.3 5.5V,可以工作在

13、900MHz和1800MHz两个频段,所在频段功耗分别为2W900M和1W1800M。模块有AT命令集接口,支持文本和PDU模式的短消息、第三组的二类 、以及2.4k,4.8k,9.6k的非透明模式。此外,该模块还具有 簿功能、多方通话,漫游检测功能,常用工作模式有省电模式、IDLE、TALK等模式。通过独特的40引脚的ZIF连接器,实现电源连接、指令、数据、语音信号、及控制信号的双向传输。通过 ZIF连接器及50天线连接器,可分别连接SIM卡支架和天线。3.2.2TC35引脚极其用法简介TC35有40个引脚,114引脚为电源局部,其中l5引脚为电源电压输入端VBATT+610引脚为电源地GN

14、D,ll12引脚为充电端,13引脚为对外输出电压(供外部电路使用),2429引脚为SIM卡连接端;3340引脚为语音接口用来接 手柄。15、30、31和32引脚为控制局部,15引脚为启动线IGT(Ignition)。当TC35通电后必须给IGT一个大于100 mV的低电平,模块才能启动。30引脚为RTC HYPERLINK :/ dzsc /icstock/160/BACK.html t _blank BACK up;31引脚为掉电控制;32引脚为SYNC,1623引脚为数据输入输出端。启动电路由漏极开路三极管控制。在这里,着重介绍下SYNC引脚,因为该引脚可以很好的反映TC35的工作状态。S

15、YNC引脚可以用来输出一个同步信号synchronizationsignal,也可以在应用时来控制一个LED灯的输出状态。SYNC端通过一个三极管或门电路来控制LED。一个简单的电路接法是:SYNC端通过一电阻接到NPN三极管如9013的基极,射极直接接地,集电极通过一个接限流电阻接到LED的负端,LED的正端接VCC。LED的工作模式完全类同于同步信号,显示的是TC35的工作状态:【1】LED灯灭,表示TC35电源关闭,处于休眠、报警或单纯的充电模式【2】600ms亮/600ms灭,表示未插入SIM卡,或者个人身份未登记/已注销,或者网络正在搜寻中,或者正在进展管理人员身份鉴定,或者网络注册

16、正在进展中【3】75ms亮/3s灭,表示网络注册成功控制通道和管理人员交换信息完成,无来电【4】LED灯亮,依据不同的呼叫类型:声音呼叫,数据呼叫,在建设或者完毕时的状态。3.3 温度显示模块本模块主要通过DS18B20温度传感器采集室内温度,将实时温度显示在LCD液晶上,并且当温度低于设定温度时,将温度值发送给管理人员,让管理人员知道温室内温度变化。3.3.1DS18B20温度传感器1DS18B20温度传感器简介DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现91

17、2位的数字值读数方式独特的单线接口仅需要一个端口引脚进展通信;多个DS18B20可以并联在惟一的三线上,实现多点组网功能;无须外部器件;可通过数据线供电,电压范围为3.05.5V;零待机功耗。零待机功耗;温度以或位数字;管理人员可定义报警设置;报警搜索命令识别并标志超过程序限定温度温度报警条件的器件;负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。2温度检测电路温度检测采用数字温度计DS18B20。如图3.3.1图 3-3-13.3.2 1602字符型LCD液晶屏1LCD简介字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20

18、*2和40*2行等的模块。本次设计选用的是长沙太阳人电子的1602字符型液晶显示器,下面介绍其用法。一般1602字符型液晶显示器实物如图3-3-2-1: 图3-3-2-1引脚功能说明1602LCD采用标准的14脚无背光或16脚带背光接口,各引脚接口说明如下:第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:VL为液晶显示器比照度调整端,接正电源时比照度最弱,接地时比照度最高,比照度过高时会产生“鬼影,使用时可以通过一个10K的电位器调整比照度。第4脚:RS为存放器选择,高电平时选择数据存放器、低电平时选择指令存放器。第5脚:R/W为读写信号线,高电平时进展读操作,低电平时进展写操作。

19、当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。2LCD显示电路本设计液晶显示模块的设计如以以下图3-3-2-2所示,该电路实现的功能是:通过AT89S52的P00P07八个口输出控制信号,控制液晶的8位双向数据线,通过单片机的P2.0、P2.1、P2.2向液晶模块发送命令,控制液晶执行各种命令,其中P2.2控制液晶的使能端,当E端由高电平跳变成低电平

20、时,液晶模块执行命令,P2.1控制液晶模块的读写,高电平时进展读操作,低电平时进展写操作。当P2.0和P2.1共同为低电平时可以写入指令或者显示地址,当P2.0为低电平P2.1为高电平时可以读忙信号,当P2.0为高电平P2.1为低电平时可以写入数据,P2.0控制存放器的选择,高电平时选择数据存放器、低电平时选择指令存放器。 图3-3-2-23.4矩阵键盘模块矩阵键盘主要用来对最低温度和管理人员手机号码的设置,可以随时改变数值,更符合实际生产的要求。3.4.1 44矩阵键盘的工作原理矩阵键盘又称为行列式键盘,它是用4条I/O线作为行线,4条I/O线作为列线组成的键盘。在行线和列线的每一个穿插点上

21、,设置一个按键。这样键盘中按键的个数是44个。这种行列式键盘构造能够有效地提高单片机系统中I/O口的利用率。键盘电路设计矩阵键盘引脚接法及其电路图3-4-2: 图3-4-23.5步进电机仿卷帘机模块现实生活中本模块是卷帘机控制,卷帘机主要由直流电机和减速器组成。本设计用二相四线步进电机模拟卷帘机的升降。3.5.1步进电机的工作原理步进电机是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角),它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而到达准确定位的目的,同时可以通过控制脉冲频率来控

22、制电机转动的速度和加速度,从而到达调速的目的。步进电机可以作为一种控制用的特种电机,利用其没有积累误差(精度为100%)的特点,广泛应用于各种开环控制。现在比较常用的步进电机包括反响式步进电机VR、永磁式步进电机PM、混合式步进电机HB和单相式步进电机等。3.5.2步进电机模拟卷帘机的设计本设计步进电机及驱动器模块设计的电路如以以下图,VCC接12V电源,GND接地,A+、A-,B+、B-分别连接步进电机的四根接线,CP+、CP-、CW+、CW-分别连接单片机P10P13口。该电路实现的功能是:通过AT89S51的P10、P11、P12、P13四个口输出四个信号,其中P10、P12口输出控制水

23、平方向和垂直方向脉冲的个数,即两个方向上的位移量;P11、P13口控制步进电机的转动方向,即正反转。控制过程为:单片机承受键盘传来的信号,通过P1的四个口输出控制信号,通过硬件接线,发送到步进电机的驱动器,通过驱动器控制步进电机的转向和转角。当然,其中还包括单片机的内部振荡电路,驱动器匹配的电路等的设计。图3-5-2步进电机及驱动器模块设计电路图引脚功能说明P10、P121、3脚:接步进驱动器,传递脉冲个数;P11、P132、4脚:控制电机的转动方向;小节:本章节对单片机主控制模块、GSM短信收发模块、温度显示模块、按键模块、步进电机仿卷帘机模块分别进展了介绍,里面对各模块的重点,难点及注意点

24、进展了很仔细的分析与讲解。第四章软件设计温室大棚卷帘机控制系统软件设计主要由GSM短信模块程序设计,DS18B20程序设计,1602液晶程序设计,矩阵键盘程序设计及步进电机程序组成。每一模块都是先单独调试,最后整体调试的。下面分别介绍一下各模块的程序设计过程及注意点。4.1 程序设计总流程图 图4-1 功能流程图GSM短信模块程序设计 GSM模块与手机之间的通信协议是一些AT指令集,AT指令是以AT作首,字符完毕的字符串,AT指令的响应数据包在中。每个指令执行成功与否都有相应的返回。所以本模块的程序设计主要以发送AT指令为着手点。用AT命令设置TC35的参数时,必须先要将命令写入串口,然后通过

25、读取串口的应答数据来判断是否成功。一般AT命令发送成功时,会返回数据“OK,表示AT命令执行成功。在短消息模块设计的过程中,对于TC35的相关参数要进展设置。具体应用到的AT指令如下: (1)设置发送模式短消息收发时,必须要用AT命令设置TC35的发送和接收模式。在收发短消息时,必须按照设置的模式对发送和接收的数据进展相应编码和解码。其中,设置PDU模式的命令为“AT+CMGF=1 回车“。(2)设置服务中心号码根据前面介绍短消息收发技术原理,短消息的传输总是由处于GSM外部的短消息服务中心进展中继。每个消息有自己的目的地或起源地,但只与用户和SMSC有关,因此要根据SIM卡的营运商设置相应的

26、服务中心。如设置徐州联通公司服务中心的命令是, “AT+CSCA=008613010350500 回车“。(3)短消息发送在短消息发送时,使用以下命令将短信发出去:atcmgf1 回车atcsmp17,167,0,0 回车atcscsgsm 回车atcmgs手机号码回车输入短信内容text格式 注:“ ASCII值为26,即1AH 发送短信子程序如下:;=;发送短信程序;=MAIN: MOV SP,#53H ;设置堆栈指针 MOV 78H,#20H ;设置要发送的数据块的首末地址 MOV 77H,#00H MOV 76H,#20H MOV 75H,#40H ACALL TRANS ;调用发送子

27、程序 SJMP $TRANS: MOV SBUF ,78H ;发送地址高8位WAT1: JNB TI,WAT1 CLR TI MOV SBUF ,77H ;发送地址低8位WAT2: JNB TI,WAT2 CLR TI MOV SBUF ,76H ;发送地址高8位WAT3: JNB TI,WAT3 CLR TIMOV SBUF ,75H ;发送地址低8位WAT4: JNB TI,WAT4 CLR TIMOV IE,#90H ;翻开中断允许存放器,采用中断方式发送数据 MOV DPH,78H MOV DPL,77H MOVX A,DPTR MOV SBUF,A ;发送首个数据WAIT: JNB

28、F0,WAIT RETCOM_INT:CLR TI ;关发送中断标志位TI INC DPTR ;数据指针加1,准备发送下一个数据MOV A,DPH ;判断当前被发送的数据地址是不是末地址CJNE A,76H,END1 ;不是末地址那么跳转MOV A,DPLCJNE A,75H,END1 SETE FO ;数据发送完毕,置1标志位 CLR ES ;关串行口中断 CLR EA ;关中断RETI ;中断返回END1: MOVX A,DPTR ;将要发送的数据送累加器,准备发送 MOV SBUF,A ;发送数据 RETI ;中断返回4.3DS18B20程序设计DS18B20温度传感器是DALLAS公司

29、生产的单总线器件,在一根线上进展全部的信息传输,因为硬件简单,所以软件设计相对麻烦,对时序掌控精度要求较高。4.3.1 写18B20程序设计主机要生存一个写时间隙,必须把数据线拉低到低电平然后释放,写时间间隙开场后的15us内允许数据线拉倒高电平。主机要生成一个写0间隙,必须把数据线拉低电平并保持60us,如以以下图4.3.1。图4-3-1 DS18B20写时序图写18b20子程序的汇编程序如下:;=;写DS18B20的子程序(有具体的时序要求);=WRITE_1820: MOV R2,#8;一共8位数据CLR CWR1:CLR DQ MOV R3, #6 DJNZ R3, $ RRC A M

30、OV DQ, C MOV R3,#23 DJNZ R3,$ SETB DQ NOP DJNZ R2,WR1 SETB DQ RET读18B20程序设计主机生成读时间间隙,从ds18b20输出的数据在读间隙的下降沿出现的15us内有效,因此主机停顿I/O口的操作,以读取I/O口的值,如以以下图4.3.2。(图4-3-2 DS18B20读时序图)读18b20子程序的汇编程序如下:;=;读DS18B20的程序;=READ_18200: MOVR4,#2;将温度高位和低位从DS18B20中读出MOVR1,#TEMPER_L ;低位存入TEMPER_L(TEMPER_L); 高位存入(TEMPER_H)

31、RE00: MOVR2,#8 ;数据一共有8位RE01: CLRCSETBDQNOPNOPCLRDQNOPNOPNOPSETBDQMOVR3,#9RE10: DJNZR3,RE10MOVC,DQMOVR3,#23RE20: DJNZR3,RE20RRCADJNZR2,RE01MOVR1,ADECR1DJNZR4,RE00RET单线总线的空闲状态是高电平。无论任何理由需要暂停某一执行过程时,如果还想恢复执行的话,总线必须停留在空闲状态。在恢复期间,如果单线总线处于非活动高电平状态,位与位间的回复时间可以无限长。如果总线停留在低电平超过480us,总线上所有的器件都将复位。执行序列通过单线总线端口

32、访问DS18B20的协议流程图如下:图 4-3-2 协议流程图 4.41602液晶程序设计液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否那么此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,图4.4是1602的内部显示地址。图4-4 1602LCD内部显示地址例如第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢这样不行,因为写入显示地址时要求最高位D7恒定为高电平1所以实际写入的数据应该是01000000B40H+10000000B(80H)=11000000B(C0H)

33、。4.4.1 1602 初始化的程序设计在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。每次输入指令前都要判断液晶模块是否处于忙的状态。1602LCD的一般初始化复位过程延时15mS写指令38H不检测忙信号延时5mS写指令38H不检测忙信号延时5mS写指令38H不检测忙信号以后每次写指令、读/写数据操作均需要检测忙信号写指令38H:显示模式设置写指令08H:显示关闭写指令01H:显示清屏写指令06H:显示光标移动设置写指令0CH:显示开及光标设置液晶初始化程序:;=; 初始化;=INIT: MOV A,#38H ;#38H-A LCALL WIR

34、;调写IR子程序 MOV A,#0EH ;#0EH-A (显示开,光标开,光标闪烁 LCALL WIR ;调写IR子程序 MOV A,#06H ;#06H-A LCALL R ;调写IR子程序 RET ;返回4.4.2 1602 写指令与数据的程序设计因为本设计是显示温度值,所以不要读数据,只需写入指令与数据即可。下面着重介绍一下1602写指令及数据的时序特点;如图 4-4-2 是1602写操作时序图 4-4-2时序图按照图4.4.2时序写指令及数据程序如下:;=; 写指令;=WIR: ACALL CKLCD ;调查空闲子程序 CLR E ;E 清 0 CLR RS ;RS 清 0 CLR R

35、W ;RW 清 0 SETB E ;E 置 1 MOV P0,A ;A-P0 CLR E ;E 清 0 RET ;返回;=; 写数据;=WDR: ACALL CKLCD ;调查空闲子程序 CLR E ;E 清 0 SETB RS ;RS 置 1 CLR RW ;RW 清 0 SETB E ;E 置 1 MOV P0,A ;A-P0 CLR E ;E 清 0 RET ;返回4.5矩阵键盘程序设计矩阵键盘又称为行列式键盘,它是用4条I/O线作为行线,4条I/O线作为列线组成的键盘。本模块设计是先读取键盘的状态,然后得到按键的特征编码,再而让液晶显示。下面介绍一下键盘扫描的过程。先从P2口的高四位输

36、出低电平,低四位输出高电平,从P2口的低四位读取键盘状态。再从P2口的低四位输出低电平,高四位输出高电平,从P2口的高四位读取键盘状态。将两次读取结果组合起来就可以得到当前按键的特征编码。使用上述方法我们得到16个键的特征编码。举例说明如何得到按键的特征编码:假设“1键被按下,找其按键的特征编码。从P2口的高四位输出低电平,即P2.4P2.7为输出口。低四位输出高电平,即P2.0P2.3为输入口。读P2口的低四位状态为“ 1101,其值为“0DH。再从P2口的高四位输出高电平,即P2.4P2.7为输入口。低四位输出低电平,即P2.0P2.3为输出口,读P2口的高四位状态为“1110,其值为“E

37、0H。将两次读出的P2口状态值进展逻辑或运算就得到其按键的特征编码为“EDH。用同样的方法可以得到其它15个按键的特征编码。;=; 按键扫描子程序;=KEY_SCAN: ;识别键盘有无键按下子程序 MOV P2,#0F0H ;置列线为0,行线为1 MOV A,P2 ;读P2口 ANL A,#0F0H ;取出高四位 MOV B,A ;暂存到B MOV P2,#0FH ;置列线为1,行线为0 MOV A,P2 ;读P1口 ANL A,#0FH ;取出低四位 ORL A,B ;高四位与低四位逻辑或运算重新组合 CJNE A,#0FFH,KEY_IN1 ;0FFH为无按键按下 RETKEY_IN1:

38、;识别具体按键值子程序 MOV B,A ;将按键的特征编码暂存于B MOV DPTR,#KEYTABLE MOV R3,#0FFH KEY_IN2: INC R3 ;顺序码加1 MOV A,R3 MOVC A,A+DPTR ;查表 CJNE A,B,KEY_IN3 ;比较,假设一样那么找到按键的特征编码。 MOV A,R3 ;找到特征编码后,取顺序码 MOV 30H,A ;存入30H单元 RETKEY_IN3: CJNE A,#00H,KEY_IN2 ;末完,继续查 RET ;00H为完毕码KEY_TABLE: DB 0EEH,0EDH,0EBH,0E7H,0DEH ;0,1,2,3,4, 顺

39、序码 DB 0DDH,0DBH,0D7H,0BEH,0BDH ;5,6,7,8,9, 顺序码 DB 0BBH,0B7H,07EH,07DH,07BH, 077H ;A,B,C,D,E,F 顺序码 DB 00H ; 完毕码4.6步进电机程序设计步进电机是一种将电脉冲转化为角位移的执行机构。通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度及步进角。可以通过控制脉冲个数来控制角位移量,从而到达准确定位的目的;同时还可以通过控制脉冲频率来控制电机转动的速度和加速度,从而到达调速的目的。所以在软件编写时一定要注意步进电机时序的变化,时序图如图4-6(图 4-6

40、步进电机时序图);=; 步进电机子程序;=MOTO:MOV SP,50HSTOP:MOV P1,#0FFH ;步进电机停转LOOP:JNB K1,MZZ2 ;是否K1按下,是那么转正转模块JNB K2,MFZ2 ;是否K2按下,是那么转反转模块JNB K3,STOP1 ;是否K3按下,是那么转步进电机停转JMP LOOP ;循环STOP1:ACALL DELAY ;按K3键,消除抖动 JNB K3,$ ;K3放开否 ACALL DELAY ; 放开消除抖动 JMP STOP ; 步进电机停转MZZ2:ACALL DELAY ;按K1键,消除抖动 JNB K1,$ ;K1放开否ACALL DEL

41、AY ; 放开消除抖动 JMP MZZ ; 转步进电机正转模块MFZ2:ACALL DELAY ;按K2键,消除抖动JNB K2,$ ;K2放开否 ACALL DELAY ; 放开消除抖动JMP MFZ ; 转步进电机反转模块MZZ: MOV R0,#00H ;置表初值MZZ1:MOV A,R0 MOV DPTR,#TABLE;表指针MOVC A,A+DPTR ;取表代码 JZ MZZ ;是否取到完毕码 MOV P1,A ;从P1输出,正转 JNB K3,STOP1 ; 是否K3按下,是那么转步进电机停转 JNB K2,MFZ2 ; 是否K2按下,是那么转反转模块 ACALL DELAY ;

42、步进电机转速 INC R0 ;取下一个码 JMP MZZ1 RETMFZ:MOV R0,#05 ; 反转到TABLE表初值MFZ1:MOV A,R0 MOV DPTR,#TABLE ;表指针 MOVC A,A+DPTR ;取表代码 JZ MFZ ;是否取到完毕码 MOV P1,A ;从P1输出,反转 JNB K3,STOP1 ; 是否K3按下,是那么转步进电机停转 JNB K1,MZZ2 ; 是否K1按下,是那么转正转模块 ACALL DELAY ; 步进电机转速 INC R0 ;取下一个码 JMP MFZ1 RETTABLE:DB 0F1H,0F3H,0F2H,0F6H;;正转 DB 0F4

43、H,0FCH,0F8H,0F9H; DB 00H ; ;正转完毕码DB 0F1H,0F9H,0F8H,0FCH;;反转 DB 0F4H,0F6H,0F2H,0F3H;DB 00H; ;反转完毕码小节:本章节对各模块的软件编程进展了介绍,其中很详细的分析了各模块的时序,将时序与程序一一对应着分析了模块的工作过程。调试与总结5.1 调试单片机系统的软件调试与硬件调试是分不开的,许多硬件错误是在软件调试中被发现和纠正的,但是硬件调试是根基,假设硬件调试不过关,软件调试无从谈起,所以我是先排除明显的硬件错误,然后再软硬兼顾,逐步排除错误。本设计主要有GSM短信收发模块、温度显示模块、按键设置模块,步进

44、电机模拟卷帘机模块,我是对上述模块分别测试,然后再组装起来的,同样程序也是如此,这样便于问题的查找和以后的维护。下面讲述一下我调试过程中遇到的比较苦恼的问题:1GSM模块设计时主要遇到的问题是无法启动,按照TC35的中文说明接线,反复实验,还是无法到达75ms亮/3s灭的启动效果,最后还是看英文资料,才知道是电压的问题,虽然在这一模块设计时花了很多时间,走了不少弯路,可是也从中学到不少东西。2温度显示模块最主要的问题是DS18B20和1602的时序具体时序极其程序已第四章中仔细讲解,一定要严格按照它们的时序来编写,不然一定会出错。3按键设置模块是一个稳定性的问题,你按下一个按键,液晶屏上有时不显示任何数字,有时一下子会显示两三个数字,原因在于我没加消除抖动的指令,经修改之后,稳定性相对来说大大提高。总结此设计是本人设计的最复杂的一个工程,思路源于生活,特别具有实用价值。这也是第一次尝试将多个独立

温馨提示

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

评论

0/150

提交评论