《课程设计(论文)基于单片机的温度测量和报警系统的设计.doc》由会员分享,可在线阅读,更多相关《课程设计(论文)基于单片机的温度测量和报警系统的设计.doc(27页珍藏版)》请在三一办公上搜索。
1、1绪论1.1设计背景温度采集系统的开发在很大意义上提高了生产生活的需要,是工业生产和自动控制中最常见的工艺参数之一,方便了生产中对温度的控制,有效的提高了生产质量。外围电路比较简单,测量精度较高,分辨力高,使用方便。温度检测是现代检测技术的重要组成部分,在保证产品质量、节约能源和安全生产等方面起着关键的作用。本次课程设计正是为了完成温度采集而设计的,可以说与人们的日常生活是息息相关的,具有很大的现实意义。现代工业设计及日常生活中温度控制都起着重要的作用,早期的温度控制主要用于工厂时间生产中,能起到实时采集温度数据,提高生产效率,产品质量之用。随着人们生活质量的提高,现代社会中的温度控制不仅应用
2、在工厂生产方面也应用于酒店,厂房以及家庭生活中,在有些应用中,如高精度的生产厂房,对温度的要求及其严格,温度的变化极有可能对生产的产品造成极大的影响。因此,这就需要一种能够及时检测温度变化以及温度变化的设备,提供温度数据值,使人们对温度的变化做及时的调整,温度控制器可根据人们不同的应用环境自行设置该环境的温度值,及时反映生产,生活中温度变化时人们能及时看到温度变化的第一手资料,提示人们温度变化情况,协助人们能及时的调整,起到温度报警作用,使温度控制更好的服务于社会生产、生活【2】。1.2设计要求设计基于单片机的温度控制器,用于显示实时温度,并且当温度值超出系统设定的范围值时,电路要有报警的功能
3、。具体要求如下:(1)温度测量范围:0100(2)具有超出上下限报警功能(3)精度:0.1(4)利用数码管显示温度值1.3设计任务本设计以单片机为核心的温度控制器,在该设计中采用高精度的温度传感器对温度进行实时精确测量,用超低温漂移高精度运算放大器OP07将温度-电压信号进行放大,再送入12位的A/D转换器进行A/D转换以便于单片机进行处理,最后通过四位LED数码管实时显示,并有越限声光报警电路,从而实现自动检测报警【3】。2系统总体方案设计2.1系统总体设计框图及其说明CPU报警电路A/D转换电路译码、信号放大显示电路放大电路传感器图2.1 系统流程框图工作原理:在导线中输出利用传感器接收的
4、电压信号,经过运算放大器后实现A/D(模拟量转换为数字量)转换,输入至CPU也即单片机与系统自设温度值比较并输出显示实时温度值,如果高于系统自设值,则发出一个接通报警电路的信号报警,具体流程图如图2.1。2.2系统芯片及其元器件的选择2.2.1 单片机AT89S51图2.2 AT89S51芯片 AT89S51 是一个低功耗,高性能CMOS 8位单片机,片内含8k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通
5、用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案【7】。此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。由于系统控制方案简单 ,数据量也不大 ,考虑到电路的简单和成本等因素 ,因此在本设计中选用 ATMEL 公司的 AT89S51单片机作为主控芯片。
6、主控模块采用单片机最小系统是由于 AT89S51芯片内含有4 kB的 E2PROM ,无需外扩存储器 ,电路简单可靠 ,其时钟频率为 024 MHz 。在系统中,其功能是实现温度的数字值采集,完成温度的数字采集值到对应数字温度的转换计算,并把计算的数字温度转换相应的显示段码,控制LED显示器以动态扫描方式进行温度显示【4】。其主要功能特性:兼容MCS-51指令系统4k可反复擦写(1000次)ISP Flash ROM32个双向I/O口2个16位可编程定时/计数器 全双工UART串行中断口线128x8 bit内部RAM2个外部中断源双数据寄存器指针中断唤醒省电模式3级加密位设置空闲和省电功能看门
7、狗(WDT)电路软件4.5-5.5V工作电压时钟频率0-33MHz表2-1 AT89S51功能特性 AT89S51管脚说明,如图2.3所示。 图2.3 PDIP封装的AT89S51管脚VCC:电源电压输入端。 GND:电源地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4
8、TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄
9、存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口除了作为普通I/O口,还有第二功能: P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(T0定时器的外部计数输入) P3.5 T1(T1定时器的外部计数输入) P3.6 /WR(外部数据存储器的写选通
10、) P3.7 /RD(外部数据存储器的读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 I/O口作为输入口时有两种工作方式,即所谓的读端口与读引脚。读端口时实际上并不从外部读入数据,而是把端口锁存器的内容读入到内部总线,经过某种运算或变换后再写回到端口锁存器。只有读端口时才真正地把外部的数据读入到内部总线。89C51的P0、P1、P2、P3口作为输入时都是准双向口。除了P1口外P0、P2、P3口都还有其他的功能。 RST:复位输入端,高电平有效。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:地址锁存允许/编程脉冲信号端。当访问外部存储器时,地址锁存允
11、许的输出电平用于锁存地址的低位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 PSEN:外部程序存储器的选通信号,低电平有效。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/
12、PSEN信号将不出现。 EA/VPP:外部程序存储器访问允许。当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:片内振荡器反相放大器和时钟发生器的输入端。 XTAL2:片内振荡器反相放大器的输出端【5】。2.2.2 传感器及放大器的选择根据课题设计要求可知该系统需要利用电压型温度传感器采集室温并产生10mv/的电压信号,将放大后的信号送给转换器进行转换,通过单片机设定上下限报警
13、温度并显示转换后的室温。传感器的比较选择方案如下:方案一:采用热敏电阻,可满足0-100的测量范围,但热敏电阻精度,重复性,可靠性都比较差,对于检测小于0.1的温度信号是不适用的。 方案二:采用电流型温度传感器AD590。AD590具有较高精度和重复性(重复性优于0.1)其良好的非线性可以保证优于0.2的测量精度,利用其重复性较好的特点,通过非线性补偿,可以达到+0.2测量精度。AD590 流灵敏度1uA/K。它是二端器件,具有很宽的工作电源电压范围和很高的输入阻抗。作为一种高阻电流源,对于它不需要考虑传输线上的电压信号损失和噪声干扰的问题,因此特别适合做远距离测量或控制应用。出于同样的道理,
14、AD590也特别适用于多点温度测量系统,而不必考虑选择开关或CMOS多路转换开关所引入的附加电阻造成的误差。由于采用了一种独特的电路结构,并利用最新的薄膜激光微调技术作最后的定标,因此AD590具有很高的精度。但是,由于AD590采集到的信号是电流信号,在将数据传给ADC0804前还要先把电流信号转变成电压信号,因此,用AD590来检测、采集室温的电路比较复杂。而且,在高精度测温电路中,必须考虑AD590的输出电流不被分流影响。方案三,采用电压型温度传感器LM35D。LM35D是精密集成电路温度传感器,它的输出电压与摄氏温度线性成比例, LM35D无需外部校准或微调来提供0.2的常用的室温精度
15、, 因为线性极好,所以编程时易于实现。因此,选用此方案。在温度测量电路中采用方案三,使用线性成比例(10mV/)的电压型温度传感器,之后,将采集到的微弱电压信号经过整个硬件与软件系统放大100倍后的电压信号使其显示就是室温。首先,使采集到的电压信号经过放大电路中的放大器OP07放大十倍后送入AD574的输入端,A/D转换器将模拟信号转换为数字信号后传给AT89S51。该系统以AT89S51单片机为核心,通过单片机编程可以实现高温(100)、低温(0)报警的控制,将扩大500倍的信号缩小5倍,至此已将输入的微弱电压信号放大了100倍,现在的电压值便是室温值。然后经过P1口将信号传送给LED八段数
16、码管动态显示室温。采用MCS51系列单片机作为核心监控器对外界温度进行测量。这样,既可以降低对温度传感器和放大电路的要求,从而降低成本,又可以针对不同外部环境或不同通道对温度显示及报警设定进行灵活修改【5】。电压型温度传感器LM35D:LM35系列是精密集成电路温度传感器,它们的输出电压与摄氏温度线性成比例,因而 LM35有优于用开尔文标准的线性温度传感器,LM35无需外部校准或微调来提供1/4的常用的室温精度。LM35特性如下:直接用摄氏温度校准;线性+10.0mV/比例因数;保证0.5精度(在+25时);-55+150额定范围;适用于遥控设备;因晶体片微调而低费用;工作在430V;小于60
17、A漏泄电流;较低自热,在静止空气中0.08;只有1/4非线性值;低阻抗输出,1mA负载时0.1。 LM35D的工作电压为4V20V,故可直接用温控电路的电源,但要加一个隔离二极管及平滑电容C。LM35D测温范围0100,输出电压直接与摄氏温度成比例,灵敏度为10mV/。输出电压接2V直流电压挡数字万用表,可读出分辨率为0.1的温度读数。如表上读数为287mV,即温度为28.7。集成温度传感器LM35D是把测温传感器与放大电路做在一个硅片上,形成一个集成温度传感器,它的外形与封装如下图(见图2.4)。图2.4 温度传感器LM35D外形与封装LM35D是一种输出电压与摄氏温度成正比例的温度传感器,
18、其灵敏度为10mV/;工作温度范围为0-100;工作电压为4-30V;精度为0.1。最大线性误差为0.5;静态电流为80uA。该器件如塑封三极管(TO-92)。该温度传感器最大的特点是是使用时无需外围元件,也无需调试和较正(标定)。放大器Op07:Op07芯片是一种低噪声,非斩波稳零的双极性运算放大器集成电路。由于OP07具有非常低的输入失调电压(对于OP07A最大为25V),所以OP07在很多应用场合不需要额外的调零措施。OP07同时具有输入偏置电流低(OP07A为2nA)和开环增益高(对于OP07A为300V/mV)的特点,这种低失调、高开环增益的特性使得OP07特别适用于高增益的测量设备
19、和放 大传感器的微弱信号等方面。特点: 超低偏移: 150V最大。 低输入偏置电流: 1.8nA 。低失调电压漂移: 0.5V/ 。 超稳定,时间: 2V/month。最大高电源电压范围: 3V至22V。图2.5 OP07管脚OP07芯片引脚功能说明: 1和8为偏置平衡(调零端),2为反向输入端,3为正向输入端,4接地,5空脚 6为输出,7接电源+ ABSOLUTE MAXIMUM RATINGS 最大额定值。2.2.3 A/D转换器的选择常用的A/D转换芯片有ADC0809、ADC0804、ADC0808等,由于测温精度要求是0.1,有考虑到测量干扰和数据处理误差,则温度传感器和AD转换器的
20、精度更高才能保证精度的实现。这个精度是0.1,故温度传感器能够区分0.1,而对于AD转换器,由于测量范围是0100度,以0.1度作为响应的AD区分度要求,则AD需要区分(100-0)/0.1=1000个数字量,显然需要10位以上的AD转换器,为此,选用高精度的12位模数转换器AD574A,如图2.6。AD574A是一种高性能的12位逐次逼进式A/D转换器,它同ADC0809一样是常用的A/D转换器。 图2.6 AD574A引脚图转换时间为25s,线性误差为1/2LSB,内部有时钟脉冲源和基准电压源,单通道单极性或双极性电压输入,采用28脚双立直插式封装。 AD574A由12位A/D转换器,控制
21、逻辑,三态输出锁存缓冲器,10V基准电压源四部分构成。 12位A/D转换器 可以单极性也可以双极性的。单极性应用时,BIPOFF接0V,双极性时接10V。量程可以是10V也可以是20V。 三态输出锁存缓冲器芯片74LS373 用于存放12位转换结果。三态输出:就是具有高电平、低电平和高阻抗三种输出状态的门电路,又称三态门输出电路。8路就是说有8个这样的电路在一片芯片里面。作用一般有两个:a、多路信号分时传递;b、实现数据的双向传输。图2.7 锁存器74LS373引出端符号: D0D7 数据输入端 OE 三态允许控制端(低电平有效) LE 锁存允许端 O0O7 输出端 真值表如下: DnLEOE
22、OnHHLHLHLLXLLQ0XXH高阻态表2-2 74LS373真值表逻辑控制 任务包括:启动转换,控制转换过程和控制转换结果D的输出。 CE CS(即CS上面一横杠) R/C(C上一横杠) 12/8(8的上面有一横杠) A(0) 操作功能: 1 0 0 X 0 启动12位转换 1 0 0 0 0 启动8位转换 1 0 1 1 X 输出12位数字 1 0 1 0 0 输出高8位数字 1 0 1 0 1 输出低4位数字 0 X X X X 无操作 X 1 X X X 无操作3 系统硬件电路设计3.1 传感器及放大电路的设计图3.1 系统的放大电路部分 如图3.1,为系统的放大电路部分,电压型温
23、度传感器LM35D是一种输出电压与摄氏温度成正比例的温度传感器,其灵敏度为10mV/,如果室温为26,那么经LM35D采集室温后得到的电压信号为0.26 V,我们需要将此信号在整个硬件系统和软件系统中放大100倍,之后将其送入驱动电路,即可在LED数码管上显示室温,达到目的。这里这个电压信号太微弱,不利于处理,容易产生误差且不稳定。LM35D的输出端经过750的电阻和100uF的电容可使采集到的与温度成比例(10mV/)的电压信号更加稳定;在放大电路中,取R1为1K是因为好计算放大倍数,R10用20K的滑动变阻器使这个0.26 V的微弱电压信号在0-20的放大倍数范围内可调,在此,将其放大10
24、倍,因此需要将R10调至10K,这样经放大器OP07放大后的6脚输出就为放大十倍的电压信号2.6V。3.2 A/D转换电路设计图3.2中,AD574A是一种高性能的12位逐次逼进式A/D转换器,它同ADC0809一样是常用的A/D转换器,转换时间为25s,线性误差为1/2LSB,内部有时钟脉冲源和基准电压源,单通道单极性或双极性电压输入,采用28脚双立直插式封装。 AD574A由12位A/D转换器,控制逻辑,三态输出锁存缓冲器,10V基准电压源四部分构成,其引脚中DB0DB11为12个数字信号输出端。在这个转换电路中,AD574起着两个作用,一是将模拟量转换为二进制的数字量,二是将此输入信号在
25、放大电路放大10倍后再放大50倍。经AD574转换后的二进制数字信号通过DB0-DB11端传给单片机的P0口,供后面编程控制,使其缩小5倍,显示室温。为AD574的片选信号,低电平有效。、分别为写、读端,将其与单片机的写、读端相连。INTR端为中断,当其为高电平时表示转换完成,之后,送中断信号给单片机,等待单片机发出信号接收转换好的数据。可见,在整个系统中,这部分电路起着至关重要的作用。图3.2 A/D转换电路3.3 单片机最小系统设计AT89C51在电路中的应用:图3.3中,XTAL1接外部晶体的一个引脚。在单片机内部,它是构成片内振荡器的反相放大器的输入端。当采用外部振荡器时,该引脚接收振
26、荡器的信号,既把此信号直接接到内部时钟发生器的输入端。XTAL2 接外部晶体的另一个引脚。在单片机内部,它是上述振荡器的反相放大器的输出端。RES是复位输入端,当振荡器运行时,在该引脚上出现两个机器周期的高电平将使单片机复位。ALE是当访问外部存储器时,ALE(地址锁存允许)的输出用于锁存地址的低位字节。即使不访问外部存储器,ALE端仍以不变的频率(此频率为振荡器频率的1/6)周期性地出现正脉冲信号。因此,它可用作对外输出的时钟,或用于定时目的【6】。在对Flash存储器编程期间,该引脚还用于输入编程脉冲。/PSEN是程序存储允许(/PSEN)输出是外部程序存储器的读选通信号。/EA/Vpp是
27、外部访问允许端。要使CPU只访问外部程序存储器(地址为0000HFFFFH),则/EA端必须保持低电平(接到GND端)。当/EA端保持高电平(接Vcc端)时,CPU则执行内部程序存储器中的程序【7】。图3.3 AT8S51在电路中的应用P0端口(P0.0 P0.7) P0是一个8位双向I/O端口,它与AD574A的输出相接。 P1端口(P1.0 P1.7),P2端口 (P2.0P2.7),P3端口(P3.0P3.7)均是带有内部上拉电阻的8位双向I/O端口,其中,P1端口用于控制显示电路【8】。3.4 报警电路的设计由于由单片机的P1.7发出的电压信号非常微弱,因此,需要将其放大,才能带动蜂鸣
28、器使其工作。此报警电路的输入引脚由单片机的P1.7控制,我们在系统中设的下限报警温度为0,上限报警温度为100。在软件设计中,当由LM35采集到的温度超出0100的范围,令P1.7=1则可实现蜂鸣器和发光二极管声光报警,如图3.4所示。 图3.4 报警电路3.5驱动及其显示电路的设计3.5.1 数码管的选择一个单片机应用系统中,显示是人机通道的重要组成部分。目前广泛使用的显示器件主要有LED(二极管显示器)LCD(液晶显示器)和VFD(真空荧光管)等。本文主要介绍LED显示方式。LED显示器的基本结构和原理:LED显示器采用发光二极管显示字段。单片机中经常采用的是八段显示器,即LED显示器中有
29、8个发光二极管,代表“a,b,c,d,e,f,g”七个字段和一小数点“dp ”。它有共阴和共阳两种结构。共阴极LED显示器的发光二极管负极接地,当发光二极管的正极为高电平时,发光二极管被点亮。共阳极LED显示器的发光二极管正极相连,当二极管的负极为低电平时,发光二极管被点亮。LED显示器按照接口不同有静态和动态两种方式。静态显示方式中,多个LED显示器中的每一个段代码都与一个独立的8位并行口连接,公共端则根据LED的种类(共阴或共阳)连接到“地”或“VCC ”上。四位静态LED显示电路中,每个LED的段代码都由独立的并行8位I/O口线控制,可以在同一时间内显示不同的字符。所谓动态显示,实质上就
30、是各个不同的LED显示器按照一定的顺序轮流显示。它利用了人眼的“视觉暂留现象”,只要多个LED显示器的选通扫描速率足够快,人眼就觉察不到数码管的闪烁现象。动态扫描方式的所有LED段选线并联在一起,只由一个8位的I/O 口控制,而各个LED的位选线则由另外一组I/O 口控制。动态LED显示方式的优点是功耗较低,占用CPU I/O 线少,外围接口简单,本系统便是采用了动态LED显示方式【9】。3.5.2 显示电路设计由于测量室温的精度为0.1,因此,显示中会出现小数点,在这里我们选用四个数码管,第一个备用,因为本系统选用的测温元件为LM35D,测温范围为0+100,当不需要很大精度时,可以通过软件
31、将显示范围调到0+100,也就是可以将上限报警温度设置为100,这样,显示最高温度再加上小数点后一位,就是四位显示。图3.5 驱动和显示电路有关硬件电路总图见附录A4电路板图的设计4.1电路板图的设计原则原则如下:印刷电路板的设计,从确定板的尺寸大小开始,印刷电路板的尺寸因受机箱外壳大小限制,以能恰好安放入外壳内为宜,其次,应考虑印刷电路板与外接元器件(主要是电位器、插口或另外印刷电路板)的连接方式。印刷电路板与外接元件一般是通过塑料导线或金属隔离线进行连接。但有时也设计成插座形式。布线图设计的基本方法首先需要对所选用元件器及各种插座的规格、尺寸、面积等有完全的了解;对各部件的位置安排作合理的
32、、仔细的考虑,主要是从电磁场兼容性、抗干扰的角度,走线短,交叉少,电源,地的路径及去耦等方面考虑。各部件位置定出后,就是各部件的连线,按照电路图连接有关引脚,完成的方法有多种,印刷线路图的设计有计算机辅助设计与手工设计方法两种。 ()印刷电路中不允许有交叉电路,对于可能交叉的线条,可以用“钻”、“绕”两种办法解决。()电阻、二极管、管状电容器等元件有“立式”,“卧式”两种安装方式。立式指的是元件体垂直于电路板安装、焊接,其优点是节省空间,卧式指的是元件体平行并紧贴于电路板安装,焊接,其优点是元件安装的机械强度较好。这两种不同的安装元件,印刷电路板上的元件孔距是不一样的。()同一级电路的接地点应
33、尽量靠近,并且本级电路的电源滤波电容也应接在该级接地点上。 ()总地线必须严格按高频中频低频一级级地按弱电到强电的顺序排列原则,切不可随便翻来复去乱接,级与级间宁肯可接线长点,也要遵守这一规定。特别是变频头、再生头、调频头的接地线安排要求更为严格,如有不当就会产生自激以致无法工作。()强电流引线(公共地线,功放电源引线等)应尽可能宽些,以降低布线电阻及其电压降,可减小寄生耦合而产生的自激。()阻抗高的走线尽量短,阻抗低的走线可长一些,因为阻抗高的走线容易发笛和吸收信号,引起电路不稳定。4.2电路板图的设计步骤步骤如下:1.设计原理图2.生成网络表3.PCB设计设置4.更新网络表或PCB5.修改
34、封装与布局6.布线规则设置7.自动布线8.手工调整布线9.保存文件与输出10.结束4.3电路板图的设计布局布局如下:1.各元件排列,分布要合理和均匀,力求整齐,美观,结构严谨的工艺要求2. 当电路元件数较多,而且电路板尺寸不大的情况下,一般是采用竖放,竖放时两个焊盘的间距一般取12/10英寸。3.进出接线端布置:()相关联的两引线端不要距离太大,一般为23/10英寸左右较合适。()进出线端尽可能集中在1至2个侧面,不要太过离散。4. 设计布线图时要注意管脚排列顺序,元件脚间距要合理。5. 在保证电路性能要求的前提下,设计时应力求走线合理,少用外接跨线,并按一定顺充要求走线,力求直观,便于安装,
35、高度和检修。6. 布线条宽窄和线条间距要适中,电容器两焊盘间距应尽可能与电容引线脚的间距相符。7. 设计应按一定顺序方向进行,例如可以由左往右和由上而下的顺序进行【10】。 PCB印刷板图见附录B 5系统软件设计5.1程序功能介绍本设计软件部分主要用来实现:(1)设定测量温度的上下限,超过此温度报警。(2)将数字信号进行十进制调整。(3)控制译码管及驱动器实现数码管动态显示。5.2主程序设计本程序总程序流程图如图5.1所示。程序启动后首先清理系统内存,然后进行采集,并通过A/D转换后,传输到单片机中,再有单片机控制显示设备,显示现在实时温度,并与设置温度范围进行比较,若越限则报警,然后系统进入
36、待机状态,等待下一次扫描。开始AT89S51初始化显示器清零温度采集转换比较温度大小报警LED显示图5.1 系统流程总图5.3采样子程序的设计采样值起始地址送R0选通道IN0启动传感器延时A/D转换完成所有采样完成 图5.2 采样子程序流程图 5.4 A/D转换子程序的设计A/D入口启动A/D转换查询EOC读取转换数据处理好的数据分别存入存储单元子程序结束图5.3 模数转换子程序流程图图5.3是A/D转换子程序的流程图。单片机给出一个脉冲信号启动A/D转换后,AD574对接受到的模拟信号进行转换,这个过程大约需要25us,系统采用的是固定延时程序,所以在预先设定的延时后,单片机直接从AD574
37、中读取数据。5.5 程序源代码见附录C 程序源代码6设计体会在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。 过而能改,善莫大焉。在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。本身就是在践行“过而能改,善莫大焉”的知行观。这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的指导下,终于游逆而解。在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解
38、决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认可!课程设计诚然是一门专业课,给我很多专业知识以及专业技能上的提升,同时又是一门讲道课,一门辩思课,给了我许多道,给了我很多思,给了我莫大的空间。在此要感谢我段广云和俞学兰老师对我们悉心的指导,感谢老师给我的帮助。在设计过程中,我通过查阅大量有关资料,与同学交流经验和自学,并向老师请教等方式,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。在整个设计中我懂得了许多东西,也培养了我独立工作的能力,树立了对自己工作能力的信心,相信会对今后的学
39、习工作生活有非常重要的影响。而且大大提高了动手的能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。虽然这个设计做的也不太好,但是在设计过程中所学到的东西是这次毕业设计的最大收获和财富,使我终身受益。 参考文献1 美Michael A. Miller 著.Data and Network Communications M. 北京:科学出版社,20022 何希才,刘洪梅. 新型通用集成电路实用技术M. 北京:国防工业出版社, 1997.3 李隆宝. 实用电子器件和电路简明手册M. 北京:电子工业出版社,1991.4 康华光,电子技术基础 数字部分(第四版)M.北京:高等教育出版社,198
40、7 5何立民. 单片机应用技术选编(1)M. 北京:北京航空航天大学出版社,1993.6张友德,赵志英,涂时亮。单片微型机原理、应用与实验M.上海:复旦大学出版社,19927 李广弟,朱月秀,王秀山. 单片机基础M. 北京:北京航空航天大学出版社,2001.8余永权,ATMEL89系列FLASH单片机原理及应用M. 电子工业出版社, 2001 9刘常澍,数字逻辑电路M. 北京:国防工业出版社,200210鲁捷,Protel DXP 电路设计基础教程M 北京:清华大学出版社,2005附录A 硬件电路总图附录B PCB印刷图附录C 程序源代码#include reg52.h/头文件#include
41、 intrins.h#define uchar unsigned char/宏定义#define uint unsigned int/宏定义 #define DPDR P2/LED并行数据输出接口定义#define DPDR_1 P0/AD574并行数据输入接口定义sbit RS=P10;/LED定义I/O的硬件接口sbit RW=P11;/LED定义I/O的硬件接口sbit E=P12;/LED定义I/O的硬件接口sbit LM35D=P27;/A定义I/O的硬件接口,通道选择/C、D接地sbit key_1=P17;/按键1定义I/O的硬件接口/控制 温度报警标志位sbit ST=P30;
42、 /ST和ALE接在一起sbit OE=P31; sbit EOC=P32; sbit CLK=P33; sbit LED1=P17; /LED报警,蜂鸣器报警unsigned long temp1;/AD574接IN0uchar Alarm_Value;/温度报警值bit Alarm_Value_bit;/温度报警标志位uchar code DispTab_1=0,1,2,3,4,5,6,7,8,9;/1602:0-9 数字uchar code DispTab_2=0x10,0x06,0x09,0x08,0x08,0x09,0x06,0x00;/温度符号uchar DispBuf6; /6字
43、节的显示缓冲区char char_char_1= Temperature: ;/定义字符串/延时程序/void delay(uint z)/1ms延时 uchar x,x1;for(;z0;z-)for(x=0;x114;x+)for(x1=0;x11;x1+);/显示程序/void write_Directive(uchar a)/写LED指令RS=0;RW=0;delay(5);E=0;DPDR=a;delay(5);E=1;delay(5);E=0;delay(5);void write_Data(uchar a)/写LED数据RS=1;RW=0;delay(5);E=0;DPDR=a;
44、delay(5);E=1;delay(5);E=0;delay(5);void LED_init()/LED初始化 uchar i;delay(15);write_Directive(0x38);delay(5);write_Directive(0x38);delay(5);write_Directive(0x38);write_Directive(0x01);write_Directive(0x02);/初始化后数据地址为0x80;即第一行,第一个位置write_Directive(0x0c);/不显示光标/write_Directive(0x0f);/显示光标write_Directive(0x80+0x00);/第一行第一位地址for(i=0;i16;i+)write_Data(char_char_1i);/显示字符串 Temperature