1、基于单片机的数字式温度计设计单 片 机 课 程 设 计 题 目 数字式温度计设计 姓 名 学 院 专 业 学 号 指导教师 成 绩 xxxx年xx月xx日制摘 要随着单片机技术的不断发展,单片机在电子产品中的应用越来越广 泛。单片机具有集成度高,处理能力强,可靠性高,系统结构简单,价格低廉的优点,因此被广泛应用。温度检测则是单片机在工业生产中的一个典型的应用。随着电子技术的发展,特别是随着大规模集成电路的产生,给人们的生活带来了根本性的变化,如果说微型计算机的出现使现代的科学研究得到了质的飞跃,那么单片机技术的出现则是给现代工业控制测控领域带来了一次新的革命。目前,单片机在工业控制系统诸多领域
2、得到了极为广泛的应用。特别是其中的C51、52系列的单片机的出现,具有更好的稳定性,更快和更准确的运算精度,推动了工业生产,影响着人们的生活。而本次设计就是要通过以52系列单片机为核心,以开发板为平台,设计一个数字式温度计,要求使用温度传感器( DS18B20)测量温度,经单片机处理用液晶显示温度值。 第一章 前言1.1 单片机简介当今在全世界范围内,已经形成了以计算机(Computer)通信(Communication)和消费类电子(Consumptive Electron)三足鼎立的发展新格局,而作为做21世纪的电子专业工科大学生,无论是从事科学研究工作,还是开办电子电器制造企业,抑或是经
3、营电子元器件贸易,不仅要熟练地使用通用微机进行各种数据处理,还要把计算机技术运用到本专业领域或相关领域,即具有“开发”能力。所以新世纪的工科大学生既要掌握通用微机,又要掌握“单片机”。 单片机是一种集成电路芯片,采用超大规模技术把具有数据处理能力(如算术运算,逻辑运算、数据传送、中断处理)的微处理器(CPU),随机存取数据存储器(RAM),只读程序存储器(ROM),输入输出电路(I/O口),可能还包括定时计数器,串行通信口(SCI),显示驱动电路(LCD或LED驱动电路),脉宽调制电路(PWM),模拟多路转换器及A/D转换器等电路集成到一块单块芯片上,构成一个最小然而完善的计算机系统。这些电路
4、能在软件的控制下准确、迅速、高效地完成程序设计者事先规定的任务。由此来看,单片机有着微处理器所不具备的功能,它可单独地完成现代工业控制所要求的智能化控制功能,这是单片机最大的特征。单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域。正是因为单片机功能之强大,应用范围之广,我们要努力掌握它。我们虽然在校学习了一些很基础的知识,但只有通过虽然不断的学习和实践才能成长,这回的毕业设计,让我好好地重新认识了单片机重要性,让我的单片机知识有了新的飞跃!1.2单片机的产生与发展1974 年,美国仙童(Firchild)公司研制的世界第一台单片微型机F8.该机有两块
5、集成电路芯片组成,结构奇特,具有与众不同的指令系统,深受民用电器和仪器仪表领域的欢迎和重视.从此,单片机开始迅速发展,应用领域也在不断扩大.现已成为微型计算机的重要分支,单片机的发展过程通常可以分为一下几个发展过程.(1)第一代单片机(1974-1976):这是单片机发展的起步阶段.在这个时期生产的单片机特点是,制造工艺落后和集成度低,而且采用了双片形式.典型的代表产品有Fairchild公司的F8和Mostek387公司的3870等.(2)第二代单片机(1976-1978):这是单片机的第二发展阶段.这个时代生产的单片机随眼已能在单块芯片内集成CPU,并行口,定时器,RAM和ROM等功能部件
6、,但性能低,品种少,应用范围也不是很广,典型的产品有Inrel公司的MCS-48系列机. (3)第三代单片机(1979-1982):这是八位单片机成熟的阶段.这一代单片机和前两代相比,不仅存储容量和寻址范围大,而且中断源,并行I/O口和定时器/计数器个数都有了不同程度的增加,更有甚者是新集成了全双工穿行通信接口电路.在指令系统方面,普遍增设了惩处法和比较指令.这一时期生产的单片机品种齐全,可以满足各种不同领域的需要.代表产品有Intel公司的MCS-51系列机,Motorola公司的MC6801系列机,TI公司的TMS7000系列机,此外,Rockwell,NS,GI和日本松下等公司也先后生产
7、了自己的单片机系列。(4)第四代单片机(1983年以后):这是十六位单片机和八位高性能单片机并行发展的时代,十六位机的特点是,工艺先进,集成度高和内部功能强,加法运算速度可达到1us以上,而且允许用户采用面向工业控制的专用语言,如PL/MPLUS C和Forth语言等.代便产品有intel公司的MCS-96系列,TI公司的TMS9900,NEC公司的783系列和NS公司的HPC16040等。然而,由于十六位单片机价格比较贵, 销售量不大,大量应用领域需要的是高性能,大容量和多功能新型八位单片机.这些单片机有Intel公司的88044(双CPU工作),Zilog公司的Super8(含DMA通道)
8、,Motorola公司的MC68CH11(内含E2prom及A/D电路)和WDC公司的65C124(内含网络接口电路),等等。1.3 单片机的运用单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:1.在智能仪器仪表上的应用单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精
9、密的测量设备(功率计,示波器,各种分析仪)。2.在工业控制中的应用用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。3.在家用电器中的应用可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。4.在计算机网络和通信领域中的应用现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换
10、机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。5.单片机在医用设备领域中的应用单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。1.4 LED显示控制技术LED的控制系统包括输入接口电路、信号控制、转换和数字化处理电路及输出接口电路等,涉及的具体技术很多,其关键技术包括串行传输与并行传输技术、动态扫描与静态锁存技术等。1.4.1 串行传输与并行传输技术LED的数据传输方式主要有串行和并行两种。日前普遍采用串
11、行控制技术,显示屏每个单元内部的不同驱动电路和各级联单元之间,每个时钟仅传送一位数据。采用这种方式的驱动IC种类较多,不同显示单元之间的联线较少,可减少显示单元的数据传输驱动元件,从而提高整个系统的可靠性和性价比,具体工程实现也较为容易。1.4.2 动态扫描与静态锁存技术LED控制系统实现显示信息的刷新技术有动态扫描和静态锁存两种方式。一般室内显示屏多采用动态扫描技术,即一行发光二极管共用一行驱动寄存器,根据共用一行驱动寄存器的发光二极管像素数目,分为1/4,1/16扫描等。室外显示屏基本上采用静态锁存技术,即每一个发光二极管都对应有一个驱动寄存器,无需时分工作,从而保证了每一个发光二极管的亮
12、度占空比为100%。动态扫描法可以大大减少控制器的I/O口,因此应用较广。二、总体设计方案2.1数字温度计设计方案论证2.1.1方案一由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。2.1.2 方案二 进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。从以
13、上两种方案,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。2.2方案二的总体设计框图温度计电路设计总体设计框图如图2.1所示,控制器采用单片机AT89S52,温度传感器采用DS18B20,用1602液晶显示实现温度显示。图2.1 总体设计方框图 2.2.1 主控制器单片机AT89S52具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。2.2.2 显示电路1602液晶功耗较小,可直接与单片机接口相接。电源直接与电源电路相接,使用单片机的P0口和P1口与1602进行通信。2.2.3温度传感器
14、DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现912位的数字值读数方式。DS18B20的性能特点如下:独特的单线接口仅需要一个端口引脚进行通信;多个DS18B20可以并联在惟一的三线上,实现多点组网功能;无须外部器件;可通过数据线供电,电压范围为3.05.5V;零待机功耗;温度以9或12位数字;用户可定义报警设置;报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作; DS18B20采用3
15、脚PR35封装或8脚SOIC封装,其内部结构框图如图2.2所示。第三章 系统硬件电路设计3.1 STC89C51的介绍 STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MA
16、X810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外 STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。其管脚结构如图所示 3.2 时钟振荡电路 采用12M晶振外接电容构成,用来提供单片机运行的脉冲时序。最常用的是在 XTAL1和XTAL2之间接晶体振荡器与电路构成稳定的
17、自激振荡器,如图所示为单片机最常用的时钟振荡电路的接法,其中晶振可选用振荡频率为12MHz的石英晶体,电容器一般选择30PF左右。 3.3 复位电路 本设计中AT89C52是采用上电自动复位和按键复位两种方式。最简单的复位电路如图所示。上电瞬间,RC电路充电,RST引线端出现正脉冲,只要RST端保持10ms以上的高电平,就能使单片机有效地复位。其中R1选择1K的电阻,电容器一般选 10F。 3.4 LED液晶显示电路 液晶显示器(Liquid Crystal Display,LCD)的主要原理是以电流刺激液晶分子产生点、线、面并配合背部灯管构成画面。该设计中用到的1602应用 比较常见,160
18、2液晶以并行操作方式居多。显示电路是采用P2口输出段码至LED,此种显示方式的优点是显示清晰,软件设计简单,连线较少。 3.5 传感器采集电路 DS18B20是美国DALLAS半导体公司推出的第一片支持“一线总线”接口的温度传感器,它具有微型化、低功耗、高性能、抗干扰能力强、易配位处理器等优点,可直接将温度转化成串行数字信号供处理器处理。它采用单条信号线,既可传输时钟,又可传输数据,而且数据传输是双向的,因而这种单总线技术具有线路简单,硬件开销小,成本低廉便于总线扩展和维护等优点。 第四章 系统程序设计4.1 主程序设计 开始 4.2 LCD液晶显示程序设计 4.3 温度采集程序设计温度转换命
19、令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。温度转换命令子程序流程图 第五章 调试及性能分析5.1原材料的选择与采购本次设计在原材料的选择与采购上做到了设计最优化,即用最小的开支,获得性价比较高的元器件和材料。设计中,印刷电路板可采用单面板或是采用双面板。选元器件时,尽量选择能使电路简化的器件。例如,为了不增大电路板的体积及减小功耗,本设计采用89C52单片机,体积小,工作电压低。5.2 印刷电路板的设计与制作在PCB图的设计中,对DXP其中的很多功能是不熟练,画出来的图不仅不美观而且很多地方的布线不符合实际
20、的要求。PCB图画好以后,就是布局,然后最重要的就是安装和焊接元件了。安装和焊接其实是并行的。在这个过程中,各类元件一定要按顺序进行,即要先焊跳线,再个小的元件,接着就是那些中等一些的,然后就是那些大的元件。这样会使所制的板更加容易,板面完善。5.3整机的调试与测试过程此次设计硬件需自行制作并焊接元件。在做好硬件电路以后,进入软件调试阶段首先是测试显示电路的正确性,根据硬件写好一段显示程序,写入单片机中。安装好硬件,上电,显示正常,达到预期效果。证明显示电路正常。然后测试得到温度程序,将初始化程序,DS18B20正常工作的初始化程序、写DS18B20程序、读DS18B20程序,得到温度子程序,
21、温度转换子程序,数据转换子程序,显示子程序正确编排后写入单片机中,上电后,显示当前温度。证明温度传感器DS18B20工作正常,各部分子程序运行正常。程序的烧写没有出现问题,在程序中通过可以改写一些数字来设置不同的最低测量温度以及最高温度,前提在温度计的测量量程之内。以上调试结果显示各功能均能正常工作!第六章 参考文献1 马潮 詹卫前 耿德跟 ATMEGA8原理及应用手册清华大学出版社,2003年2 何立民单片机中级教程原理与应用北京航空航天大学出版社,2000年3 何立民MCS-51单片机应用系统设计北京航空航天大学出版社,2000年4 王嘉陵毕业论文写作与答辩四川大学出版社,2003年5 赵
22、润林 张迎辉单片机原理与应用教程北京大学出版社,20056 周立功单片机原理及接口技术机械工业出版社,2002年附件原理图系统程序/DS18B20温度检测及其液晶显示#include /包含单片机寄存器的头文件#include /包含_nop_()函数定义的头文件unsigned char code digit11=0123456789-; /定义字符数组显示数字unsigned char code Str=DS18B20; /说明显示的是温度unsigned char code Error= DS18B20 ERROR; /说明没有检测到DS18B20unsigned char code E
23、rror1= PLEASE CHECK; /说明没有检测到DS18B20unsigned char code Temp=WENDU:; /说明显示的是温度unsigned char code Cent=Cent; /温度单位unsigned char flag,tltemp; /负温度标志 和临时暂存变量/*以下是对液晶模块的操作程序*/sbit RS=P00; /寄存器选择位,将RS位定义为P2.0引脚sbit RW=P01; /读写选择位,将RW位定义为P2.1引脚sbit E=P02; /使能信号位,将E位定义为P2.2引脚sbit BF=P27; /忙碌标志位,将BF位定义为P0.7引
24、脚sbit P34=P34;/*函数功能:延时1ms(3j+2)*i=(333+2)10=1010(微秒),可以认为是1毫秒*/void delay1ms() unsigned char i,j; for(i=0;i4;i+) for(j=0;j33;j+) ; /*函数功能:延时若干毫秒入口参数:n*/ void delaynms(unsigned char n) unsigned char i; for(i=0;in;i+) delay1ms(); /*函数功能:判断液晶模块的忙碌状态返回值:result。result=1,忙碌;result=0,不忙*/bit BusyTest(void
25、) bit result; RS=0; /根据规定,RS为低电平,RW为高电平时,可以读状态 RW=1; E=1; /E=1,才允许读写 _nop_(); /空操作 _nop_(); _nop_(); _nop_(); /空操作四个机器周期,给硬件反应时间 result=BF; /将忙碌标志电平赋给result E=0; /将E恢复低电平 return result; /*函数功能:将模式设置指令或显示地址写入液晶模块入口参数:dictate*/void WriteInstruction (unsigned char dictate) while(BusyTest()=1); /如果忙就等待
26、RS=0; /根据规定,RS和R/W同时为低电平时,可以写入指令 RW=0; E=0; /E置低电平(根据表8-6,写指令时,E为高脉冲, / 就是让E从0到1发生正跳变,所以应先置0 _nop_(); _nop_(); /空操作两个机器周期,给硬件反应时间 P2=dictate; /将数据送入P0口,即写入指令或地址 _nop_(); _nop_(); _nop_(); _nop_(); /空操作四个机器周期,给硬件反应时间 E=1; /E置高电平 _nop_(); _nop_(); _nop_(); _nop_(); /空操作四个机器周期,给硬件反应时间 E=0; /当E由高电平跳变成低电
27、平时,液晶模块开始执行命令 /*函数功能:指定字符显示的实际地址入口参数:x*/ void WriteAddress(unsigned char x) WriteInstruction(x|0x80); /显示位置的确定方法规定为80H+地址码x /*函数功能:将数据(字符的标准ASCII码)写入液晶模块入口参数:y(为字符常量)*/ void WriteData(unsigned char y) while(BusyTest()=1); RS=1; /RS为高电平,RW为低电平时,可以写入数据 RW=0; E=0; /E置低电平(根据表8-6,写指令时,E为高脉冲, / 就是让E从0到1发生正跳变,所以应先置0 P2=y; /将数据送入P0口,即将数据写入液晶模块 _nop_(); _nop_(); _nop_(); _nop_(); /空操作四个机器周期,给硬件反应时间 E=1; /E置高电平 _nop_(); _nop_(); _nop_(); _nop_(); /空操作四个机器周期,给硬件反应时间 E=0; /当E由高电平跳变成低电平时,液晶模块开始执行命令 /*函数功能:对LCD的显示模式进行初始化设置*/void LcdInitiate(void) delaynms(15); /延
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1