




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
图书分类号:密级:毕业设计(论文)基于AVR单片机和NRF905无线环境监测系统设计DESIGNOFWIRELESSENVIRONMENTALMONITORINGSYSTEMBASEDONAVRSINGLECHIPMICROCOMPUTERANDNRF905学生学号20060501222学生姓名李宝学院名称信电工程学院专业名称信息电子科学与技术指导教师高玉芹2010年6月3日徐州工程学院学位论文原创性声明本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独立进行研究工作所取得的成果。除文中已经注明引用或参考的内容外,本论文不含任何其他个人或集体已经发表或撰写过的作品或成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标注。本人完全意识到本声明的法律结果由本人承担。论文作者签名:日期:年月日徐州工程学院学位论文版权协议书本人完全了解徐州工程学院关于收集、保存、使用学位论文的规定,即:本校学生在学习期间所完成的学位论文的知识产权归徐州工程学院所拥有。徐州工程学院有权保留并向国家有关部门或机构送交学位论文的纸本复印件和电子文档拷贝,允许论文被查阅和借阅。徐州工程学院可以公布学位论文的全部或部分内容,可以将本学位论文的全部或部分内容提交至各类数据库进行发布和检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。论文作者签名:导师签名:日期:年月日日期:年月日摘要本文提出了一种基于低功耗高性能Atmage16L单片机为主控器和射频nRF905为无线收发模块的无线环境系统监测的总体设计方案和实现方法。系统设置了一个主机和两个从机,通过无线通信方式,实现了两个节点的环境监测。主机通过从机预设的不同地址来实现区分两个节点发送来的环境监测数据。本设计采用nRF905射频模块为无线传输模块,DS18B20为温度传感器模块及HM1500为湿度传感器模块来实现了环境的温湿度监测。Atmage16L和nRF905之间通过高速串口SPI实现双向通信,SPI支持高速数据传输,从而满足了环境参数数据实时传输的要求,并且利用VB6.0企业版的MScomm控件编写接收界面,通过串口实时显示在PC机上。关键词ATMEGA16L;nRF905;DS18B20;HM1500;无线环境监测AbstractThisarticleproposedonekindWirelessEnvironmentalMontoringsystemoveralldesignplanandtherealizationmethodwhichbasedonthelow-powerhigh-performanceAtmega16LMCUandthewirelessmodulenRF905.ThesystemhasoneMasterandtwoSlaves,througnthewielesscommunicationtocometrueMontoringEnvironmentalintwodifferentplaces.TheMastercandistinguishthedataoftheEnvironmentfromtwodifferentplacesthroughthedifferentaddress.ThedesignusesnRF905asthewirelessreceivinganddispatchingmoduleandDS18B20asthetemperaturesensormoduleandHM1500asthehumiditysensor,thuscompliesthedesignofWirelessEnvironmentalMontoringsystem,includestemperatureandhumidity.ThedesigncancometurethedataofenvironmenttransmissionbetweenAtmega16LandnRF905whichusestheSPImouthrealizationtwo-waycommunication,SPIsupportsthehigh-speeddatatransmission,alsousetheMScommofVB6.0towriteainterface,itcandisplaythedataonPC’sscreen.KeywordsATMEGA16LnRF905DS18B20HM1500WirelessEnvironmentalMontoring目录1绪论 11.1课题研究的背景 11.2开发意义 12系统总体设计 22.1系统的整体结构 22.2系统的工作原理 22.3课题实现的功能 23系统硬件设计 43.1器件的选用 4中央处理器的选用 4无线发射芯片的选用 4温度传感器的选用 5湿度传感器的选用 6显示器的选用 63.2主机的硬件设计 6串行外设接口SPI 7单片射频收发器nRF905 8通用同步和异步串行接收器和转发器USART 113.3从机的硬件设计 12串行外设接口SPI 133.3.2单片射频收发器nRF905 13字符型液晶显示器LCD1602 13温度传感器DS18B20 16湿度传感器HM1500 184系统软件设计 214.1主机软件设计 21主程序的设计 214.1.2SPI接口软件的设计 224.1.3nRF905软件的设计 234.1.4串口软件的设计 244.2从机软件设计 254.2.1主程序的设计 254.2.2SPI接口软件设计 274.2.3nRF905软件设计 274.2.4LCD1602软件设计 274.2.5DS18b20软件设计 274.2.6HM1500软件设计 295PC机通信及数据处理显示程序设计 305.1VB6.0特点 305.2MSComm控件 305.2.1MSComm控件的主要属性、事件 315.3VB程序设计 315.3.1程序详细设计 315.3.2系统界面 316调试 336.1液晶显示器LCD1602设计过程中遇到的问题既解决方法 336.2串口设计过程中遇到的问题既解决方法 336.3nRF905设计过程中遇到的问题既解决方法 336.4DS18B20设计过程中遇到的问题既解决方法 346.5VB程序设计中遇到的问题与解决方法 34结论 35致谢 36参考文献 37附录 38附录1英文翻译 38附录2硬件原理图 54附录3源程序代码 711绪论1.1课题研究的背景在许多测控现场中,传统的数据传输是通过有线电缆实现的。随着射频技术、集成电路的发展,无线通信功能的实现越来越容易,抗干扰能力也越来越强,因此,越来越多的场合采用了无线传输技术。无线数据传输相比于有线传输有许多优点:一、是成本低,省去了大量的布线;二、是建网快捷,只需在每个终端连接无线数据传输模块和架设适当高度的天线即可;三、是适应性好,无线数据传输在一些特殊的应用环境,比如遇到山地、湖泊、林区等特殊的地理环境或是移动物体等布线比较困难的应用环境的时候,能解决因布线困难、电缆接插件松动、短路等带来的问题;四、是扩展性好,采用有线传输方式,不能随意移动,设备重新布局就要重新布线,但采用无线数据传输,只需将设备与无线数据传输模块相连接就可以了;五、是设备维护容易,有线通信链路的维护需沿线路检查,出现故障时,一般很难及时找出故障点,而采用无线数据传输方式只需维护数据传输模块,出现故障时则能快速找出原因。通过环境监测,提供代表环境质量现状的数据,判断环境质量是否符合国家标准;评价环保设施的性能,为综合防治对策提供基础数据,积累长期监测资料,为研究环境容量,实施总量控制提供基础数据。通过大量的监测数据,制定切实可行的环保法规和环境质量标准。总之,环境监测的作用是及时、准确、全面地反映环境质量现状及发展趋势,为环境管理、环境规划、环境科学研究提供依据。为了提高环境参数采集的自动化水平,提升效率,设计了无线环境监测系统。本课题运用了传感器技术、无线通信技术和单片机技术,实现了对环境温度、湿度等参数的检测。它能够实时地与上位机进行无线通信,满足对环境参数实时监测的要求。1.2开发意义随着经济高速发展,工业化的不断推进,人们对生存的环境日益重视。为此,环境监测已成为我们合理地利用环境资源、保护生态环境的工作重点。在许多情况下,传统的环境监测往往由于受到地理环境和工作内容的限制,如山地、港口和开阔地等特殊地理环境,对有线网络、有线传输的布线工程带来极大的不便,采用有线的施工周期将很长,甚至根本无法实现。这时,采用无线无线环境监测可以摆脱线缆的束缚,有安装周期短、维护方便、扩容能力强,迅速收回成本的优点。本文将无线技术运用到环境监测中,提出了一种利用低功耗高性能Atmage16L单片机为主控器,nrf905射频模块为无线传输模块,DS18B20为温度传感器模块及HM1500为湿度传感器模块,实现无线环境监测系统的设计。2系统总体设计2.1系统的整体结构本系统包含一台主机和两台从机。系统的总体结构框图见图2-1。NRF905NRF905单片机温湿度温湿度NRF905NRF905单片机PC从机1PCNRF905NRF905单片机主机温湿度温湿度从机2图2-1系统整体结构框图2.2系统的工作原理本设计中主机和从机之间是通过通过单片射频收发器nRF905完成互相通信的。每个从机都有唯一一个地址,主机通过轮流发送从机的地址来实现接收对应的从机的环境数据,并把参数通过串口实时显示在VB6.0企业版MSCom控件编写的界面上。从机接收主机发送来的地址,判断是否和自己的地址匹配,如果匹配则把采集到的环境参数发送给主机,再继续接收和判断主机发送来的地址。2.3课题实现的功能一、完成DS18B20、HM1500、LCD1602、单片射频收发器nFR905、串口和单片机的硬件连接;二、完成温度传感器DS18B20测量温度的子程序设计;三、完成HM1500湿度采集的子程序设计。四、完成将采集的温度值和湿度值送字符型液晶显示器LCD1602上显示的子程序设计;五、完成两个节点的单片射频收发器nFR905无线收发数据的子程序设计;六、完成将单片射频收发器nFR905接收的温度值和湿度值通过串口发送到PC机的子程序设计;七、完成PC机串行通信及数据处理显示程序的设计;八、完成主程序设计,将各子程序连起来。3系统硬件设计3.1器件的选用本系统设计的器件较多,包括主控芯片、温度传感器、湿度传感器、显示器及无线收发模块。各器件选择的余地也很广,所以慎重选择器件很重要,其直接影响到系统的整体性能和设计的最终结果。中央处理器的选用由于无线收发芯片nRF905提供SPI口并且工作电压为1.9~3.6V,因此选用有SPI接口功能的低功耗单片机。ATMEGA16L有工作于主机/从机模式的SPI串行接口,所以不需要进行软件模拟SPI口,可工作于低压状态,工作电压为2.7~5.5V。ATMEGA16L是Atmel公司的高性能、低功耗的8位AVR微处理器。先进的RISC结构,非易失性程序和数据存储器,16K字节的系统内可编程Flash,擦写寿命10,000次,512字节的EEPROM擦写寿命100,000次,1K字节的片内SRAM可以对锁定位进行编程以实现用户程序的加密。JTAG接口(与IEEE1149.1标准兼容),符合JTAG标准的边界扫描功能,支持扩展的片内调试功能,通过JTAG接口实现对Flash、EEPROM、熔丝位和锁定位的编程。两个具有独立预分频器和比较器功能的8位定时器/计数器,一个具有预分频器、比较功能和捕捉功能的16位定时器/计数器,具有独立振荡器的实时计数器RTC。四通道PWM,8路10位ADC8个单端通道,TQFP封装的7个差分通道,2个具有可编程增益(1x,10x,或200x)的差分通道。面向字节的两线接口,两个可编程的串行USART,可工作于主机/从机模式的SPI串行接口,具有独立片内振荡器的可编程看门狗定时器,片内模拟比较器。上电复位以及可编程的掉电检测,片内经过标定的RC振荡器,片内/片外中断源。6种睡眠模式,空闲模式、ADC噪声抑制模式、省电模式、掉电模式、Standby模式以及扩展的Standby模式。兼于以上优点,选用ATMEGA16L单片机为中央处理器。无线发射芯片的选用随着射频电子技术的发展,无线收发芯片的集成度、性能都大幅度提高,芯片的种类和数量比较多,性能也各有特色。目前,世界各大芯片制造商研制开发出了各种新型射频芯片,使短距离无线通信装置的设计开发趋于容易、便捷、周期短、成本低。生产此类芯片的厂家主要有Nordic、XEMICS、TI、Maxim、Chipcon等。此类产品收发合一,工作频率一般为国际通用的ISM频段,无需申请许可证,采用低发射功率、高接收灵敏度的设计,使用时对周围干扰很小,调制方式大多为ASK、FSK,传输速率为几K到几百Kbit/s,传输距离受环境影响,一般在几十米到数百米。选择无线收发芯片时,应考虑以下几个因素:一、芯片的数据传输是否需要进行曼彻斯特编码及传输速度;二、芯片所需的外围元件数量;三、功耗;四、发射功率;五、芯片的封装和管脚数。nRF905是挪威NordicVLSI公司推出的单片射频收发器,工作电压为1.9~3.6V,32引脚QFN封装(5×5mm),工作于433/868/915MHz三个ISM(工业、科学和医学)频道,频道之间的转换时间小于650us。nRF905由频率合成器、接收解调器、功率放大器、晶体振荡器和调制器组成,不需外加声表滤波器。ShockBurstTM工作模式,自动处理字头和CRC(循环冗余码校验),使用SPI接口与微控制器通信,配置非常方便。此外,其功耗非常低,以-10dBm的输出功率发射时电流只有11mA,工作于接收模式时的电流为12.5mA,内建空闲模式与关机模式,易于实现节能。nRF905适合点对点的数据传输,内置了CRC纠检错硬件电路和协议,提高了系统的可靠性,且不再需要用软件对传输数据进行差错控制编码,简化了软件编程,适合在工业现场使用。灵敏度高,数据传输速率为50Kbps,低功耗,体积小。本论文设计的数据采集系统通过无线收发模块传输现场采集数据,对数据传输的可靠性要求较高。综合考虑以上因素,采用nRF905为无线收发模块。温度传感器的选用随着温度传感器智能化、集成化技术的进步,数字式温度传感器也得到了快速发展,世界上许多公司推出了新型的数字温度传感器系列,这些产品的出现极大的丰富了设计工程师的选择对象。在如此众多的产品中选择出合适的器件,应该把握以下几点:外围电路应该尽量简单;测温的精度、分辨率要合适,以便减少不必要的电路和软件开发成本;温度传感器采用的总线负载能力如何,能否满足多点测温的需要;占用MCU的I/O引脚数情况如何,因为MCU的系统资源非常宝贵,输入通道有限,多点温度测量时,如果测量的点数超过了输入通道时,就要添加多路复用器,这将增加成本和开发时间,应尽量节约;与MCU的通信协议应尽量简单,温度测量的软件开发难度、成本要尽量小。DS18B20是美国Dallas半导体公司的新一代数字式温度传感器,它具有独特的单总线接口方式,即允许在一条信号线上挂接数十甚至上百个数字式传感器,从而使测温装置与各传感器的接口变得十分简单,克服了模拟式传感器与微机接口时需要的A/D转换器及其它复杂外围电路的缺点,而且,可以通过总线供电,由它组成的温度测控系统非常方便,而且成本低、体积小、可靠性高。DS18B20的测温范围。最高分辨率可达0.0625℃,由于每一个DS18B20出厂时都刻有唯一的一个序列号并存入其ROM中,因此CPU可用简单的通信协议就可以识别,从而节省了大量的引线和逻辑电路。一、适用于低速测控场合,测控对象越多越显出其优越性;二、性价比高,硬件施工、维修方便,抗干扰性能好;三、具有CRC校验功能,可靠性高;四、软件设计规范,系统简明直观,易于掌握。由于DS18B20独特的单总线接口方式在多点测温时有明显的优势,占用MCU的I/O引脚资源少,和MCU的通信协议比较简单,成本较低,传输距离远。所以,选用DS18B20做为温度测量的传感器。湿度传感器的选用目前市场上的湿度传感器湿度传感器,分为电阻式和电容式两种,产品的基本形式都为在基片涂覆感湿材料形成感湿膜。空气中的水蒸汽吸附于感湿材料后,元件的阻抗、介质常数发生很大的变化,从而制成湿敏元件。国内市场上出现了不少国内外湿度传感器产品,电容式湿敏元件较为多见,感湿材料种类主要为高分子聚合物,氯化锂和金属氧化物。电阻式湿度传感器与电容式相比,构造简单,比较容易实现大量生产与低价位。不必像电容式传感器一样要考虑引线间的容量,因此可以把传感器随意拉伸,设计自由度较大。特性由于是对数变化,如不进行对数转换等的处理,将不能得到线性特征。低湿范围由于电阻较高难以检出。另外容易受到干扰影响。电容式湿度传感器一般来说,可以检知从0%rh开始的低湿。电容值比较接近线性,不需要对数变化。温度特性与电阻式相比较小(0.05~0.1%rh/℃左右),在一般用途上不需要温度补偿。但是如果用引线延长传感器的话,电容值会变化,因此不适合延长传感器单体。还有组装进装置内的话,因为通过引线而改变位置比较困难,所以设计自由度较小。变化量比较小,但微小的电容变化会导致很大的误差。因此廉价的传感器偏差较大。综合以上因素,本设计选择了Humirel公司湿度传感器HM1500,它具有小尺寸,不受水浸影响,全互换性,高可靠性及长期稳定性,典型输出1-4V(对应0-100%,5VDC供电),极低的温度依赖性,良好的性线度等特点。显示器的选用液晶显示器(LCD)具有功耗低、体积小、重量轻、超薄、无辐射、低闪烁等许多其他显示器无法比拟的优点,最为重要的是LCD可实现很多字符组合的显示,人机界面相当友好,近年来被广泛用于单片机控制的智能仪器、仪表和低功耗电子产品中,故选用LCD。本设计选用LCD1602显示器,LCD1602字符型液晶显示采用与日立公司的HD44780兼容的LCD控制器构成的2*16字符型液晶显示模块。3.2主机的硬件设计根据上一节系统总体设计方案构想,系统的主机硬件包括单片机Atmega16L与nrf905通信的串行外设接口SPI及单片机Atmega16L与PC的通用同步和异步串行接收器和转发器USART,结构框图见图3-1。NRF905单片机MAX232PCNRF905单片机MAX232PC图3-1主机原理图串行外设接口SPI串行外设接口SPI允许ATMEGA16L和外设或其他AVR器件进行高速的同步数据传输。ATMEGA16LSPI的特点如下:(1)全双工,3线同步数据传输;(2)主机或从机操作;(3)LSB首先发送或MSB首先发送;(4)7种可编程的比特率;(5)传输结束中断标志;(6)写碰撞标志检测;(7)可以从闲置模式唤醒;(8)作为主机时具有倍速模式(CK/2)。系统包括两个移位寄存器和一个主机时钟发生器。通过将需要的从机的SS引脚拉低,主机启动一次通讯过程。主机和从机将需要发送的数据放入相应的移位寄存器。主机在SCK引脚上产生时钟脉冲以交换数据。主机的数据从主机的MOSI移出,从从机的MOSI移入;从机的数据从从机的MISO移出,从主机的MISO移入。主机通过将从机的SS拉高实现与从机的同步。SPI系统的发送方向只有一个缓冲器,而在接收方向有两个缓冲器。也就是说,在发送时一定要等到移位过程全部结束后才能对SPI数据寄存器执行写操作。而在接收数据时,需要在下一个字符移位过程结束之前通过访问SPI数据寄存器读取当前接收到的字符。否则第一个字节将丢失。工作于SPI从机模式时,控制逻辑对SCK引脚的输入信号进行采样。为了保证对时钟信号的正确采样,SPI时钟不能超过fosc/4。SPI使能后,MOSI、MISO、SCK和SS引脚的数据方向将自动进行配置,详见表3-1。表3-1SPI引脚重载单片射频收发器nRF90芯片结构nRF905片内集成了电源管理、晶体振荡器、低噪声放大器、频率合成器功率、放大器等模块,曼彻斯特编码/解码由片内硬件完成,无需用户对数据进行曼彻斯特编码,因此使用非常方便。nRF905的详细结构见图3-2。图3-2nRF905的详细结构图nRF905引脚介绍表3-2nRF905引脚管脚名称管脚功能说明1TRX_CE数字出入使能芯片发射或接收2PWR_UP数字输出芯片上电3uPCLK时钟输出由晶振震荡器分频的输出时钟4VDD电源电源(+3VDC)5VSS电源地(ov)6CD数字输出载波检测续表3-2管脚名称管脚功能说明7AM数字输出地址匹配8DR数字输出接收或发射数据完成9VSS电源地(ov)10MISOSPI接口SPI输出11MOSISPI接口SPI输入12SCKSPI时钟SPI时钟13CSNSPI使能SPI使能14XC1模拟输入晶振震荡器1脚/外部时钟输入脚15XC2模拟输出晶振震荡器2脚16VSS电源地(ov)17VDD电源电源(+3VDC)18VSS电源地(ov)19VDD_PA电源输出给nRF905功率放大器提供的+1.8v电源20ANT1射频输出天线接口121ANT2射频输出天线接口222VSS电源地(ov)23IREF模拟输入参考电流24VSS电源地(ov)25VDD电源电源(+3vDC)26VSS电源地(ov)27VSS电源地(ov)28VSS电源地(ov)29VSS电源地(ov)30VSS电源地(ov)31DVDD_1V2电源de藕和的低电压正数字电源输出32TX_EN数字输入TX_EN=“1”TX模式;TX_EN=“0”RX模式工作模式nRF905有两种工作模式和两种节能模式。两种工作模式分别ShockBurstTM接收模式和ShockBurstTM发送模式,两种节能模式分别是关机模式和空闲模式。nRF905的工作模式由TRX_CE、TX_EN和PWR_UP三个引脚决定,详见表3-3。表3-3nRF905的工作模式ShockBustTM模式与射频数据包有关的高速信号处理都在nRF905片内进行,数据速率由微控制器配置的SPI接口决定,数据在微控制器中低速处理,但在nRF905中高速发送,因此中间有很长时间的空闲,这很有利于节能。由于nRF905工作于ShockBurstTM模式,因此使用低速的微控制器也能得到很高的射频数据发射速率。在ShockBurstTM接收模式下,当一个包含正确地址和数据的数据包被接收到后,地址匹配(AM)和数据准备好(DR)两引脚通知微控制器。在ShockBurstTM发送模式,nRF905自动产生字头和CRC校验码,当发送过程完成后,数据准备好引脚通知微处理器数据发射完毕。由以上分析可知,nRF905的ShockBurstTM收发模式有利于节约存储器和微控制器资源,同时也减小了编写程序的时间。下面具体详细分析nRF905的发送流程和接收流程。一、发送流程
典型的nRF905发送流程分以下几步:(1)当微控制器有数据要发送时,通过SPI接口,按时序把接收机的地址和要发送的数据送传给nRF905,SPI接口的速率在通信协议和器件配置时确定;(2)微控制器置高TRX_CE和TX_EN,激发nRF905的ShockBurstTM发送模式;(3)nRF905的ShockBurstTM发送:1)射频寄存器自动开启;2)数据打包(加字头和CRC校验码);3)发送数据包;4)当数据发送完成,数据准备好引脚被置高。(5)AUTO_RETRAN被置高,nRF905不断重发,直到TRX_CE被置低;(6)当TRX_CE被置低,nRF905发送过程完成,自动进入空闲模式。ShockBurstTM工作模式保证,一旦发送数据的过程开始,无论TRX_EN和TX_EN引脚是高或低,发送过程都会被处理完。只有在前一个数据包被发送完毕,nRF905才能接受下一个发送数据包。二、接收流程(1)当TRX_CE为高、TX_EN为低时,nRF905进入ShockBurstTM接收模式;(2)650us后,nRF905不断监测,等待接收数据;(3)当nRF905检测到同一频段的载波时,载波检测引脚被置高;(4)当接收到一个相匹配的地址,地址匹配引脚被置高;(5)当一个正确的数据包接收完毕,nRF905自动移去字头、地址和CRC校验位,然后把数据准备好引脚置高;(6)微控制器把TRX_CE置低,nRF905进入空闲模式;(7)微控制器通过SPI口,以一定的速率把数据移到微控制器内;(8)当所有的数据接收完毕,nRF905把数据准备好引脚和地址匹配引脚置低;(9)nRF905此时可以进入ShockBurstTM接收模式、ShockBurstTM发送模式或关机模式。当正在接收一个数据包时,TRX_CE或TX_EN引脚的状态发生改变,nRF905立即把其工作模式改变,数据包则丢失。当微处理器接到地址匹配引脚的信号之后,其就知道nRF905正在接收数据包,其可以决定是让nRF905继续接收该数据包还是进入另一个工作模式。3单片机与nRF905的硬件连接原理图单片机与nRF905的接口电路很重要。nRF905内部有5个寄存器:状态寄存器、配置寄存器、发射地址寄存器、发射数据寄存器和接收数据寄存器。除了对寄存器读写外,还需对nRF905工作模式的切换进行控制。主机的单片机与nRF905的硬件连接图见图3-3。图3-3单片机与nRF905的硬件连接图(主机)详细电路图见附录2。通用同步和异步串行接收器和转发器USARTATMEGA16L单片机的通用同步和异步串行接收器和转发器(USART)是一个高度灵活的串行通讯设备。主要特点为:(1)全双工操作(独立的串行接收和发送寄存器);(2)异步或同步操作;(3)主机或从机提供时钟的同步操作;(4)高精度的波特率发生器;(5)支持5,6,7,8,或9个数据位和1个或2个停止位;(6)硬件支持的奇偶校验操作;(7)数据过速检测;(8)帧错误检测;(9)噪声滤波,包括错误的起始位检测,以及数字低通滤波器;(10)三个独立的中断:发送结束中断,发送数据寄存器空中断,以及接收结束中断;(11)多处理器通讯模式;(12)倍速异步通讯模式。USART的初始化进行通信之前首先要对USART进行初始化。初始化过程通常包括波特率的设定,帧结构的设定,以及根据需要使能接收器或发送器。对于中断驱动的USART操作,在初始化时首先要清零全局中断标志位(全局中断被屏蔽)。访问UBRRH/UCSRC寄存器UBRRH与寄存器UCSRC共用I/O地址。因此访问该地址时需注意以下问题。一、写访问当在该地址执行写访问时,USART寄存器选择位(URSEL)控制被写入的寄存器。若URSEL为0,对UBRRH值更新;若URSEL为1,对UCSRC设置更新。二、读访问对UBRRH或UCSRC寄存器的读访问则较为复杂。但在大多数应用中,基本不需要读这些寄存器。读访问由时序控制。一旦返回UBRRH寄存器内容则读I/O地址。若寄存器地址在前一个系统时钟周期中读入,当前时钟下对寄存器的读入将返回UCSRC内容中。注意,读UCSRC的时钟序列为自动工作。在读操作中的中断(例如禁止全局中断)必须人为控制。对UBRRH内容的读操作不是自动完成,且当前一条指令没有访问该寄存器地址时,该寄存器作为普通寄存器使用。3.3从机的硬件设计根据上一节系统总体设计方案构想,系统的从机硬件包括单片机Atmega16L与nrf905通信的串行外设接口SPI、显示器LCD1602、温度传感器DS18b20及湿度传感器HM1500,结构框图见图3-4。NRF905温度传感器DS18b20单片机LCD1602NRF905温度传感器DS18b20单片机LCD1602湿度传感器HM1500湿度传感器HM1500图3-4从机原理图串行外设接口SPI同上文的主机相同。3.3.2单片射频收发器nRF905同上文的主机相同,只是单片机与NRF905的硬件连接不同,从机的单片机与NRF905的硬件连接图见图3-5。图3-5单片机与nRF905的硬件连接图(从机)字符型液晶显示器LCD1602.1标准字符型液晶显示器LCD接口LCD1602字符型液晶显示器采用与日立公司的HD44780兼容的LCD控制器构成的2*16字符型液晶显示模块,是专用于显示数字、字母、符号,字符型LCD液晶显示模块对外提供统一的接口标准。字符型液晶显示模块接口引脚定义见表3-4。表3-4字符型液晶显示模块接口引脚定义引脚编号引脚名称引脚功能14~7D7~D0数据线6E片选信号,写数据控制,下降沿触发5R/W读/写方向控制信号,低电平为写入,高电平为读出4RS寄存器选择信号:RS=0:指令寄存器写入;忙标志读取;地址寄存器读取RS=1:数据寄存器读/写3V0驱动电压调节2VDD+5V1VSS地线15V--背光电压负端(GND)16V+背光电压正端(+5V)显示数据存储器(DDRAM)LCD控制器的指令系统规定,在发送待显示字符代码的指令之前,先要送DDRAM的地址,实际上是待显示的字符显示位置。若LCD为双行字符显示,每行40个显示位置,第一行地址为00H~27H;第二行地址为40H~67H。双行显示的DDRAM地址与显示位置的对应关系见表3-5。表3-5双行显示的DDRAM地址与显示位置的对应关系显示位置1234567……3940DDRAMLine100H01H02H03H04H05H06H……26H27H地址Line240H41H42H43H44H45H46H……66H67HLCD显示模块的控制指令HD44780的数据线可以使用8位方式(D7~D0),也可以使用4位方式(D4~D0),由工作方式设置命令中的“DL”(D4)位决定。使用4位方式时,写入(读取)数据分两次完成,先写入(读取)数据的高4位,接着写入(读取)数据的低4位。下面给出LCD控制命令的功能解释。读/写方式下的光标和显示模式设置命令:表3-6读/写方式下的光标和显示模式设置命令D7D6D5D4D3D2D1D0000001I/DSI/D:表示地址计数器(AC)的变化方向,即光标移动的方向。I/D=1:AC自动加1,光标右移一个字符。I/D=0:AC自动减1,光标左移一个字符。S:显示屏上画面向左或向右全部移动一个字符位。S=1,I/D=1:当写一个字符时,整屏显示左移。S=1,I/D=0:当写一个字符时,整屏显示右移。显示开关控制命令:表3-7显示开关控制命令D7D6D5D4D3D2D1D000001DCBD:当D=0时,显示关闭,DDRAM中数据保持不变。当D=1时,显示DDRAM中的数据。C:当C=1时,显示光标;C=0时,不显示光标。B:当B=1时,光标所在字符闪烁;B=0时,光标不显示。光标或显示屏移动命令见表3-8。表3-8光标或显示屏移动命令D7D6D5D4D3D2D1D00001S/CR/LXX具体含义如表3-9:表3-9光标命令的具体含义S/CR/L00光标左移,地址计数器减101光标右移,地址计数器加110显示屏左移,光标跟随显示屏移动11显示屏右移,光标跟随显示屏移动工作方式设置命令:表3-10工作方式设置命令D7D6D5D4D3D2D1D0001DLNFXXDL=0:数据线宽度为4位,DB7~DB4;DL=1:数据线宽度为8位。N=0:显示1行;N=1:显示2行;F=0:显示5×7点阵;F=1:显示5×10点阵。单片机与LCD1602的硬件连接原理图本设计选用ATMEGA16L的PC口和PA口的PA1、PA2端口,LCD1602采用8位数据线工作方式。ATMEGA16LPC口与LCD1602的8位数据线连接,ATMEGA16LPC口的PA1、PA2端口分别与LCD1602的使能端口、读\写选择端口、数据\命令选择端口连接。硬件连线原理图见图3-6,LCDl602的RW选择接地,详细原理图见附录2。图3-6单片机与LCD1602的硬件连接图温度传感器DS18BDS18B20的特点、结构及工作说明数字温度传感器DS18B20的测温范围为,精度为0.5℃,测量的温度值用9~12位数字表示,最大转换时间为750ms,温度超标报警的上、下限值,DS18B20的转换分辨率均可由用户设定,并能长期保存。利用Dallas的单总线控制协议,和单线控制信号在总线上来实现数据的读写。DS18B20的另一特点是在没有外部电源下操作的能力,电源由总线为高电平时DQ脚上的上拉电阻提供(寄生供电模式),此时脚接地。也可用传统方式供电,即将外部电源接在脚上即可。电压为3~5.5V。本设计中采用外部电源供电,电压3V。DS18B20测温原理图见图3-7。图中低温度系数晶振的振荡频率受温度影响很小,用来向计数器1提供固定频率的脉冲信号。高温度系数晶振的振荡频率受温度影响较大,随温度的变化而明显改变,其产生的信号作为计数器2的脉冲输入,用于控制闸门的关闭时间。初态时,计数器1和温度寄存器被预置在与-55℃相对应的一个基值上。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,在计数器2控制的闸门时间到达之前,如果计数器1的预置值减到0,则温度寄存器的值将作加1运算,与此同时,用于补偿和修正测温过程中非线性的斜率累加器将输出一个与温度变化相对应的计数值,作为计数器1的新预置值,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环,直到计数器2控制的闸门时间到达亦即计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。在默认的配置中,DS18B20的测温分辨率为,以12位有效数据表示,其中,高位的S表示符号位,其数据格式见表3-11所。本设计中测温分辨率为。比较器斜率累加器比较器斜率累加器预置预置预置预置+1=0计数器低温度+1=0计数器低温度系数振荡器温度寄存器温度寄存器=0计数器高温度系数振荡器=0计数器高温度系数振荡器停止停止图3-7DS18B20方框图表3-11数据格式低字节2^32^22^12^02^-12^-22^-32^-4高字节SSSSS2^62^52^DS18B20的数据处理DS18B20的高速暂存存储器由9个字节组成,其分配见表3-12,当温度转换命令发布后,经转换所得的温度值以2字节补码形式存放到高速暂存存储器的第0和第1个字节。单片机可通过单线接口读取到该数据,读取时低位在前,高位在后。表3-12字节分配温度低位温度高位THTL配置保留保留保留8位CRC表3-13DS18B20温度数据表表3-13所列是DS18B20温度采集转化后得到的12位数据,存储在DS18B20的两个8bit的RAM中,二进制的前5位是符号位,如果测的温度大于或等于0,这五位为0,只要将测得数值乘以0.0625即可得到实际温度;如果温度小于0,这五位为1,测的数值需要取反加1再乘以0.0625即可得到实际温度。单片机与DS18B20的硬件连接原理图单片机和DS18B20的硬件连接图见图3-8,DS18B20的单总线DQ与接单片机ATMEGA16L的PD0端口连接,另加一个上拉电阻。详细原理图见附录2。图3-8单片机和DS18B20的硬件连接图湿度传感器HM1500HM1500的特点、结构及工作说明HM1500为OEM客户提供了精确、可靠的测量方式。线性放大的电压输出可使传感器与控制器相连。无需避光,无需防静电,高湿后恢复时间短。HM1500具有以下突出优点:一、体积小二、不受水浸影响三、完全互换性四、可靠性高、长期稳定性好五、5VDC供电时0—100%RH对应1—4VDC输出六、55%RH时修正精度在±2%RH以内七、温度影响极小八、适于3~7V供电,比例于供电电压九、高湿后迅速恢复十、耐化学腐蚀十一、响应速度快HM1500模块有三条线引出,引脚定义见表3-14。表3-14HM1500引脚定义引线颜色定义W1白地W2蓝电源W3黄输出其参考输出电压见表3-15。表3-15输出电压参考RH(%)Vout(mV)RH(%)Vout(mV)10132555248015146560260520160065273025173570286030186075299035199080312540211085326045223590340550236095355HM1500的数据处理由于HM1500是线性放大的电压输出可使传感器,所以要通过AD转换单片机才可以读出湿度数值。本设计选择了Atmega16L内部自带的ADC为数模转换。用Atmega16L自带的ADC作为AD转换。这里只用它的端口PA0端口A做为A/D转换器的模拟输入端口,Atmega16L有一个10位的卓此逼近型ADC。ADC与一个8通道的模拟多路服用器连接,能对来自端口A的8路单端输入电压进行采样。单端电压输入以0V为基准。单次转换结果见式3.1。式(3.1)式中:——输入电压-——参考电压ADC——转换结果单片机与HM1500的硬件连接原理图单片机和HM1500的硬件连接图见图3-9,HM1500电压输出口与接单片机ATMEGA16L的PA0端口连接,详细原理图见附录2。图3-9单片机和HM1500的硬件连接图4系统软件设计4.1主机软件设计主程序的设计主机程序开始后先进行初始化设置,初始化的内容包括nRF905初始化和串口初始化。然后置nRF905为发送状态,轮流发送多个从机的地址,发送一个地址后改为接收状态,nRF905判断是否有接收数据,没有数据接收继续查询,有则接收对应地址从机通过nRF905发送回来的环境数据,单片机将接收的数据通过串口发送给PC机,显示在VB编写的界面上,直到一组数据接收完毕。继续轮流发送从机的地址。主机程序流程图见图4-1。其主要程序如下:voidmain(){spi_init();//spi初始化uart_init(9600);//串口初始化波特率为9600nrf905_Init();//nrf905初始化while(1){nrf905_SendData(Address_1);发送节点一地址 _delay_ms(20); RfRecvProc();//接收节点一数据并处理 _delay_ms(20); nrf905_SendData(Address_2);发送节点二地址 _delay_ms(20); RfRecvProc();//接收节点二数据并处理 _delay_ms(20);}}开始开始NNRF905初始化串口初始化串口初始化置NRF905为发送状态置NRF905为发送状态置NRF905为发送状态置NRF905为发送状态调用ShockBust发送子程序调用ShockBust发送子程序调用ShockBust发送子程序调用ShockBust发送子程序发送节点2地址发送节点1地址发送节点2地址发送节点1地址置NRF905为接收状态置NRF905为接收状态置NRF905为接收状态置NRF905为接收状态NN有数据接收?有数据接收?NN有数据接收?有数据接收?YYY调用ShockBust接收子程序Y调用ShockBust接收子程序调用ShockBust接收子程序调用ShockBust接收子程序N接收完成?N接收完成?N接收完成?N接收完成?YYYY送PC机显示送PC机显示送PC机显示送PC机显示图4-1主机程序流程图4.1.2SPI接口软件的设计本设计中SPI配置为主机模式,nRF905为从设备。ATMEGA16L的SPI工作模式应设置为模式0。ATMEGA16L与nRF905同时进行双向数据传输。ATMEGA16L配置为SPI主机时,SPI接口不自动控制SS引脚,由用户软件来控制。ATMEGA16L通过将从机的CSN引脚置低实现与从机的同步。SPI时钟由写入到SPI发送缓冲寄存器的数据启动,SPIMISO引脚上的数据发送次序由寄存器SPCR的DORD位控制,置位时数据的LSB(最低位)首先发送,否则数据的MSB(最高位)首先发送。我们选择先发送MSB,同时接收到的数据传送到接收缓冲寄存器,CPU进行右对齐从接收缓冲器中读取接收到的数据。应该注意,当需要从nRF905中读取多个数据时,即使nRF905并不需要ATMEGA16L串行输出的数据,每读取一个数据前都要向SPI发送缓冲器写一个数据以启动SPI接口时钟。以下是SPI口初始化程序:voidspi_init(void)//spi初始化{ PORTB|=(1<<MOSI)|(0<<MISO)|(1<<SCK)|(1<<SS);//设置MOSI和SCK、SS为输出,其他为输入 DDRB|=(1<<MOSI)|(1<<SCK)|(1<<SS); uchartemp; SPCR=0x51;//SPI允许,主机模式,MSB,极性方式00,1/16系统时钟速率 SPSR=0x00;//setupSPI temp=SPSR;//!!! temp=SPDR;//清空SPI,和中断标志,使SPI空闲}具体程序见附录1。4.1.3nRF905软件的设计由于ATMEGA16L单片机自身带有SPI硬件通信接口可以直接和nRF905的SPI接口相连。根据读写时序编写对应的程序如下:ucharnrf905_SpiRW(ucharval)//spi读写程序{ uchartemp;SPDR=val; while((SPSR&(1<<SPIF))==0); temp=SPDR; returntemp;} }NRF905主要程序如下:voidnrf905_Init()//初始化nrf905voidnrf905_SetTxAddr(Tx_Address)//写Tx地址voidnrf905_SetData()//写Tx数据voidnrf905_SendData(Tx_Address)//发送TxBuf中的数据voidnrf905_ReadData()//读出接收到的数据voidRfRecvProc(void)//接收处理详细程序见附录1。4.1.4串口软件的设计一、初始化初始化操作包括波特率设置、数据格式和UCSRB寄存器设置。USART的波特率寄存器和降序计数器相连接,一起构成可编程的预分频器或波特率发生器。通过设置UCSRB寄存器,设置数据格式为8位数据位和1位停止位。通过设置寄存器,使能串口发送和接收,并响应接收完成中断。二、数据发送和接收数据发送采用查询方式。置位UCSRB寄存器的发送允许位TXEN将使能的数据发送,将需要发送的数据加载到发送缓冲区将启动数据发送,加载过程为CPU对USART寄存器的写操作。发送数据时,按照帧格式在所需发送的数据前加上帧头、帧长、帧标志,组帧发送。数据接收采用中断方式。置位UCSRB寄存器的接收允许位TXEN将启动USART的数据接收器,通过读取UDR寄存器就可以获得接收缓冲器的内容。USART主要程序函数如下:voiduart_init(uintbaud)//初始化voiduart_sendB(uchardata)//发送字符voiduart_sendStr(char*s)//发送字符串程序流程图见图4-2,具体程序见附录1。发送数据发送数据返回发送结束?NY开始图4-2单片机的串口通信子程序流程图4.2从机软件设计4.2.1主程序的设计从机程序开始后首先进行初始化设置。初始化的内容包括nRF905初始化、LCD1602的初始化、DS18B20初始化。然后调用DS18B20温度采集子程序,数据处理后将采集的温度值送LCD1602显示并通过nRF905发送给主机,如此循环往复。从机程序流程图见图4-3。其程序如下:intmain(void){ LCD_init(); //初始化显示ADC_init();//AD初始化Init_DS18b20(); //ds18b20初始化spi_init(); nrf905_Init(); LCD_write_string(0,0,"T="); LCD_write_string(0,1,"H="); while(1) { ReadTemp();//开启温度采集程序temp_to_str();//温度数据转换成液晶字符 ad_do(); //开启湿度转换 LCD_write_string(4,0,TempBuffer); _delay_us(20); LCD_write_string(4,1,ad); _delay_ms(1);RecvProc();//接收发送处理 }}开始开始DS18b20初始化DS18b20初始化HM1500初始化HM1500初始化LCD1602初始化LCD1602初始化NRF905初始化NRF905初始化调用DS18b20子程序调用DS18b20子程序调用HM1500子程序调用HM1500子程序送LCD1602显示送LCD1602显示置NRF905为接收状态置NRF905为接收状态N地址正确?N地址正确?YY置NRF905为发送状态置NRF905为发送状态调用ShockBust发送子程序调用ShockBust发送子程序图4-3从机程序流程图4.2.2SPI接口软件设计同上文的主机SPI接口软件设计相同。4.2.3nRF905软件设计同上文的主机NRF905软件设计相同。4.2.4LCD1602软件设计为了方便读/写控制,在程序中作了如下定义#defineRS_SETPORTA&=~(1<<1)//拉高数据/命令选择。#defineRS_CLRPORTA&=~(1<<1)//拉低数据/命令选择。#defineEN_SETPORTA&=~(1<<2)//拉高使能信号选择。#defineEN_CLRPORTA&=~(1<<2)//拉低使能信号选择。此外,用到每个功能模块函数已在程序中定义,如下:voidLCD_write_command(unsignedcharcommand)//向Lcd发送写命令程序voidLCD_write_data(unsignedchardata)//向Lcd发送写数据程序voidLCD_set_xy(unsignedcharx,unsignedchary)//写地址函数voidLCD_write_char(unsignedcharX,unsignedcharY,unsignedchardata)//指定地址写字符voidLCD_write_string(unsignedcharX,unsignedcharY,unsignedchar*s)//指定地点写字符串voidLCD_init(void)//液晶初始化程序流程图见图4-4,具体程序见附录1。LCD初始化LCD初始化LCD清屏LCD清屏显示字符串显示字符串返回返回图4-4LCD1602程序流程图4.2.5DS18b20软件设计首先DS18B20初始化,接着从机检测DS18B20是否存在,如存在则跳过DS18B20的ROM,因为本程序中只接一个DS18B20,故不需要读DS18B20的序列号和匹配DS18B20。如不存在继续检测。跳过ROM后调用温度转换函数,然后读温度数据,读完温度数据后处理温度数据,最后输出温度数据。程序流程图见图4-5。初始化初始化检测DS18B20存在?转换温度读温度数据输出数据返回跳过ROM温度数据处理NY图4-5DS18B20采集温度流程图其主要程序中的主要函数如下:Init_DS18b20(void)//DS18B20初始化voidDS18b20_write_byte(unsignedchardat)//写18b20温度uint8_tDS18b20_read_byte(void)//读DS18b20温度voidReadTemp(void)//读取DS18b20当前温度voidtemp_to_str()//温度数据转换成液晶字符显示详细程序见附录1。4.2.6HM1500软件设计一、初始化初始化操作包括通道的选择、数据的对齐方式的设置、电压基准的设置、预分频设置以及控制和状态寄存器的初始化。其中通道选择的是单通道通道0,参考电压选择的是AREF为基准电压,转换结果右对齐。二、数据处理先读取低位数据,把它存在一个申明好的变量中,再读取高位变量,通过处理后加上低位数据即可。得到的结果是一个十六位的数,还要通过处理才可以得到我们需要的十进制的数。其主要程序函数如下:voidADC_init(void)//AD初始化unsignedintmega16_ad()//读取AD转换值函数voidad_do()//数据处理程序流程图见图4-6。结束 开始转换数据转换完成?结束开始转换数据转换完成?处理数据NY图4-6ADC流程图5PC机通信及数据处理显示程序设计开发环境基于VB6.0企业版,利用MScomm控件接收单片机发送的数据,完成接收数据的显示并通过Access写入数据库。5.1VB6.0特点VisualBasic6.0的主要功能与特点:一、易学易用的集成开发环境VB6.0为用户设计界面、编写代码、调试程序、编译程序和制作应用程序安装盘等提供了友好的集成开发环境。二、可视化上设计平台采用传统的程序设计语言编程时,一般需要通过编写程序来设计应用程序的界面(如界面的外观、位置等),在设计过程中看不见界面的实际效果。而在VB6.0中,采用面向对象程序设计方法(Object-OrientedProgramming),把程序和数据封装起来作为一个对象,每个对象都是可视的。程序员在界面设计的时候可以直接用VB6.0的工具箱在屏幕上“画”出窗口、菜单、命令按键等不同类型的对象,并为每个对象设置属性。程序员仅需要对要完成事件过程的对象进行编写代码,因而程序设计的效率可大大提高。三、事件驱动的编程机制面向过程的程序是由一个主程序和个子程序及函数组成的,程序运行时总是先从主程序开始,由主程序调用若干个子程序和函数,程序员在编程时必须事先确定整个程序的执行顺序。而VB6.0事件驱动的编程是针对用户触发某个对象的相关事件进行编码,从而达到处理、运算目的。每个事件都可以驱动一段程序的运行,程序员只要编写响应用户动作的代码,各个动作之间不一定有联系。这样的应用程序代码短,比较容易编写与维护。四、结构化的程序设计语言VB6.0具有丰富的数据类型,众多的内部函数,是模块化、结构化程序设计语言,结构清晰,简单容易学习。五、强大的数据库功能VB6.0利用数据控件可以访问Access;Foxpro等多种数据库系统,也可以访问Excel,Lotus1_2_3等多种电子表格。5.2MSComm控件串口通讯作为一种古老而又灵活的通讯方式,被广泛地应用于PC机间的通讯以及PC机和单片机之间的通讯之中。
提到串口通讯的编程,人们往往立刻想到C、汇编等对系统底层操作支持较好的编程语言以及大串繁琐的代码。
实际上,只要我们借助相关ActiveX控件的帮助,即使是在底层操作一向不被人看好的VB中,一样能够实现串口通讯,甚至其实现方法和C、汇编相比,要更加快捷方便。在Visual
Basic中有一个名为Microsoft
Communication
Control(简称MSComm)的通讯控件。我们只要通过对此控件的属性和事件进行相应编程操作,就可以轻松地实现串口通讯。5.2.1MSComm控件的主要属性、事件
一、MSComm的属性由于MSComm控件属性很多,在此仅介绍与实现串口通讯密切相关的核心属性。Commport:设置通讯所占用的串口号。如设成1(默认值),表示对Com1进行操作。Setting:对串口通讯的相关参数。包括串口通讯的比特率,奇偶校验,数据位长度、停止位等。其默认值
是“9600,N,8,1”,表示串口比特率是9600bit/s,不作奇偶校验,8位数据位,1个停止位。Portopen:设置串口状态,值为True时打开串口,值为False时关闭串口。Input:从输入寄存器读取数据,返回值为从串口读取的数据内容,同时输入寄存器将被清空。Ouput:发送数据到输出寄存器。InBufferCount:设置输入寄存器所存储的字符数,当将其值设为0时,则输入寄存器将被清空。InputMode:设置从输入寄存器中读取数据的形式。若值为0,则表示以文本形式读取;值为1,则表示以二进制形式读取。OutBufferCount:设置输出寄存器所存储的字符数,当将其值设为0时,则输出寄存器将被清空。RThreshold:设置在MSComm控件设置CommEvent属性为comEvReceive并产生OnComm事件之前要接受的字符数。CommEvent属性:返回最近的通讯事件或错误。通过对它具体属性值的查询,我们就可以获得通讯事件和通讯错误的完整信息。当其值是comEvReceive时表示接收到数据。二、MSComm的事件除了公共事件之外,MSComm只有一个OnComm事件。当CommEvent属性值变化时将发生OnComm事件,指示发生一个通讯事件或错误。当我们设置Rtheshold属性值为0时,将使得捕获comEvReceive事件无效。5.3VB程序设计5.3.1程序详细设计VB程序详细设计请见附录1。5.3.2系统界面系统界面见图5-1。图5-1PC机接收温度值软件界面6调试6.1液晶显示器LCD1602设计过程中遇到的问题既解决方法一、LCD不能正常显示经过对程序的调试和硬件电路的检查,问题有如下几个:(1)对单片机延时不熟悉,延时程序错误;(2)LCD1602背光设置不合适,字体看不清。解决方法如下:(1)查看ATMEGA16L相关资料,将资料与电路板相对照,熟悉芯片上每一个针脚的名称,熟悉针脚的用法;(2)编写小程序如发光二极管闪亮、跑马灯等,利用AVRStudio进行程序的编辑、编译、连接、调试,然后将HEX文件下载到单片机。二、LCD显示器显示的字符看不清楚经过硬件电路的检查,问题有如下:LCD对比度调节端电压没调好。解决方法如下:在LCD对比度调节端接一个10K的电位器,可在运行时调节背光到合适的亮度。6.2串口设计过程中遇到的问题既解决方法一、串口不能正常通信,通过检查电路和程序发现问题如下:(1)电路RS232芯片焊接错误;(2)程序编写不正确,比如波特率设置错误。解决方法如下:(1)重新焊接电路;(2)仔细
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度解除厂房租赁合同与知识产权归属协议
- 二零二五年度幼师实习实践项目合作协议
- 二零二五年度房屋租赁合同租赁物租赁期限续约管理补充协议
- 二零二五年度文化艺术加盟合作协议
- 2025浙江宁波市象山县水务集团有限公司第一期招聘8人笔试参考题库附带答案详解
- 急救知识培训课件下载
- 交通监控系统知到智慧树章节测试课后答案2024年秋山东交通学院
- 信贷业务员知识培训课件
- 装修运营知识培训课件
- 2025年上半年全国市长研修学院(住房和城乡建设部干部学院)招聘拟聘人员易考易错模拟试题(共500题)试卷后附参考答案
- 2025年湖南理工职业技术学院单招职业技能测试题库一套
- 2025年专利权侵权和解协议书范本
- 2024中考百日誓师大会动员讲话稿
- 2025年中国广州轨道交通行业市场全景评估及投资前景展望报告
- 2025年中国电力中电华创电力技术研究有限公司招聘笔试参考题库附带答案详解
- 教职工开学安全第一课培训
- 2024-2025学年北京西城区八年级初二(上)期末英语试卷(含答案)
- 安徽省芜湖市2024-2025学年第一学期期末考试七年级语文试卷(含答案)
- 《家庭护士》课件
- 2024年社区工作者考试时事政治模拟题及答案
- 物业服务行业礼仪培训
评论
0/150
提交评论