课程设计说明书单片机原理与接口技术.doc_第1页
课程设计说明书单片机原理与接口技术.doc_第2页
课程设计说明书单片机原理与接口技术.doc_第3页
课程设计说明书单片机原理与接口技术.doc_第4页
课程设计说明书单片机原理与接口技术.doc_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

盐城工学院本科生毕业设计说明书(2014)课程设计说明书单片机原理与接口技术专业建筑电气与智能化学生姓名祁少淦班级bd电建101学号1020602121指导教师吴冬春完成日期2014年 1 月 17日1盐城工学院单片机课程设计说明书(2014)目 录前言一 理论部分11课题要求与内容12系统方案设计13系统硬件的设计23.1芯片介绍23.1.1at89c52单片机23.1.2sht10温湿度采集器63.2 lcd1602液晶屏123.3 5v电源的设计174系统软件设计18二 实践部分201系统硬件原理简介212系统硬件调试中出现的问题及解决措施232.1系统硬件调试中的问题232.2系统硬件调试中的解决措施253系统软件253.1软件设计263.2软件调试中出现的问题及解决措施26三 结束语和参考文献27 1结束语27 2 参考文献27 四 附录28参考程序清单:设计图纸:元器件清单:前言 随着电子技术的发展,给人们的生活带来了根本性的变化,如果说微型计算机的出现使现代的科学研究得到了质的飞跃,那么可编程控制器的出现则是给现代工业控制测控领域带来了一次新的革命。在现代社会中,温度控制不仅应用在工厂生产方面,其作用也体现到了各个方面。 随着人们生活质量的提高,酒店厂房及家庭生活中都会见到温度控制的影子,温度控制将更好的服务于社会,目前,单片机控制器在从生活工具到工业应用的各个领域,例如生活的电梯工业生产中的现场仪表数控车床等。尤其是用单片机控制器改造落后的设备具有性价比高提高设备的使用寿命提高设备的自动化程度的特点。现代工业设计工程建设及日产生活中常常需要用到温度控制,早期温度控制主要应用于工厂中,例如钢铁的水溶温度,不同等级的钢铁要通过不同温度的铁水来实现,这样就可能有效的利用温度控制来掌握所需要的产品了。 随着社会的发展,人们对食品温度的控制要求也越来越高,对于低温冷藏车的温度控制也就相应的不断提高,而我设计的温湿度测量就是为了达到这样的温度控制要求而进行设计的。我所采用的控制芯片为at89c52,此芯片功能强大,能够满足设计要求。通过对电路的设计,对芯片的外围扩展,来达到对温度和湿度的检测。由于温度与湿度不管是从物理量本身还是在实际人们的生活中都有着密切的关系,所以温湿度一体的传感器就会相应产生。 sht10与单片机之间能采用简单的单总线进行通信,仅仅需要一个i/o口。操作简单,sht10传感器读出来的温度和湿度值。 一 理论部分基于sht10温湿度测量显示电路设计 1.课题要求与内容 温湿度传感器在当今的社会,有很多地方在运用,我们的生活已离不开它,通过它來知道大气温度与湿度。在温湿度测量技术不断发展完善的今天,温湿度传感器也正在朝集成化、智能化、系统化方向发展。此文介绍了一种基于sht10温湿度计的设计原理,详细说明了温湿度计的电路结构、sht10数据传输格式、温度、湿度数据采集软件设计。通过硬件电路设计和软件程序设计并实施实验的数字式温湿度计具有智能化、高精度、高可靠性等优势。设计目的: (1)学习i/o口模拟串口iic接口方法; (2)学习延时子程序的编写; (3)学习lcd的液晶显示。设计要求: 在单片机最小系统的基础上扩展一片sht10集成传感器,测量环境 的温度湿度并通过lcd液晶显示测量值。2. 系统方案设计本次课程设计核心部件为at89c52,并以at89c52单片机系统为核心来对温度、湿度进行实时采集。各检测单元能独立完成各自功能,并根据主控机的指令对温湿度进行实时采集。主控机负责控制指令的发送,并控制各个检测单元进行温度采集,收集测量数据,同时对测量结果进行整理和显示。其中包括单片机,温度检测,湿度监测和显示,系统软件等部分的设计。单片机温湿度测量系统,除单片机外,最重要的器件之一就是传感器。对于温湿度测量来说要使用温湿度传感器。这些温湿度传感器将温湿度转变为电量,被测温湿度变化引起相应电量变化。单片机不能直接读取这种电量,需要与传感器相适应的信号调理电路,将这种电量先转换为电压量,如温度变化引起热敏电阻的电阻值的电阻值变化转变为电压变化,再由a/d转换电路将电压变化转换为十六进制数供单片机读取。典型温湿度测量系统如图1所示。 图1为系典型温湿度测量系统 本设计由信号采集、信号分析和信号处理三个部分组成。(1) 信号采集:由温度传感器、模块湿度传感器和单片机最小系统模块组成;(2) 信号分析:由单片机at89c52组成;(3) 信号处理:由lcd动态液晶显示屏显示测量值。 图2为系统方框图3. 系统硬件的设计3.1.芯片介绍3.1.1.at89c52单片机at89c52是51系列单片机的一个型号,它是atmel公司生产的。at89c52是一个低电压,高性能cmos 8位单片机,片内含8k bytes的可反复擦写的flash只读程序存储器和256 bytes的随机存取数据存储器(ram),器件采用atmel公司的高密度、非易失性存储技术生产,兼容标准mcs-51指令系统,片内置通用8位中央处理器和flash存储单元,功能强大的at89c52单片机可为您提供许多较复杂系统控制应用场合。 图3为at89c52引脚图at89c52有40个引脚,32个外部双向输入/输出(i/o)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,at89c52可以按照常规方法进行编程,但不可以在线编程(s系列的才支持在线编程)。其将通用的微处理器和flash存储器结合在一起,特别是可反复擦写的flash存储器可有效地降低开发成本。主要功能特性:1、兼容mcs51指令系统 2、8k可反复擦写(大于1000次)flash rom; 3、32个双向i/o口; 4、256x8bit内部ram; 5、3个16位可编程定时/计数器中断; 6、时钟频率0-24mhz; 7、2个串行中断,可编程uart串行通道; 8、2个外部中断源,共8个中断源; 9、2个读写中断口线,3级加密位; 10、低功耗空闲和掉电模式,软件设置睡眠和唤醒功能; 11、有pdip、pqfp及plcc等几种封装形式,以适应不同产品需求。at89c52p为40 脚双列直插封装的8 位通用微处理器,采用工业标准的c51内核,在内部功能及管脚排布上与通用的8xc52 相同,其主要用于会聚调整时的功能控制。功能包括对会聚主ic 内部寄存器、数据ram及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号ir的接收解码及与主板cpu通信等。主要管脚有:xtal1(19 脚)和xtal2(18 脚)为振荡器输入输出端口,外接12mhz 晶振。rst/vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。vcc(40 脚)和vss(20 脚)为供电端口,分别接+5v电源的正负端。p0p3 为可编程通用i/o 脚,其功能用途由软件定义,在本设计中,p0 端口(3239 脚)被定义为n1 功能控制端口,分别与n1的相应功能管脚相连接,13 脚定义为ir输入端,10 脚和11脚定义为i2c总线控制端口,分别连接n1的sdas(18脚)和scls(19脚)端口,12 脚、27 脚及28 脚定义为握手信号功能端口,连接主板cpu 的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。p0 口p0 口是一组8 位漏极开路型双向i/o 口, 也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8 个ttl逻辑门电路,对端口p0 写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8 位)和数据总线复用,在访问期间激活内部上拉电阻。在flash 编程时,p0 口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。p1 口p1 是一个带内部上拉电阻的8 位双向i/o 口, p1 的输出缓冲级可驱动(吸收或输出电流)4 个ttl 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(iil)。与at89c51 不同之处是,p1.0 和p1.1 还可分别作为定时/计数器2 的外部计数输入(p1.0/t2)和输入(p1.1/t2ex),参见表1。flash 编程和程序校验期间,p1 接收低8 位地址。表.p1.0和p1.1的第二功能。表1为at89c52的p1.0和p2.0的其它用途引脚号功能特性p1.0t2,时钟输出p1.1t2ex(定时/计数器2) p2 口 p2 是一个带有内部上拉电阻的8 位双向i/o 口,p2 的输出缓冲级可驱动(吸收或输出电流)4 个ttl 逻辑门电路。对端口p2 写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(iil)。在访问外部程序存储器或16 位地址的外部数据存储器(例如执行movx dptr 指令)时,p2 口送出高8 位地址数据。在访问8 位地址的外部数据存储器(如执行movx ri 指令)时,p2 口输出p2 锁存器的内容。flash 编程或校验时,p2亦接收高位地址和一些控制信号。p3 口p3 口是一组带有内部上拉电阻的8 位双向i/o 口。p3 口输出缓冲级可驱动(吸收或输出电流)4 个ttl逻辑门电路。对p3 口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的p3 口将用上拉电阻输出电流(iil)。p3 口除了作为一般的i/o 口线外,更重要的用途是它的第二功能p3口还接收一些用于flash 闪速存储器编程和程序校验的控制信号。rst复位输入。当振荡器工作时,rst引脚出现两个机器周期以上高电平将使单片机复位。ale/prog当访问外部程序存储器或数据存储器时,ale(地址锁存允许)输出脉冲用于锁存地址的低8 位字节。一般情况下,ale 仍以时钟振荡频率的1/6 输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ale 脉冲。对flash 存储器编程期间,该引脚还用于输入编程脉冲(prog)。如有必要,可通过对特殊功能寄存器(sfr)区中的8eh 单元的d0 位置位,可禁止ale 操作。该位置位后,只有一条movx 和movc指令才能将ale 激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ale 禁止位无效。psen程序储存允许(psen)输出是外部程序存储器的读选通信号,当at89c52 由外部程序存储器取指令(或数据)时,每个机器周期两次psen 有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次psen信号。ea/vpp外部访问允许。欲使cpu 仅访问外部程序存储器(地址为0000hffffh),ea 端必须保持低电平(接地)。需注意的是:如果加密位lb1 被编程,复位时内部会锁存ea端状态。如ea端为高电平(接vcc端),cpu 则执行内部程序存储器中的指令。flash 存储器编程时,该引脚加上+12v 的编程允许电源vpp,当然这必须是该器件是使用12v 编程电压vpp。xtal1振荡器反相放大器的及内部时钟发生器的输入端。xtal2振荡器反相放大器的输出端。特殊功能寄存器在at89c52 片内存储器中,80h-ffh 共128 个单元为特殊功能寄存器(sfe),sfr 的地址空间映象如表2 所示。并非所有的地址都被定义,从80hffh 共128 个字节只有一部分被定义,还有相当一部分没有定义。对没有定义的单元读写将是无效的,读出的数值将不确定,而写入的数据也将丢失。不应将数据“1”写入未定义的单元,由于这些单元在将来的产品中可能赋予新的功能,在这种情况下,复位后这些单元数值总是“0”。at89c52除了与at89c51所有的定时/计数器0 和定时/计数器1 外,还增加了一个定时/计数器2。定时/计数器2 的控制和状态位位于t2con,t2mod,寄存器对(rcao2h、rcap2l)是定时器2 在16 位捕获方式或16 位自动重装载方式下的捕获/自动重装载寄存器。数据存储器at89c52 有256 个字节的内部ram,80h-ffh 高128 个字节与特殊功能寄存器(sfr)地址是重叠的,也就是高128字节的ram 和特殊功能寄存器的地址是相同的,但物理上它们是分开的。当一条指令访问7fh 以上的内部地址单元时,指令中使用的寻址方式是不同的,也即寻址方式决定是访问高128 字节ram 还是访问特殊功能寄存器。如果指令是直接寻址方式则为访问特殊功能寄存器。定时器2定时器2 是一个16 位定时/计数器。它既可当定时器使用,也可作为外部事件计数器使用,其工作方式由特殊功能寄存器t2con(如表3)的c/t2 位选择。定时器2 有三种工作方式:捕获方式,自动重装载(向上或向下计数)方式和波特率发生器方式,工作方式由t2con 的控制位来选择。定时器2 由两个8 位寄存器th2 和tl2 组成,在定时器工作方式中,每个机器周期tl2 寄存器的值加1,由于一个机器周期由12 个振荡时钟构成,因此,计数速率为振荡频率的1/12。在计数工作方式时,当t2 引脚上外部输入信号产生由1 至0 的下降沿时,寄存器的值加1,在这种工作方式下,每个机器周期的5sp2 期间,对外部输入进行采样。若在第一个机器周期中采到的值为1,而在下一个机器周期中采到的值为0,则在紧跟着的下一个周期的s3p1 期间寄存器加1。由于识别1 至0 的跳变需要2 个机器周期(24 个振荡周期),因此,最高计数速率为振荡频率的1/24。为确保采样的正确性,要求输入的电平在变化前至少保持一个完整周期的时间,以保证输入信号至少被采样一次。flash存储器的编程at89c52单片机内部有8k字节的flash perom,这个flash 存储阵列出厂时已处于擦除状态(即所有存储单元的内容均为ffh),用户随时可对其进行编程。编程接口可接收高电压(+12v)或低电压(vcc)的允许编程信号。低电压编程模式适合于用户在线编程系统,而高电压编程模式可与通用eprom 编程器兼容。at89c52 单片机中,有些属于低电压编程方式,而有些则是高电压编程方式,用户可从芯片上的型号和读取芯片内的签名字节获得该信息。at89c52 的程序存储器阵列是采用字节写入方式编程的,每次写入一个字节,要对整个芯片内的perom 程序存储器写入一个非空字节,必须使用片擦除的方式将整个存储器的内容清除。3.1.2.sht10温湿度采集器sht10 属于sensirion温湿度传感器家族中的贴片封装系列。传感器将传感元件和信号处理电路集成在一块微型电路板上,输出完全标定的数字信号。传感器采用专利的cmosens技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电容性聚合体测湿敏感元件、一个用能隙材料制成的测温元件,并在同一芯片上,与14 位的a/d 转换器以及串行接口电路实现无缝连接。因此,该产品具有品质卓越、响应迅速、抗干扰能力强、性价比高等优点。每个传感器芯片都在极为精确的湿度腔室中进行标定,校准系数以程序形式储存在otp 内存中,用于内部的信号准。两线制的串行接口与内部的电压调整,使外围系统集成变得快速而简单。微小的体积、极低的功耗,使sht10成为各类应用的首选。传感器芯片此为sht10-v4。sht10-v4 是第四代硅传感芯片,除了湿度、温度敏感元件以外,还包括一个放大器,a/d 转换器,otp 内存和数字接口。第四代传感器在其顶部印有产品批次号,以字母及数字表示,如“a5z”,见图4。 图4为sht10 传感器尺寸(1mm=0.039inch) 外部接口:1:gnd, 2: data, 3: sck, 4: vdd传感器性能(1) 相对湿度 图5为25时三种型号传感器的相对湿度最大误差 1)输出相对湿度输出转换公式为: rhlinear =c1+c2.so(rh)+c3.so(rh)2(%rh) 其中,rhlinear为25时相对湿度的线性值,so(rh)为传感器输出的 相对湿度的数值,c1,c2,c3为系数。 2)当测量温度与25相差较大时,则需要考虑传感器的温度系数:t=d1+d2.so(t) 其中,t为实际温度,so(t)为传感器输出的温度数值,d1、d2为系数。(2) 温度图6为三种型号传感器的温度最大误差 电气特性 表2为sht10的电气参数 接口定义 表3为sht10引脚分配,nc保持悬空 (1)电源引脚 (vdd, gnd)sht10的供电电压范围为2.4-5.5v, 建议供电电压为3.3v。在电源引脚(vdd,gnd)之间须加一个100nf的电容,用以去耦滤波。见图7。sht10 的串行接口,在传感器信号的读取及电源损耗方面,都做了优化处理;传感器不能按照i2c协议编址,但是,如果i2c 总线上没有挂接别的元件,传感器可以连接到i2c 总线上,但单片机必须传感器的协议工作。图7为典型应用电路,包括上拉电阻rp和vdd 与gnd之间的去藕电容 (2) 串行时钟输入(sck)sck 用于微处理器与sht1x 之间的通讯同步。由于接口包含了完全静态逻辑,因而不存在最小sck频率。 (3) 串行数据 (data) data引脚为三态结构,用于读取传感器数据 . 当向传感器发送命令时,data 在sck上升沿有效且在sck 高电平时必须保持稳定。data在sck下降沿之后改变。为确保通讯安全,data的有效时间在sck上升沿之前和下降沿之后应该分别延长至tus and tho 参见图8。 当从传感器读取数据时,data tv在sck变低以后有效,且维持到下一个sck的下降沿。 为避免信号冲突,微处理器应驱动data在低电平。需要一个外部的上拉电阻(例如:10k)将信号提拉至高电平。上拉电阻通常已包含在微处理器的i/o电路中。详细的i/o 特性,参见表4。表4为sht10直流特性。rp表示上拉电阻,iol指 低电平输出电流图8为时序图,普通的data线由单片机控制表5为sht10中i/o信号特性,在图8中出现的ol 表示输出负载 (4)温湿度测量发布一组测量命令(00000101表示相对湿度rh,00000011表示温度t)后,控制器要等待测量结束。这个过程需要大约20/80/320ms,分别对应8/12/14bit 测量。确切的时间随内部晶振速度,最多可能有-30%的变化。sht10,通过下拉data至低电平并进入空闲模式,表示测量的结束。控制器在再次触发sck时钟前,必须等待这个“数据备妥”信号来读出数据。检测数据可以先被存储,这样控制器可以继续执行其它任务在需要时再读出数据。接着传输2个字节的测量数据和1 个字节的crc奇偶校验(可选择读取)。uc需要通过下拉data为低电平,以确认每个字节。所有的数据从msb开始,右值有效。 信号转换(1)相对湿度湿度的非线性补偿建议用以下公式进行信号转换。公式中的参数见表6。表6为湿度补偿系数 (2)湿度信号的温度补偿由于实际温度与测试参考温度25 (77)的显著不同, 湿度信号需要温度补偿。温度校正粗略对应于0.12%rh/50%rh,温度补偿系数请参阅表7。表7为温度补偿系数 串行接口 sht10的两线串行接口(bidirectional2-wire)在传感器信号读取和电源功耗方面都做了优化处理,其总线类似i2c总线但不兼容i2c总线。 (1)串行时钟输入(sck)。sck引脚是mcu与shtio之间的同步时钟,由于接口包含了全静态逻辑,因此没有最小的时钟频率。 (2)串行数据(data)引脚是1个三态门,用于mcu与shtio之间的数据传输。data的状态在串行始终sck的下降沿之后发生改变,在sck的上升沿有效。在数据传输期间,当sck为高电平时,data数据线上必须保持稳定状态。 (3)为避免数据发生冲突,mcu应该驱动data使其处于低电平状态,而外部接一个上拉电阻,将信号拉至高电平。 (4) sht10的主要特点如下:相对湿度和温度的测量兼有露点输出;全部校准,数字输出;接口简单(2-wire),响应速度快;超低功耗,自动休眠;出色的长期稳定性;超小体积(表面贴装);测湿精度45%rh,测温精度0.5(25)。3.2.lcd1602液晶屏 在单片机系统中应用晶液显示器作为输出器件有以下几个优点: (1)显示质量高:由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(crt)那样需要不断刷新新亮点。因此,液晶显示器画质高且不会闪烁。 (2)数字式接口:液晶显示器都是数字式的,和单片机系统的接口更加简单可靠,操作更加方便。 (3)体积小、重量轻:液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示的目的,在重量上比相同显示面积的传统显示器要轻得多。 (4)功耗低:相对而言,液晶显示器的功耗主要消耗在其内部的电极和驱动ic上,因而耗电量比其它显示器要少得多。液晶显示简介(1)液晶显示原理液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、pda移动通信工具等众多领域。(2)液晶显示器的分类液晶显示的分类方法有很多种,通常可按其显示方式分为段式、字符式、点阵式等。除了黑白显示外,液晶显示器还有多灰度有彩色显示等。如果根据驱动方式来分,可以分为静态驱动(static)、单纯矩阵驱动(simple matrix)和主动矩阵驱动(active matrix)三种。1602lcd的基本参数及引脚功能1602lcd分为带背光和不带背光两种,基控制器大部分为hd44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如下图9所示:图9 1602lcd尺寸图1602lcd主要技术参数1)显示容量:162个字符;2)芯片工作电压:4.55.5v;3)工作电流2.0ma(5.0v);4)模块最佳工作电压:5.0v;5)字符尺寸:2.954.35(wh)mm;引脚功能说明1602lcd采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表8所示:表8为引脚接口说明表编号符号引脚说明编号符号引脚说明1vss电源地9d2数据2vdd电源正极10d3数据3vl液晶显示偏压11d4数据4rs数据/命令选择12d5数据5r/w读/写选择13d6数据6e使能信号14d7数据7d0数据15bla背光源正极8d1数据16blk背光源负极第1脚:vss为地电源。第2脚:vdd接5v正电源。第3脚:vl为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10k的电位器调整对比度。第4脚:rs为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:r/w为读写信号线,高电平时进行读操作,低电平时进行写操作。当rs和r/w共同为低电平时可以写入指令或者显示地址,当rs为低电平r/w为高电平时可以读忙信号,当rs为高电平r/w为低电平时可以写入数据。第6脚:e端为使能端,当e端由高电平跳变成低电平时,液晶模块执行命令。第714脚:d0d7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。1602lcd的指令说明及时序1602液晶模块内部的控制器共有11条控制指令,如表9所示:表9为控制命令表序号指令rsr/wd7d6d5d4d3d2d1d01清显示00000000012光标返回000000001*3置输入模式00000001i/ds4显示开/关控制0000001dcb5光标或字符移位000001s/cr/l*6置功能00001dlnf*7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01bf计数器地址10写数到cgram或ddram)10要写的数据内容11从cgram或ddram读数11读出的数据内容1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。指令1:清显示,指令码01h,光标复位到地址00h位置。指令2:光标复位,光标返回到地址00h。指令3:光标和显示模式设置 i/d:光标移动方向,高电平右移,低电平左移 s:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令4:显示开关控制。 d:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 c:控制光标的开与关,高电平表示有光标,低电平表示无光标 b:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位 s/c:高电平时移动显示的文字,低电平时移动光标。指令6:功能设置命令 dl:高电平时为4位总线,低电平时为8位总线 n:低电平时为单行显示,高电平时双行显示 f: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。指令7:字符发生器ram地址设置。指令8:ddram地址设置。指令9:读忙信号和光标地址 bf:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据。指令11:读数据。表10为基本操作时序表读状态输入rs=l,r/w=h,e=h输出d0d7=状态字写指令输入rs=l,r/w=l,d0d7=指令码,e=高脉冲输出无读数据输入rs=h,r/w=h,e=h输出d0d7=数据写数据输入rs=h,r/w=l,d0d7=数据,e=高脉冲输出无3.3.5v电源的设计一般情况下,给5v用电的单片机供电,都是通过由220v交流电经220v/9v的变压器,变换为9v的交流电,在通过in4007整流二极管和1000uf的电解电容把9v的交流电变换成脉动的直流电,最后通过7805稳压管输出5v直流电源。整流电路如下图10所示:7805系列集成稳压器的典型应用电路如下图10所示,这是一个输出正5v直流电压的稳压电源电路。ic采用集成稳压器7805,c1、c2分别为输入端和输出端滤波电容,rl为负载电阻。当输出电较大时,7805应配上散热板。本次单片机课程设计我直接采用了烧录器,把5v电源送给单片机,而没有直接用7805转换成5v电源,主要是考虑成本问题,故在这边把5v电源的电路设计出来,做为参考,其实7805说产生的5v电源电压和用烧录器插在电脑上的电压是一样的,只不过,用的方法不同,但是原理是一样。实物中采用烧录器的方法,而没有采用7805的方法,特在次说明。图10为5v电源输出4. 系统软件设计系统单片机代码采用c语言编写,以keil uvision4为开发环境。系统软件实现的功能:1) 通过sht10温湿度传感器得到温度和湿度;2) 通过lcd显示温湿度值;3) 根据相应的温湿度值控制温湿度调节系统运行。(1)系统概述 keil c51软件提供丰富的库函数和功能强大的集成开发调试工具,全windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到keil c51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍keil c51开发系统各部分功能和使用。 (2)keil c51单片机软件开发系统的整体结构 c51工具包的整体结构,uvision与ishell分别是c51 for windows和for dos的集成开发环境(ide),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用ide本身或其它编辑器编辑c或汇编源文件。然后分别由c51及c51编译器编译生成目标文件(.obj)。使用独立的keil仿真器时,注意事项 1)仿真器标配24.0mhz的晶振,但用户可以在仿真器上换上别的晶振。 2)仿真器上的复位按钮只复位仿真芯片,不复位目标系统。 根据温湿度控制系统功能,系统软件流程图如图11所示。 程序开始 初始化 1602和sht10初始化 读取温湿度值读取成功 sht10重启动1602显示数据延时0.8s图11为温湿度控制流程图lcd1602流程图图12为lcd软件流程图sht10温湿度传感器流程图为了提高系统相对温度的测量精度,采用补偿湿度传感器的非线性以获取准确数据,使用公式修正输出数值:式中:sorh表示传感器的相对湿度输出数值(大约范围在903400),c1、c2、c3为湿度转换系数,具体数值见表6。湿度传感器对电压基本上没有依赖性。 图13为sht1o温湿度流程图二 实践部分1. 系统硬件原理简介(1) 工作原理 采用at89c52单片机作为本系统的控制单元,传感器采用sht10,显示模块为lcd1602。单片机收到来自sht10的温湿度数据,再经过软件线性拟合,最后送到1602上显示出数据。(2) 原理图图14为基于sht10温湿度测量显示(3) 电路仿真图如图15所示图15为电路仿真图 (4)单片机最小系统单片机最小系统复位电路的极性电容c1的大小直接影响单片机的复位时间,一般采用1030uf,52单片机最小系统容值越大需要的复位时间越短。单片机最小系统晶振可以采用6mhz或者12mhz,在正常工作的情况下可以采用更高频率的晶振,52单片机最小系统晶振的振荡频率直接影响单片机的处理速度,频率越大处理速度越快。单片机最小系统起振电容c2、c3一般采用1530pf,并且电容离晶振越近越好,晶振离单片机越近越好。口为开漏输出,作为输出口时需加上拉电阻,阻值一般为10k。其他接口内部有上拉电阻,作为输出口时不需外加上拉电阻。单片机最小系统如图16所示。图16所示为单片机最小系统2. 系统硬件调试中出现的问题及解决措施2.1系统硬件调试中的问题(1) 一开始程序烧进去但是单片机没有工作,我有点紧张了,不知道如何解决了,如下图17所示,lcd不亮。图17为工作不正常的情况(2) lcd亮了,但是没有数据输出,如下图18所示。 图18为lcd亮,但不现实数据2.2系统硬件调试中的解决措施 (1)之所以lcd不亮的原因是因为lcd液晶屏上的5v电源线,焊接不牢靠,造成了虚焊,这种情况时常发生,这对于我们初学者来说是经常发生的,我们要尽量避免这种情况发生,所以在焊好pcb板时,要检查线路有没有问题,不能急于求成。 (2)lcd没有数据输出是因为端口输出错误,本来是p2口的一点,不小心焊到了p1口的一点上去了,花了好长时间才找到。3. 系统软件proteus软件(1)软件简介proteus软件是英国labcenter electronics公司出版的eda工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它eda工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。proteus是世界上著名的eda工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到pcb设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、pcb设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、hc11、pic10/12/16/18/24/30/dspic33、avr、arm、8086和msp430等,2010年即将增加cortex和dsp系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持iar、keil和mplab等多种编译器。 (2)软件应用 电子设计的核心是eda技术。eda 是指以计算机为工作平台,融合应用电子技术计算机技术、智能化技术最新成果而研制成的电子cad 通用软件包,主要能辅助进三方面的设计工作,即ic设计、电子电路设计和pcb设计。eda技术已有30年的发展程,大致可分为三个阶段。70 年代为计算机辅助设计(cad)阶段,人们开始用计机辅助进行ic版图编辑、pcb布局布线,取代了手工操作。80年代为计算机辅助(cae)阶段。与cad相比,cae除了有纯粹的图形绘制功能外,又增加了电路功能计和结构设计,通过电气连接网络表将两者结合在一起,实现了工程设计。 proteus与其电子仿真软件不同的是,它不仅能仿真单片机cpu的工作情况,还能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。对于这样的仿真实验,从某种意义上讲,是弥补了实验和工程应用间脱节的矛盾和现象。 该课题的核心是在proteus平台上设计一套51系列单片机实验系统。以proteus强大功能的为支持,设计出的实验系统不仅具有一般硬件实物板的一切功能,而且具有很好的开发性实验功能。isis是一个操作简便而功能强大的原理绘图工具。proteus软件的虚拟系统模型使用了混合模式的spice电路仿真,动态器件和微控制器模型,实现了完整的基于微控制器设计的协同仿真。proteus软件第一次真正使在物理原型出来之前对各类设计的开发和测试成为可能。3.1 软件设计stc_isp_v4.88是由stc公司研发,可以向stc89c51、stc89c52等系列单片机内烧写程序。可以设置波特率,串口等参数。同时stc_isp_v4.88还可以作为串口调试工具,用于串口收发数据的调试软件。以proteus为平台,设计一套单片机学习系统以达到时代对单片机教学的要求。并结合本文所开发的开放式单片微机综合实验系统,将教学内容分解到一个个具有明确应用目标的实验课题中,通过让学生在规定时间内依次完成这些课题来达到教学目的。同时,在课题的设计和顺序安排上必须注意循序渐进,各部分内容紧密相依,前面的课题应为后面的课题打基础,后面的课题在不断注入新内容和新概念的同时,也应对前面课题提到的知识点进行适当的重复这就是本文进行上述实验系统设计的目的。系统设计的设计要求 1)实用性。虚拟板必须实现普通51板的实验; 2)开放性。发挥proteus 开放自主的设计优势,在模块设计上不仅能满足基础实验的要求,而且能够在各个模块基础上进行开放性的实验; 3)客观性。不能因为proteus 设计的工程不会有任何元器件的损坏而不顾及到电路设计的客观性,保证每个元器件都能在额定状态下工作;3.2软件调试中出现的问题及解决措施由于时间长了,对于stc_isp_v4.88软件已经忘了,在很长一段时间内都不知道如何通过stc_isp_v4.88把程序烧到实物中,最后还是通过查资料,才解决了问题,所以对我们来说,要更加注重理论,平时没事的时候多看点书。 三 结束语和参考文献结束语设计小结回顾起此次单片机课程设计,至今我仍感慨颇多,的确,从理论到实践,在整整两星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。 课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域, 在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说不懂得单片机的正负极,对单片机c语言掌握得不好通过这次课程设计之后,一定把以前所学过的知识重新温故。 这次课程设计终于顺利完成了,在设计中遇到了很多问题,最终在吴冬春老师的辛勤指导下,终于游逆而解。同时,在吴冬春老师的帮助下我学得到很多实用的知识,在次我表示感谢!同时,对给过我帮助的所有同学再次表示忠心的感谢!参考文献1 张兰红.单片机原理及应用m. 北京:机械工业出版社, 2012.2 赵星寒. arm开发工具ads原理与应用m. 北京:北京航空航天大学出版社, 2006.3 潭浩强. c语言程序设计m. 北京:高等教育出版社, 2000.4 楼然苗.李光飞. 单片机课程设计指导m. 北京:北京航空航天大学出版社, 2007.5 何勇,王生泽. 光电传感器及其应用m. 北京:化学工业出版社, 2004.6 周立功. magicarm2200-s教学实验开发平台实验指导m. 北京:

温馨提示

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

评论

0/150

提交评论