版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 毕 业 设 计 基于单片机的温度显示 专 业: 生产过程自动化技术 目录目录2摘 要3设计要求4第一章 绪 论51.1 温度远程控制系统的意义5第二章 方案论证与系统结构72.1 方案论证72.1.1 单片机系统方面72.1.2 温度传感器72.1.3 显示模块8第三章 硬件模块介绍93.1 at89s52单片机介绍93.1.1 at89s52主要功能93.1.2 at89s52各引脚功能介绍:103.1.3 中断源143.2 ds18b20温度传感器介绍203.2.1 ds18b20的主要特征:203.2.2 ds18b20引脚结构图及其功能描述213.2.3 ds18b20内部结构213
2、.2.4 ds18b20接口电路和工作时序25第四章 流程图334.1 系统温度采集流程图33第五章 软件模块介绍345.1 keil 软件345.1.1 keil软件使用方法简介:34参考文献41附录1 系统c语言程序42摘 要随着信息技术的飞速发展,嵌入式智能电子技术已渗透到社会生产、工业控制以及人们日常生活的各个方面。单片机又称为嵌入式微型控制器,在智能仪表、工业控制、智能终端、通信设备、医疗器械、汽车电器、导航系统和家用电器等很多领域都有着广泛的应用,已成为当今电子信息领域应用最广泛的技术之一 本论文是采用单片机来实现温度远程显示。以at89s52单片机为核心的处理芯片,采用美国最新研
3、发的ds18b20温度传感器来测量温度,led数码管来显示检测到的温度,蜂鸣器做报警信号。它结构简单、成本低廉、精度高、使用性强。解决了以前的误差大、精度低、危险场所、操作复杂等各种问题。以下详细介绍这简单又实用基于单片机的远程温度显示系统。关键词:at89s52单片机、蜂鸣器、bs18b20温度传感、1602lcd显示 设计要求1、 题目:基于ds18b20温度显示系统设计二、基本要求: 利用单片机设计多功能数字温度计,显示环境温度,当温度超过30度或低于20度时报警。三、设计任务:1. 画出系统结构框图。2. 画出电路图,编写程序。3. 写出详细说明书(10000字以上),要求字迹工整,原
4、理叙述正确,会计算主要元器件的一些参数,并选择元器件。文字部分计算机排版打印。4. 画图要求:画图规范化,图形清晰,用计算机画图。四、参考资料:1. 教材;2单片机实验指导书, 河南工业职业技术学院351系列单片机设计实例,楼然苗、李光飞编著,北京航空航天出版社;4.单片机基本原理及应用系统,卢艳军,机械工业出版社;指导教师:焦欣欣第一章 绪 论1.1 温度远程控制系统的意义随着科技的不断发展,现代社会对各种信息参数的准确度和精确度的要求都有了几何级的增长,而如何准确而又迅速的获得这些参数就需要受制于现代信息基础的发展水平。在我国各领域已经引用的非常广泛,可以说是渗透到社会的每一个领域,人民的
5、生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要的意义。测量温度的关键是温度传感器,温度传感器的发展经历了三个发展阶段:传统的分立式温度传感器、模拟集成温度传感器、智能集成温度传感器。目前的智能温度传感器(亦称数字温度传感器)是在20世纪90年代中期问世的,它是微电子技术、计算机技术和自动测试技术(ate)的结晶,特点是能输出温度数据及相关的温度控制量,适配各种微控制器(mcu)。社会的发展使人们对传感器的要求也越来越高,现在的温度传感器正在基于单片机的基础上从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展
6、,并朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展,在工业生产中需要时时检测温度,其在农业及人们的日常生活中扮演着一个越来越重要的角色,它对人们的生活具有很大的影响,生活也日趋于数字化,而温度是科学技术中最基本的物理量之一,物理、化学、生物等学科都离不开温度。在工业生产和实验研究中,像电力、化工、石油、冶金、航空航天、机械制造、粮食存储、酒类生产等领域内,温度常常是表征对象和过程状态的最重要的参数之一。比如,发电厂锅炉的温度必须控制在一定的范围之内;许多化学反应的工艺过程必须在适当的温度下才能正常进行;炼油过程中,原油必须在
7、不同的温度和压力条件下进行分馏才能得到汽油、柴油、煤油等产品。没有合适的温度环境,许多电子设备就不能正常工作,粮仓的储粮就会变质霉烂,酒类的品质就没有保障。因此,各行各业对温度控制的要求都越来越高。可见,温度的测量和控制是非常重要的。第二章 方案论证与系统结构2.1 方案论证2.1.1 单片机系统方面世界上不同的国家的很多芯片厂商都生产不同的单片机,如生产的at89c51、at89s51、52等,philips(飞利浦)公司的p80c54、p87c528等,intel(英特尔)公司的i87c58、i87c51fc等,siemens(西门子)公司的c501-1r、c513a-h等,stc公司的s
8、tc89c51rc、stc89s52rc等等。从成本角度和对芯片的熟悉角度来考虑,本次设计选择atmel公司的at89s52作为本次的单片机芯片。2.1.2 温度传感器方案一:采用热敏电阻可满足测温要求,但热敏电阻精度低,重复性和可靠性较差,对于精度要求较高的测温不适用,而且采用热敏电阻要求复杂的电路和算法,增加了设计复杂度。方案二:采用专用的集成温度传感器(如ad590、lm35/lm45)和数字化温度传感器如ds18b20、测温,数字化温度传感器具有接口简单、直接数字量输出、精确度高等优点。ds18b20是dallas公司的最新单线数字温度传感器,它是世界上第一片支持“一线总线”接口的温度
9、传感器。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,它的测量温度范围为55125,在1085范围内,精度为0.5,现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性,适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等,ds18b20支持35.5v的电压范围,使系统设计更灵活、更方便、更便宜、体积更小。ds18b20可以程序设定912位的分辨率,精度为0.5,分辨率设定及用户设定的报警温度存储在e2prom中,掉电后依然保存。因此,本方案选用ds18b20作为温度测量传感器。从精度方面和计算方面来考虑本次选择ds18b20作为本次的温度
10、采集芯片。2.1.3 显示模块液晶显示采用每行显示16个字符,一共可以显示两行的jm1602c,能显示ascii码字符,如数字、大小写字母、各种符号等,液晶体积小、功耗低、显示操作简单 第三章 硬件模块介绍3.1 at89s52单片机介绍at89s52为 atmel 所生产的一种低功耗、高性能cmos8位微控制器,具有8k在系统可编程flsah存储器。3.1.1 at89s52主要功能1、拥有灵巧的8位cpu和在系统可编程flash2、晶片内部具时钟振荡器(传统最高工作频率可至 12mhz)3、内部程序存储器(rom)为 8kb4、内部数据存储器(ram)为 256字节5、32 个可编程i/o
11、 口线6、8 个中断向量源7、三个 16 位定时器/计数器8、三级加密程序存储器9、全双工uart串行通道3.1.2 at89s52各引脚功能介绍: 1)主电源引脚vss和vccvcc(40脚):at89s52电源正端输入,接+5v。vss(20脚):电源地端。2)外部晶振引脚xtal1和xtal2xtal1(18脚):单芯片系统时钟的反相放大器输入端。xtal2(19脚):系统时钟的反相放大器输出端。at89s52内部有一个时钟振荡电路,一般在设计上只要在 xtal1 和 xtal2 上接上一只石英振荡晶振和电容组成并联谐振回路,与内部振荡电路就产生自激振荡。如下图所示,晶振可以再1.2-1
12、2mhz之间选择,此外在两引脚与地之间加入电容值可以在5-30pf之间选择。电容的大小可起到频率微调,使系统更稳定,避免噪声干扰而死机的作用。xtal1xtal2c1c2晶振3)复位引脚rst/vpdreset/vpd(9脚):at89s52的重置引脚,高电平动作,当要对晶片重置时,只要对此引脚电平提升至高电平并保持两个机器周期以上的时间,at89s52便能完成系统重置的各项动作,使得内部特殊功能寄存器之内容均被设成已知状态,并且至地址0000h处开始读入程序代码而执行程序。在vcc掉电期间,此引脚可接上备用电源,由vpd向内部提供备用电源,以保持内部ram中的数据。常用的复位电路如下图所示。
13、rstsm22u10k104+vcc4)ea/vppea/vpp(31脚):ea为英文external access的缩写,表示存取外部程序代码之意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部eprom中)来执行程序。当ea/vpp为高电平时,访问内部程序存储器。5)ale/progale/prog(30脚):ale是英文address latch enable的缩写,表示地址锁存器启用信号。at89s52可以利用这支引脚来触发外部的8位锁存器(如74ls373),将端口0的地址总线(a0a7)锁进锁存器中,因为at89s52是以多工的方式送出地址及数据。平时在
14、程序执行时ale引脚的输出频率约是系统工作频率的1/6,因此可以用来驱动其他周边晶片的时基输入。此外在烧录8751程序代码时,此引脚会被当成程序规划的特殊功能来使用。6)/psen/psen(29脚):此为program store enable的缩写,其意为程序储存启用,当8051被设成为读取外部程序代码工作模式时(ea=0),会送出此信号以便取得程序代码,通常这支脚是接到eprom的oe脚。at89s52可以利用psen及rd引脚分别启用存在外部的ram与eprom,使得数据存储器与程序存储器可以合并在一起而共用64k的定址范围。7)port0(p0.0p0.7)port0(p0.0p0.
15、7)(32-39脚):端口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的外部存储器空间。8)port2(p2.0p2.7)port2(p
16、2.0p2.7)(21-28脚):端口2是具有内部提升电路的双向i/o端口,每一个引脚可以推动4个ls的ttl负载,若将端口2的输出设为高电平时,此端口便能当成输入端口来使用。p2除了当做一般i/o端口使用外,若是在at89s52扩充外接程序存储器或数据存储器时,也提供地址总线的高字节a8a15,这个时候p2便不能当做i/o来使用了。9)port1(p1.0p1.7)port1(p1.0p1.7)(1-8脚):端口1也是具有内部提升电路的双向i/o端口,其输出缓冲器可以推动4个ls ttl负载,同样地若将端口1的输出设为高电平,便是由此端口来输入数据。如果是使用8052或是8032的话,p1.
17、0又当做定时器2的外部脉冲输入脚,而p1.1可以有t2ex功能,可以做外部中断输入的触发脚位。10)port3(p3.0p3.7)port3(p3.0p3.7)(10-17脚):端口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.
18、6:wr:外部数据存储器的写入信号。p3.7:rd,外部数据存储器的读取信号。3.1.3 中断源 中断时为使用单片机具有对外部或内部随机发生的时间实时处理而设置的,中断功能的存在,很大程度上提高了单片机的处理外部或内部时间的能力。at89s52单片机有6个中断源,它们的符号、名称及产生的条件分别解释如下:int0:外部中断0,由p3.2端口线引入,低电平或下降沿引起。int1:外部中断1,由p3.3端口线引入,低电平或下降沿引起。t0:定时器/计数器0中断,由t0计数器计满回零引起。t1:定时器/计数器1中断,由t1计数器计满回零引起。t2:定时器/计数器2中断,由t2计数器计满回零引起。ti
19、/ri:串行口中断,串行端口完成一帧字符发送/接收后引起。以上6个中断源中,t2是52单片机特有的,它们默认中断级别如下:中断源中断级别序号(c语言用)入口地址(汇编)int0外部中断0最高00003ht0定时器/计数器0中断第21000bhint1外部中断1第320013ht1定时器/计数器1中断第43001bhti/ri串行口中断第540023ht2定时器/计数器2中断最低5002bh 表3.1.1 52单片机中断级别 1)中断允许寄存器ie 中断允许寄存器用来设定各个中断源的打开和关闭,ie在特殊功能寄存器中,字节地址为a8h,位地址(由地位到高位)分别是a8hafh,该寄存器可进行位寻
20、址,即可对该寄存器的每位进行单独操作。单片机复位时ie全部被清0.各定义见下表3.1.2:表3.1.2 中断允许寄存器ie位序号d7d6d5d4d3d2d1d0位符号ea-et2eset1ex1et0ex0位地址afh-adhachabhaaha9ha8hea全局中断允许位ea=1,打开全局中断控制,在此条件下,由各个中断控制位确定相应中断打开和关闭。ea=0,关闭全部中断。 - ,无效位et2定时器/计数器2中断允许位et2=1,打开t2中断。et2=0,关闭t2中断。es串行口中断允许位es=1,打开串行口中断es=0,关闭串行口中断et1定时器/计数器1中断允许位et1=1,打开t1中断
21、。et1=0,关闭t1中断。ex1外部中断1中断允许位ex1=1,打开外部中断1中断ex1=0,关闭外部中断1中断et0定时器/计数器0中断允许位et0=1,打开t0中断。et0=0,关闭t0中断。ex0外部中断0中断允许位ex0=1,打开外部中断0中断ex0=0,关闭外部中断0中断2)中断优先级寄存器ip中断优先级寄存器在特殊功能寄存器中,字节地址为b8h,位地址(由低位到高位)分别是b8h-bfh,ip用来设定各个中断源属于两级中断中哪一级。该寄存器可进行位寻址,即可对该寄存器的每一位进行单独操作。单片机复位时ip全部被清0,各位定义见表3.1.3:表3.1.3中断优先级寄存器ip位序号d
22、7d6d5d4d3d2d1d0位符号-pspt1px1pt0px0位地址-bchbbhbahb9hb8h- 无效位ps串行口中断优先级控制位ps=1,串行口中断定义为高优先级中断。ps=0,串行口中断定义为低优先级中断。pt1定时器/计数器1中断优先级控制位pt1=1,定时器/计数器1中断定义为高优先级中断。pt1=0,定时器/计数器1中断定义为低优先级中断。px1外部中断1中断优先级控制位px1=1,外部中断1定义为高优先级中断。px1=0,外部中断1定义为低优先级中断。pt0定时器/计数器0中断优先级控制位pt0=1,定时器/计数器0中断定义为高优先级中断。pt0=0,定时器/计数器0中断
23、定义为低优先级中断。px0外部中断0中断优先级控制位px0=1,外部中断0定义为高优先级中断。px0=0,外部中断0定义为低优先级中断。3)定时器/计数器工作方式寄存器tmod 定时器/计数器工作方式寄存器在特殊功能寄存器中,字节地址为89h,不能位寻址,tmod用来确定定时器的工作方式及功能选择。单片机复位时tmod全部被清0。其各位的定义如表3.1.4:表3.1.4 定时器/计数器工作方式寄存器tmod位序号d7d6d5d4d3d2d1d0位符号gatec/tm1m0gatec/tm1m0定时器1定时器0由表3.1.4可知,tmod的高4位用于设置定时器1,低4位用来设置定时器0。对应4位
24、的含义如下:gate门控制位gate=0,定时器/计数器启动与停止仅受tcon寄存器中trx(x=0,1)来控制。gate=1,定时器/计数器启动与停止由tcon寄存器中trx(x=0,1)和外部中断引脚(int0和int1)上的电平状态来共同控制。c/t定时器模式和计数器模式选择位c/t=1,为计数器模式;c/t=0,为定时器模式。m1m0工作方式选择位每个定时器/计数器都有4种工作方式,它们由m1m0设定,对应关系表3.1.5:表3.1.5 定时器/计数器的4种工作方式m1m0 工作方式00方式0,为13位定时器/计数器01方式1,为16位定时器/计数器10方式2,8位初值自动重装的8位定
25、时器/计数器11方式3,仅适用于t0,分成两个8位计数器,t1停止计数4) 定时器/计数器控制寄存器tcon定时器/计数器控制寄存器在特殊功能寄存器中,字节地址为88h,位地址(由低位到高位)分别是88h-8fh,该寄存器可进行位寻址。tcon寄存器用来控制定时器的启、停,标志定时器溢出和中断情况。单片机复位时tcon全部被清0。其各位定义如表3.1.6.其中tf1、tr1、tf0和tr0位用于定时器/计数器;ie1、it1、ie0和it0用于外部中断。表3.1.6 定时器/计数器控制寄存器tcon位序号d7d6d5d4d3d2d1d0位符号tf1tr1tf0tr0ie1it1ie0it0位地
26、址8fh8eh8dh8ch8bh8ah89h88htf1定时器1溢出标志位当定时器1计满溢出时,由硬件使tf1置1,并且申请中断。进入中断服务程序后,由硬件自动清0。需要注意的是,如果使用定时器的中断,那么该位完全不用人为去操作但是如果使用软件查询方式的话,当查询到该位置1后,就需要用软件清0。tr1定时器1运行控制位由软件清0关闭定时器1。当gate=1,且int1为高电平时,tr1置1启动定时器1;当gate=0,tr1置1启动定时器1;tf0定时器0溢出标志其功能及操作方法同tf1。tr0定时器0运行控制位其功能及操作方法同tr1。ie1外部中断1请求标志当it1=0时,位电平触发方式,
27、每个机器周期的s5p2采样int1引脚,若int1脚位低电平,则置1,否则ie1清0.当it1=1时,int1位跳变沿触发方式,当第一个机械周期采样到int1位低电平时,则ie1=1,表示外部中断1正在向cpu申请中断。当cpu响应中断,转向中断服务程序时,该位由硬件清0。it1外部中断1触发方式位it1=0,为电平触发方式,引脚int1上低电平有效。it1=1,为跳变沿触发方式,应缴int1上的电平从高到低的负跳变有效。ie0外部中断0请求标志其功能及操作方法同ie1。it0外部中断0触发方式选择位。 其功能及操作方法同it1。3.2 ds18b20温度传感器介绍温度传感器的种类众多,在应用
28、与高精度、高可靠性的场合时dallas(达拉斯)公司生产的ds18b20温度传感器当仁不让。超小的体积,超低的硬件开消,抗干扰能力强,精度高,附加功能强,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现位的数字值读数方式。使得ds18b20更受欢迎。对于我们普通的电子爱好者来说,ds18b20的优势更是我们学习单片机技术和开发温度相关的小产品的不二选择。了解其工作原理和应用可以拓宽您对单片机开发的思路。3.2.1 ds18b20的主要特征: 独特的单线接口仅需要一个端口引脚进行通信;多个ds18b20可以并联在惟一的三线上,实现多点组网功能;无须外部器
29、件;可通过数据线供电,电压范围为3.05.5;零待机功耗;温度以或位数字;用户可定义报警设置;报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作; 3.2.2 ds18b20引脚结构图及其功能描述to92封装的ds18b20的引脚排列见下图,其引脚功能描述见表3.2.1。 图3.2.1 ds18b20实物图及封装表3.2.1ds18b20详细引脚功能描述序号名称引脚功能描述1gnd地信号2dq数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。3vdd可选择的vdd引脚。当工作于寄生电
30、源时,此引脚必须接地。c64 位rom和单线接口高速缓存存储器与控制逻辑温度传感器高温触发器th低温触发器tl配置寄存器8位crc发生器vdd3.2.3 ds18b20内部结构i/o 图3.2.2 ds18b20内部结构ds18b20采用脚pr35封装或脚soic封装,其内部结构框图如图3.2.2所示64位rom的结构开始位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后位是前面56位的crc检验码,这也是多个ds18b20可以采用一线进行通信的原因。温度报警触发器和,可通过软件写入户报警上下限。ds18b20温度传感器的内部存储器还包括一个高速暂存和一个非易失性的可电擦除的ee
31、ram。高速暂存ram的结构为字节的存储器,结构如表3.2.2所示。表3.2.2表高速暂存ram寄存器内存字节地址温度值低位(lsb)0温度值高位(msb)1高温限制(th)2低温限制(tl)3配置寄存器4保留5保留6保留7crc校验位8高速暂存器ram由9个字节的存储器组成。第0-1个字节是温度的显示位;第2和第3个字节是复的th和tl,同时第2和第3个字节的数字可以更新;第4个字节是配置寄存器,同时第4个字节的数字可以更新;第5、6、7三个字节是保留的。可电擦除e2porom又包括温度触发器th和tl,以及一个配置寄存器。表3.2.3列出了温度数据在高速暂存器ram的第0和第1个字节中的存
32、储格式。表3.2.3 温度数据存储格式位7位6位5位4位3位2位1位0232221202-12-22-32-4位15位14位13位12位11位10位9位8sssss262524表3.2.4 ds18b20温度转换的时间比较长,而且分辨率越高,所需要的温度数据转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。高速暂存的第、字节保留未用,表现为全逻辑。第字节读出前面所有字节的crc码,可用来检验数据,从而保证通信数据的正确性。当ds18b20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第、字节。单片机可以通过单线接口读
33、出该数据,读数据时低位在先,高位在后,数据格式以0.0625lsb形式表示。当符号位时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。表2是一部分温度值对应的二进制温度数据。表3.2.4 ds18b20温度转换时间表 ds18b20完成温度转换后,就把测得的温度值与ram中的th、t字节内容作比较。若th或ttl,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令作出响应。因此,可用多只ds18b20同时测量温度并进行报警搜索。在64位rom的最高有效字节中存储有循环冗余检验码(crc)。主机rom的前5
34、6位来计算crc值,并和存入ds18b20的crc值作比较,以判断主机收到的rom数据是否正确。ds18b20的测温原理是这这样的,器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器的脉冲输入。器件中还有一个计数门,当计数门打开时,ds18b20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将55所对应的一个基数分别置入减法计数器、温度寄存器中,计数器和温度寄存器被预置在55所对应的一个基数值。减法计数器对低温度系
35、数晶振产生的脉冲信号进行减法计数,当减法计数器的预置值减到时,温度寄存器的值将加,减法计数器的预置将重新被装入,减法计数器重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。另外,由于ds18b20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对ds18b20的各种操作按协议进行。操作协议为:初使化ds18b20(发复位脉冲)发rom功能命令发存储器操作命令处理数据。3.2.4 ds
36、18b20接口电路和工作时序ds18b20可以采用两种方式供电,一种是采用电源供电方式,此时ds18b20的1脚接地,2脚作为信号线,3脚接电源。另一种是寄生电源供电方式,如图3.2.3 所示单片机端口接单线总线,为保证在有效的ds18b20时钟周期内提供足够的电流,可用一个mosfet管来完成对总线的上拉。图3.2.3 ds18b20的接口电路当ds18b20处于写存储器操作和温度a/d转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。采用寄生电源供电方式时vdd端接地。由于单线制只有一根线,因此发送接口必须是三态的。由于ds18b20是在一根i/o线上读写数据,因此,对读写的数
37、据位有着严格的时序要求。ds18b20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、写数据、读数据。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。(1)ds18b20的初始化时序1) 先将数据线置高电平12) 延时(该时间要求不是很严格,但尽可能短一点)3) 数据线拉到低电平04) 延时750us(该时间范围可以再480-960us)5) 数据线拉到高电平16) 延时等待。如果初始化成功
38、则在15-60ms内产生一个由ds18b20返回的低电平0,据该状态可以确定它的存在。但应注意,不能无限等待,不然会是程序进入死循环,所以要进行超时判断7) 若cpu读到数据线上的低电平0后,还要进行延时,其延时的时间从发出高电平算起最少480us8) 将数据线再次拉到高电平1后结束(2)ds18b20的写数据 ) 数据线先置低电平0) 延时确定的时间为15us) 按从低位到高位的顺序发送数据(一次只发送一位) 延时时间为45us) 将数据线拉到高电平1) 重复1)-5)步骤,直到发送完整个字节) 最后将数据线拉到(2)ds18b20的读数据) 将数据线拉高到) 延时us) 将数据线拉低到0)
39、 延时6us) 将数据线拉高到1) 延时4us) 读数据线的状态得到一个状态位,并进行数据处理) 重复1)-7)步骤,直到读取完一个字节3.4 1602字符型液晶3.4.1 1602字符型液晶简介工业字符型液晶,能够同时显示16x02即32个字符。(16列2行)注:为了表示的方便 ,后文皆以1表示高电平,0表示低电平。1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5x7或者5x11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形
40、(用自定义cgram,显示效果也不好)。 1602lcd是指显示的内容为16x2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。 目前市面上字符液晶绝大多数是基于hd44780液晶芯片的,控制原理是完全相同的,因此基于hd44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。管脚功能 lcd1602引脚图1602采用标准的16脚接口,其中:第1脚:vss为电源地第2脚:vcc接5v电源正极第3脚:v0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10k的电位器调整对比度)。待添加的隐藏文字内容1第4
41、脚:rs为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。第5脚:rw为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。第6脚:e(或en)端为使能(enable)端。第714脚:d0d7为8位双向数据端。第1516脚:空脚或背灯电源。15脚背光正极,16脚背光负极。 1602lcd的特性+3.3v电压,对比度可调 内含复位电路 提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能 有80字节显示数据存储器ddram 内建有192个5x7点阵的字型的字符发生器cgrom8个可由用户自定义的5x7的字符发生器cgram1602lcd特征及应用微功耗、
42、体积小、显示内容丰富、超薄轻巧,常用在袖珍式仪表和低功耗应用系统中。 操作控制注:关于e=h脉冲开始时初始化e为0,然后置e为1。字符集1602液晶模块内部的字符发生存储器(cgrom)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“a”的代码是01000001b(41h),显示时模块把地址41h中的点阵字符图形显示出来,我们就能看到字母“a”。因为1602识别的是ascii码,试验可以用ascii码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如a。以下是1602的16进制as
43、cii码表地址:读的时候,先读左边那列,再读上面那行,如:感叹号!的ascii为0x21,字母b的ascii为0x42(前面加0x表示十六进制)指令集1602通过d0d7的8位数据端传输数据和指令。显示模式设置: (初始化)0011 1000 0x38 设置162显示,57点阵,8位数据接口;显示开关及光标设置: (初始化)0000 1dcb d显示(1有效)、c光标显示(1有效)、b光标闪烁(1有效)0000 01ns n=1(读或写一个字符后地址指针加1 &光标加1),n=0(读或写一个字符后地址指针减1 &光标减1),s=1 且 n=1 (当写一个字符后,整屏显示左移)s=0 当写一个字
44、符后,整屏显示不移动数据指针设置:数据首地址为80h,所以数据地址为80h+地址码(0-27h,40-67h)其他设置:01h(显示清屏,数据指针=0,所有显示=0);02h(显示回车,数据指针=0)。 第四章 流程图根据硬件电路图,综合自己的设计思路,先画出各子程序流程图,再根据流程图编好程序,最后组成系统的整体程序。4.1 系统温度采集流程图本文的温度采集流程图,如图4.1所示:写0xcc(跳过rom指令)写0x44(启动温度转换命令)写0xbe(读ram温度存储数据)temp_l=读ram低位temp_h=读ram高位dis=(temp_h*256+temp_l)/16将温度转换成十进制
45、初始化延时1ms1602lcd显示图4.1 温度采集流程图第五章 软件模块介绍5.1 keil 软件 5.1.1 keil软件使用方法简介:keil c51 软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,汇编语言和 c 语言的程序设计,界面友好,易学易用。 下面介绍keil c51软件的使用方法 进入 keil c51 后,屏幕如5.1.1图所示。几秒钟后出现编辑界简单程序的调试 图5.1.1 进入keil c51后的编辑界面学习程序设计语言、学习某种程序软件,最好的方法是直接操作实践。下面通过简单的编程、调试,引导大家学习keil c51软件的基本使用方法和基
46、本的调试技巧。 (1)新建工程单击project菜单,如图5.1.2所示,在弹出的下拉菜单中选中new project选项 图5.1.2 新建工程然后选择你要保存的路径,输入工程文件的名字,比如保存到d盘的cmj51文件夹里,工程文件的名字为cmj1如图5.1.3所示,然后点击保存. 图5.1.3 保存工程这时会弹出一个对话框,要求你选择单片机的型号,你可以根据你使用的单片机来选择,keil c51几乎支持所有的51核的单片机,我这里还是以大家用的比较多的atmel 的89c51来说明,如下图所示,选择89c51之后,右边栏是对这个单片机的基本的说明,然后点击确定. 图5.1.4 选择单片机型
47、号完成上一步骤后,屏幕如下图所示图5.1.5 添加完单片机后的窗口界面到现在为止,我们还没有编写一句程序,下面开始编写我们的第一个程序。(2)新建文件在图4.1.6中,单击“file”菜单,再下拉菜单中单击“new”选项 图5.1.6 添加文件新建文件后屏幕如下图所示图5.1.7 添加完文件后的窗口界面此时光标在编辑窗口里闪烁,这时可以键入用户的应用程序了。键入程序后界面如图4.1.8:图5.1.8 键入程序后界面单击file菜单下的save,出现一个对话框,键入文件名,后缀名为 asm或 . c,进行保存到d盘cmj51文件夹下。界面如下:图5.1.9 保存界面(3)添加文件回到编辑界面后,
48、单击“target 1”前面的“”号,然后在“source group 1”上单击右键,弹出如下菜单图5.1.10 将文件加入工程的菜单然后单击“add file to group source group 1” 屏幕如图5.1.11所示图5.1.11 选中文件后的对话框选中cmj1.asm,然后单击“add ”屏幕好下图所示图5.1.12 将文件加入工程后的窗口(4)汇编连接单击如图4.1.13所示的图标(rebuilt all target files)图5.1.13 编译全部文件界面出现如5.1.14界面:图5.1.14 编译后的界面(5)运行看结果单击图标(start/stop deb
49、ug session),进入运行状态出现如图5.1.15界面:图5.1.15 调试界面单击一次的图标(step into),程序就能运行一条,一直到程序的结束(ret)。运行结束后,直接可以在如图5.1.16界面中看结果。图5.1.16 特殊功能寄存器特殊功能寄存器中的内容可以在界面中直接看到,存储单元的内容在memory #1中输入如上图所示的地址,即可看到该单元的内容为66h。参考文献 1.51单片机c语言教程 郭天祥.2单片机实验指导书, 河南工业职业技术学院351系列单片机设计实例,楼然苗、李光飞编著,北京航空航天出版社;4.单片机基本原理及应用系统,卢艳军,机械工业出版社;附录1 系统c语言程序/*读取ds18b20温度,通过lcd1602显示出来第一行: 实时温度值第二行: 最大值和最小值*/ /*头文件*/#include #include #define uint unsigned i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年重庆考客运资格证
- 2024成品采购合同范文
- 2024技术开发合同模板
- 2024物业保洁员工用工合同
- 2024工程装饰合同范文
- 垃圾分类培训会议记录三篇
- 2024标准产品买卖合同书
- 2024建行外汇借款合同范本
- 深圳大学《油料与谷物科学原理》2022-2023学年第一学期期末试卷
- 艾草委托代工合同范本(2篇)
- 泰国投资指导手册
- 2024年新华社招聘笔试参考题库附带答案详解
- 全国初中数学青年教师优质课一等奖《反比例函数的图象和性质》课件
- (高清版)DZT 0265-2014 遥感影像地图制作规范(1:50000、1:250000)
- 汽车直播活动策划方案范文
- 2024中考复习必背初中英语单词词汇表(苏教译林版)
- 锁骨下动脉 (1)讲解
- 退役军人就业培训课件
- TCLPA 002.1-2023 静脉用药调配中心评估规范 第1部分:标准化文件框架及编写规则
- 20世纪时尚流行文化智慧树知到期末考试答案2024年
- 第四章-国防动员
评论
0/150
提交评论