数字温度计设计报告_第1页
数字温度计设计报告_第2页
数字温度计设计报告_第3页
数字温度计设计报告_第4页
数字温度计设计报告_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

1、单片机原理及应用 课程设计说明书 设计题目基于单片机的数字温度计的设计学 院:工学院专 业:电气工程及其自动化(2)班设 计 者: 徐涛 万嘉俊学 号:09177036 09177035指导老师:周平设计时间:2012年5月21日2012年6月2日目录摘要31 引言32 总体设计方案32.1设计原理及相关说明42.2总体设计框图42.3数字温度计的系统方案42.4晶振电路42.5复位电路52.6单片机(AT89S51单片机)62.6.1AT89S52的介绍62.6.2AT89S52各引脚功能介绍62.7显示电路82.7.1数码管的选择82.7.2、驱动的选择92.8温度传感器102.8.1温度

2、传感器的选择102.8.2DS18B20温度传感器112.8.3温度传感器与单片机的连接122.9双向总线发送器/接收器132.10报警电路142.11数码管的选择142.11.1数码管的的选择142.11.2位数码管的驱动方式142.11.3四位数码管的引脚图152.11.4四位数码管的参数152.11.5四位数码管区分共阴阳极的方法163各元件参数的确定163.1晶振电路163.1.1晶振频率的选择163.1.2电容的选择163.2复位电路173.3限流电阻的选择184软件设计194.1温度的传输与读取19结论21致 谢22参考文献22附录1 系统电路原理图23附录2 源程序清单24附录3

3、仿真结果图30基于单片机的数字温度计系统的设计作者:徐涛 万嘉俊 指导老师: 周平(安徽农业大学工学院 09电气工程及自动化 )摘要:该设计是基于AT89S51单片机的数字温度计系统,采用温度传感器感应温度在数码管实现温度显示。检测范围为-55125,精度到1。与传统的温度计相比,这里设计的数字温度计具有读数方便,测温范围广,测温精确,数字显示,适用范围宽等特点。选用AT89S52型单片机作为主控制器件,DSl8B20作为测温传感器通过4位共阳极LED数码管串口传送数据,实现温度显示。该器件可直接向单片机传输数字信号,便于单片机处理及控制。另外,该温度计还能直接采用测温器件测量温度,从而简化数

4、据传输与处理过程。关键词:数字温度计系统 单片机 温度传感 显示电路1 引言 本设计实现一个数字温度计,可以利用DS18B20读取环境温度并传至AT89S52,使之显示于显数码管上。蜂鸣器可以实现温度超过40C报警功能。该器件可直接向单片机传输数字信号,便于单片机处理及控制。另外,该温度计还能直接采用测温器件测量温度,从而简化数据传输与处理过程。2 总体设计方案2.1设计原理及相关说明设计原理:利用DS18B20读取环境温度,并利用P3.6端口将相关信息传送至AT89S52主芯片之中,利用P0端口以及驱动芯片74LS245使之显示于数码管上。2.2总体设计框图日历时钟系统设计框图如图1所示:图

5、12.3数字温度计的系统方案本次设计通过对单片机的软件设计和外部电路的硬件设计结合实现电子温度计的设计,该系统由晶振电路,复位电路,单片机,显示电路,温度传感器,蜂鸣器等组成。2.4晶振电路 AT89S52内部有一个用于构成振荡器的高增益反相放大器,引脚RXD和TXD分别是此放大器的输入端和输出端。时钟可以由内部方式产生或外部方式产生。外部方式的时钟电路RXD接地,TXD接外部振荡器。对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz的方波信号。片内时钟发生器把振荡频率两分频,产生一个两相时钟P1和P2,供单片机使用。图2所示为本实验的晶振电路。图22.5复位电路 单片机

6、复位电路设计的好坏,直接影响到整个系统工作的可靠性。复位电路采用上电按键复位方式,上电按键复位如图3所示。当按下复位按键时,RST端产生高电平,使单片机复位。复位后,其片内各寄存器状态改变,片内RAM内容不变。由于单片机内部的各个功能部件均受特殊功能寄存器控制,程序运行直接受程序计数器PC指挥。各寄存器复位时的状态决定了单片机内有关功能部件的初始状态。另外,在复位有效期间(即高电平),80C52单片机的ALE引脚为高电平,且内部RAM不受复位的影响。图32.6单片机(AT89S52单片机)2.6.AT89S52的介绍选用的AT89S52与同系列的AT89C51在功能上有明显的提高,最突出是的可

7、以实现在线的编程。用于实现系统的总的控制。其主要功能列举如下:(1)为一般控制应用的 8 位单片机(2)晶片内部具有时钟振荡器(传统最高工作频率可至 33MHz)(3)内部程式存储器(ROM)为 4KB(4)内部数据存储器(RAM)为 128B(5)外部程序存储器可扩充至 64KB(6)外部数据存储器可扩充至 64KB(7)32 条双向输入输出线,且每条均单独做 I/O 的控制(8)5 个中断向量源(9)2 组独立的 16 位定时器(10)1 个全双工串行通信端口(12)8751 及 8752 单芯片具有数据保密的功能(13)单芯片提供位逻辑运算指令2.6.2AT89S52各引脚功能介绍图4V

8、CC:ATAT89S52 电源正端输入,接+5V。VSS:电源地端。XTAL1:单芯片系统时钟的反向放大器输入端XTAL2:系统时钟的反向放大器输出端,一般在设计上只要在 XTAL1 和 XTAL2 上接上一只石英振荡晶体系统就可以动作了,此外可以在两个引脚与地之间加入一个 20PF 的小电容,可以使系统更稳定,避免噪声干扰而死机。RESET:AT89S52的重置引脚,高电平动作,当要对晶片重置时,只要对此引脚电平提升至高电平并保持两个机器周期以上的时间,AT89S52便能完成系统重置的各项动作,使得内部特殊功能寄存器之内容均被设成已知状态,并且至地址0000H处开始读入程序代码而执行程序。E

9、A/Vpp:EA为英文External Access的缩写,表示存取外部程序代码之意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部EPROM中)来执行程序。因此在8031及8032中,EA引脚必须接低电平,因为其内部无程序存储器空间。如果是使用 8751 内部程序空间时,此引脚要接成高电平。此外,在将程序代码烧录至8751内部EPROM时,可以利用此引脚来输入21V的烧录高压(Vpp)。ALE/PROG:ALE是英文Address Latch Enable的缩写,表示地址锁存器启用信号。ATAT89S51可以利用这支引脚来触发外部的8位锁存器(如74LS373),

10、将端口0的地址总线(A0A7)锁进锁存器中,因为ATAT89S51是以多工的方式送出地址及数据。平时在程序执行时ALE引脚的输出频率约是系统工作频率的1/6,因此可以用来驱动其他周边晶片的时基输入。此外在烧录8751程序代码时,此引脚会被当成程序规划的特殊功能来使用。PSEN:此为Program Store Enable的缩写,其意为程序储存启用,当8051被设成为读取外部程序代码工作模式时(EA=0),会送出此信号以便取得程序代码,通常这支脚是接到EPROM的OE脚。ATAT89S51可以利用PSEN及RD引脚分别启用存在外部的RAM与EPROM,使得数据存储器与程序存储器可以合并在一起而共

11、用64K的定址范围。PORT0(P0.0P0.7):端口0是一个8位宽的开路电极(Open Drain)双向输出入端口,共有8个位,P0.0表示位0,P0.1表示位1,依此类推。其他三个I/O端口(P1、P2、P3)则不具有此电路组态,而是内部有一提升电路,P0在当作I/O用时可以推动8个LS的TTL负载。如果当EA引脚为低电平时(即取用外部程序代码或数据存储器),P0就以多工方式提供地址总线(A0A7)及数据总线(D0D7)。设计者必须外加一个锁存器将端口0送出的地址锁住成为A0A7,再配合端口2所送出的A8A15合成一组完整的16位地址总线,而定位地址到64K的外部存储器空间。PORT2(

12、P2.0P2.7):端口2是具有内部提升电路的双向I/O端口,每一个引脚可以推动4个LS的TTL负载,若将端口2的输出设为高电平时,此端口便能当成输入端口来使用。P2除了当作一般I/O端口使用外,若是在ATAT89S52扩充外接程序存储器或数据存储器时,也提供地址总线的高字节A8A15,这个时候P2便不能当作I/O来使用了。PORT1(P1.0P1.7):端口1也是具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个LS TTL负载,同样地,若将端口1的输出设为高电平,便是由此端口来输入数据。如果是使用8052或是8032的话,P1.0又当作定时器2的外部脉冲输入脚,而P1.1可以有T2

13、EX功能,可以做外部中断输入的触发引脚。PORT3(P3.0P3.7):端口3也具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个TTL负载,同时还多工具有其他的额外特殊功能,包括串行通信、外部中断控制、计时计数控制及外部数据存储器内容的读取或写入控制等功能。其引脚分配如下:P3.0:RXD,串行通信输入。P3.1:TXD,串行通信输出。P3.2:INT0,外部中断0输入。P3.3:INT1,外部中断1输入。P3.4:T0,计时计数器0输入。P3.5:T1,计时计数器1输入。P3.6:WR:外部数据存储器的写入信号。 P3.7:RD,外部数据存储器的读取信号。2.7显示电路2.7.1数

14、码管的选择显示电路根据设计任务要求用1个四位数码管,采用共阳接法。LED显示分为静态显示和动态显示。这里采用静态显示,系统通过单片机的串行口来实现静态显示。串行口为方式零状态,即工作在移位寄存器方式,波特率为振荡频率的1/12。当器件执行任何一条将SBUF作为目的寄存器的命令时,数据便开始从RXD端发送。在写信号有效时,相隔一个机器周期后发送控制端SEND有效,即允许RXD发送数据,同时允许从TXD端输出移位脉冲。2.7.2、驱动的选择数码管输入由单片机P0端口通过软件设计输入,在P0端口输出处接一个74LS245 八位双向数据总线收/发器(缓冲器),74LS245是我们常用的芯片,用来驱动L

15、ED或者其他的设备,可双向传输数据。74LS245还具有双向三态功能,既可以输出,也可以输入数据。 当8052单片机的P0口总线负载达到或超过P0最大负载能力时,必须接入74LS245等总线驱动器。 当片选端/CE低电平有效时,DIR=“0”,信号由 B 向 A 传输;(接收) DIR=“1”,信号由 A 向 B 传输;(发送)当CE为高电平时,A、B均为高阻态。 由于P2口始终输出地址的高8位,接口时74LS245的三态控制端1G和2G接地,P2口与驱动器输入线对应相连。对应的电路图如图5所示。 图52.8温度传感器2.8.1温度传感器的选择根据本设计的要求,使用DS18B20温度传感器进行

16、温度的检测与传送。2.8.2DS18B20温度传感器DS18B20可以程序设定912位的分辨率,精度为0.5C。可选更小的封装方式,更宽的电压适用范围。分辨率设定,及用户设定的报警温度存储在EPROM中,掉电后依然保存。温度传感器DS18B20引脚如图6所示。 8引脚封装 TO92封装图6 温度传感器引脚功能说明: NC :空引脚,悬空不使用; VDD :可选电源脚,电源电压范围35.5V。当工作于寄生电源时,此引脚必须接地。 DQ :数据输入/输出脚。漏极开路,常态下高电平。 GND :为电源地DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和

17、TL、配置寄存器。光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。 DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625/LSB形式表达,其中S为符号位。 这是12位转化后得到的12位数据,存储在18B20的两

18、个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。 例如+125的数字输出为07D0H,+25.0625的数字输出为0191H,-25.0625的数字输出为FF6FH,-55的数字输出为FC90H。 DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E2RAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。 暂存存储器包含了8个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的

19、低八位,第二个字节是温度的高八位。第三个和第四个字节是TH、TL的易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。第六、七、八个字节用于内部计算。第九个字节是冗余检验字节。 该字节各位的意义如下:TM R1 R0 1 1 1 1 1低五位一直都是1 ,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动。R1和R0用来设置分辨率,如表1所示:(DS18B20出厂时被设置为12位) 表1 DS18B20温度转换时间表R1R0分辨率/位温度最大转向时间00993.750110187.5101

20据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待1660微秒左右,后发出60240微秒的存在低脉冲,主CPU收到此信号表示复位成功。图7 DS18B20内部结构图 2.8.3温度传感器与单片机的连接温度传感器的单总线(1-Wire)与单片机的P30连接。P3端口是一个带内部上拉电阻的8位双向IO,其输出缓冲级可驱动(吸收或输出电流

21、)4个TTL逻辑门电路。对该端口写“1”,可通过内部上拉电阻将其端口拉至高电平,此时可作为输入口使用,这是因为内部存在上拉电阻,某一引脚被外部信号拉低时会输出一个电流。在访问外部程序存储器或16位地址的外部数据存储器时。如执行MOVX DPTR指令,则表示P3端口送出高8位的地址数据。在访问8位地址的外部数据存储器时,可执行MOVX RI指令,P3端口内容即为特殊功能寄存器(SFR)区中R2寄存器内容,整个访问期间不改变。在Flash编程和程序校验时,P3端口也接收高位地址和其他控制信号。图5为DSl8820与单片机的接口电路。图82.9双向总线发送器/接收器双向总线发送器/接收器(3S) 简

22、要说明: 245为三态输出的八组总线收发器,其主要电器特性的典型值如下(不同厂家 具体值有差别): 型号tPLHtPLHtphlPD54LS245/74LS2458ns8ns275mW引出端符号: A A总线端 B B总线端 /G 三态允许端(低电平有效) DIR 方向控制端 逻辑图: 图9双列直插封装 极限值: 电源电压 . 7V 输入电压 . 7V 输出高阻态时高电平电压 . 5.5V 工作环境温度 54LS245 . -55125 74LS245 . 070 存储温度 . -65150功能表: 推荐工作条件:54LS245/74LS245单位最小额定最大电源电压 Vcc544.555.5

23、V744.7555.25输入高电平电ViH2V输入低电平电ViL540.7V740.854 -12输出高电平电流 IOH54-12mA74-1554 12 输出低电平电流 IOL5412mA7424动态特性(TA=25)参 数测 试 条 件LS245单位最 大tPLH输出由低到高传输延迟时间Vcc =5V CL=45Pf RL=667 12nstPHL输出由高到低传输延迟时间12nstPZH输出由高阻态到高允许时间40nstPZL输出由高阻态到低允许时间40nstPHZ输出由高到高阻态禁止时间Vcc=5V CL=5pF RL=90 25nstPLZ输出由低到高阻态禁止时间25ns静态特性(TA

24、 为工作环境温度范围)参 数测 试 条 件【1】LS245单位最小最大 VIK输入嵌位电压Vcc=最小,Iik=-18mA-1.5VVT滞后电压Vcc最小0.2VVOH输出高电平电压Vcc最小,VIL最大,VIH=2V, IOH3mA2.4VVOL输出低电平电压Vcc=最小,VIL最 大,VIH=2V, IOL=最大540.4V740.5 II最大输 入电压时 输出电流A,BVcc最大VI=5.5V0.1 mADIR,/GVI=7V0.1IIH输入高电平电流Vcc最大,VIH=2.7V20uAIIL输入低电平电流Vcc最大,VIL=0.4V-0.2mAIOS输出短路电流Vcc最大-40-225

25、mAIOZH输出高阻态时高 电平电流Vcc最大,VIH=2V VIL=最大,VO=2.7V20uAIOZL输出高阻态时低 电平电流Vcc最大,VIH=2V,VIL最大 ,VO=0.4V-200uAIcc电源电流Vcc 最大所有输出均为高电平70mA所有输出均为低电平90所有输出均为高阻态961: 测试条件中的“最小”和“最大”用推荐工作条件中的相应值。2.10报警电路系统中的报警电路是由三极管、扬声器和限流电阻组成,并与单片机的P3.7端口连接。可见图6。2.11数码管的选择2.11.1数码管的的选择本设计选用两个四位的共阳数码管。四位数码管是一种半导体发光器件,其基本单元是发光二级管。能显示

26、4个数码管叫四位数码管。数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳

27、极为低电平时,相应字段就不亮。2.11.2数码管的驱动方式2.11.2.1静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要58=40根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个呢:),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。2.11.2.2数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp

28、的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,

29、动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。2.11.3四位数码管的引脚图2.11.4四位数码管的参数8字高度:8字上沿与下沿的距离。比外型高度小。通常用英寸来表示。范围一般为0.25-20英寸。长*宽*高:长数码管正放时,水平方向的长度;宽数码管正放时,垂直方向上的长度;高数码管的厚度。时钟点:四位数码管中,第二位8与第三位8字中间的二个点。一般用于显示时钟中的秒。 2.11.5四位数码管区分共阴阳极的方法首先数码管有共阴极和共阳极之分,区别他们的方法是若公共端接地,其他端接电源,若各段测试能亮,说明是共阴的,反之共阳的;若公共端接电源,其他端分别接的,测得各端

30、亮,则说明是共阳的,反之为共阴的。世面上的四位一体的数码管一般都没有datasheet,所以掌握他们管脚的分布是很重要的一个环节。下面是一张四位一体数码管引脚分布图4位一体数码管,其内部段已连接好,引脚如图所示(正面朝自己,小数点在下方)。a、b、c、d、e、f、g、dP为段引脚,1、2、3、4分别表示四个数码管的位。 。 。 。 。 。1 a f 2 3 b。 。 。 。 。 。e d dp c g 4即:12-9-8-6为公共端,A-11 B-7 C-4 D-2 E-1 F-10 G-5 DP-33各元件参数的确定3.1晶振电路3.1.1晶振频率的选择图2为本次设计所采用的晶振电路。石英晶

31、体振荡器采用12MD的。实际上,单片机的晶振可以选择很多频率,从1MHZ到32MHZ的各种频率晶振都有。,11.0592MHZ的晶振在计算最大波特率及其误差的时候,其最大波特率达到了57600,几乎能满足绝大多数应用,其他晶振都达不到这个波特率或者误差太大;同时在波特率误差方面,11.0592MHZ晶振的误差为0。3.1.2电容的选择电容器C1、C2起稳定振荡频率、快速起振的作用,可在20100PF之间取,这里取22PF。3.2复位电路电阻及电容的选择:图(3)为本次设计的复位电路,时间参数R2C3=30uf*1k=300ms满足要求。复位电路具有上电复位和手动复位的功能。VCC上电时,C充电

32、,在R1电阻上出现电压,使得单片机复位;几个毫秒后,C充满,R1电阻上电流降为0,电压也为0,使得单片机进入工作状态。工作期间,按下复位按钮,C放电。按钮松开,C又充电,在R1电阻上出现电压,使得单片机复位。几个毫秒后,单片机进入工作状态。 故R1选10k的。3.3限流电阻的选择 报警电路和温度传感器中的限流电阻均选4.7K的,数码显示管中的电阻均选470的。4软件设计4.1温度的传输与读取DSl8820的主要数据元件有:64位激光Lasered ROM,温度灵敏元件和非易失性温度告警触发器TH和TL。DSBl820可以从单总线获取电源,当信号线为高电平时,将能量贮存在内部电容器中;当单信号线

33、为低电平时,将该电源断开,直到信号线变为高电平重新接上寄生(电容)电源为止。此外,还可外接5 V电源,给DSl8820供电。DSl8820的供电方式灵活,利用外接电源还可增加系统的稳定性和可靠性。图6为读取数据流程图。开始DS18B20的初始化启动温度转换读取温度寄存器跳过读序列号的操作跳过读序列号的操作DS18B20的初始化RETLOW-低八位 HIGH-高八位图6 读取数据的流程图读出温度数据后,LOW的低四位为温度的小数部分,可以精确到0.0625,LOW的高四位和HIGH的低四位为温度的整数部分,HIGH的高四位全部为1表示负数,全为0表示正数。所以先将数据提取出来,分为三个部分:小数

34、部分、整数部分和符号部分。小数部分进行四舍五入处理:大于0.5的话,向个位进1;小于0.5的时候,舍去不要。当数据是个负数的时候,显示之前要进行数据转换,将其整数部分取反加一。还因为DS18B20最低温度只能为-55,所以可以将整数部分的最高位换成一个“-”,表示为负数。图10为温度数据处理程序的流程图。开始提取整数部分存入HT提取小数部分存入LTLT右移三位,将精度降低到0.5摄氏度HT+将小数部分整数化提取符号部分存入signLT是否大于5Sign=?0XF0RET负数表示flag=1 HT=HT+1YNNY图7 温度数据处理流程图结论经过将近两周的单片机课程设计,终于完成了我们的数字温度

35、计的设计,虽然没有完全达到设计要求,但从心底里说,还是高兴的,毕竟这次设计把仿真成功做了出来,高兴之余不得不深思呀!在本次设计的过程中,我发现很多的问题,虽然以前还做过类似的设计但这次设计真的让我长进了很多,单片机课程设计重点就在于软件算法的设计,需要有很巧妙的程序算法,。此外,本次课程设计也使我对单片机技术有了更进一步的了解,实际操作和课本上的知识有很大的联系,又高于课本,一个看似很简单的电路,要动手做出来就比较困难了,因为是设计让我们在以后的学习中要注意这点,要把课本上所学的知识跟实际联系起来。有好多的东西,只有我们去试着做了,才能真正的掌握,只学习理论有些东西是很难理解的,更谈不上掌握,

36、同时本次电路的设计巩固了所学知识,也使我们把理论与实际从真正的意义上结合起来了,增强了学习的兴趣,考验了我们借助图书馆、互联网搜索、查阅相关资料,以及综合能力。从这次的课程设计中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机更是如此,程序只有在经常的写与读的过程中才能提高,这就是我们在这次课程设计中的最大收获,为以后从事电子电路设计、研制电子产品方面的工作奠定了一定的基础。也为以后的毕业设计做了一定的提前准备。致 谢这次课程设计的完成,首先感谢学校以及吴敏和周平老师,感谢学校给了我们这样一个学习的机会,在我们丰富了自身的同时不仅使我学到了很

37、多新的知识,更使我认识到了自己的不足。从这次设计的开始到完成整个过程中,我遇到了很多意想不到的困难,但在吴敏和周平老师的指导和帮助下,我也基本完成了任务,同时也受益非浅,我们的每一步成果都是和老师的心血分不开。虽然课程设计即将完成,但我学到了很多新的东西和道理,相信在我以后的人生道路上都会受用的。其中,我的一些同学也给了我很多帮助,借此机会向老师和帮助我的每一个人表示真挚的谢意。参考文献1 黄友锐.单片机原理及其应用.合肥:合肥工业大学出版社,20062李朝青.单片机原理及接口技术(简明修订版).杭州:北京航空航天大学出版社,19983李广弟.单片机基础.北京:北京航空航天大学出版社,1994

38、4阎石.数字电子技术基础(第三版). 北京:高等教育出版社,19895廖常初.现场总线概述J.电工技术,19996 彭伟.单片机C语言程序设计实训100例基于8051+Proteus仿真.北京:电子工业出版社,2009附录1 系统电路原理图附录2 源程序清单/-/ 名称;用数码管与DS18B20设计温度报警器/-/ 说明; 本例将报警温度设为高40C,低;20C,当DS18B20感知到温度达到此/ 临界值时相应的LED闪烁,同时系统发出报警声。/- #include /52单片机头文件 #include /包含有左右循环移位子函数的库 #define uchar unsigned char #

39、define uint unsigned int sbit DQ =P36; sbit BEEP =P37; sbit HI_LED =P14; sbit LO_LED =P15;/共阳数码管段码及空白显示 uchar code DSY_CODE = 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xFF; /温度小数位对照表 uchar code df_Table =0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9; /- /报警温度上下限,为进行正负数比较,此处注意设为char类型 /温度测量范围为-55125,DS18B

40、20支持范围为-55+128 /- char Alarm_Temp_HL2 =40,20;/- uchar CurrentT =0;/当前读取温度整数部分 uchar Temp_Value =0x00,0x00; /从DS18B20读取的温度值 uchar Display_Digit =0,0,0,0;/待显示的各温度数位 bit HI_Alarm =0,LO_Alarm =0;/高低温报警标志 bit DS18B20_IS_OK =1;/传感器正常标志 uint Time0_Count =0;/定时器延时累加 /- / 延时 /- void Delay(uint x) while(-x);/

41、通过定义延时次数定义延时时间 /- /初始化DS18B20 /- uchar Init_DS18B20() uchar status; DQ =1; Delay(8); /DQ复位,稍做延时 DQ =0; Delay(90); /单片机将DQ拉低 DQ =1; Delay(8); status =DQ;/拉高总线,稍做延时后。status=0,则初始化成功 Delay(100); DQ =1; return status; /初始化成功时返回 0 /-/读一字节/- uchar ReadOneByte() uchar i,/定义i用于循环 dat =0; /读取的8位数据 for (i=0;i

42、=1; /dat右移一位 DQ=1; /释放DQ总线 if(DQ) /如果DQ=1,执dat|=0x80;(0x80即第7位为1,如果DQ为1,即读取的数据为1,/将dat的第7 为置1,然后dat=1,循环8次结束,dat即为读取的数据) DQ=0,就跳过dat|=0x80; Delay(30); / 延时以完成此次读时 序,之后再读下一数据 return dat; /返回读取的dat /- /写一字节 /- void WriteOneByte(uchar dat) uchar i; for (i=0;i=1; /- /读取温度值 /- void Read_Temperature() if (Ini

温馨提示

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

评论

0/150

提交评论