《课程设计论文基于ADC0809温度测量单片机系统设计.doc》由会员分享,可在线阅读,更多相关《课程设计论文基于ADC0809温度测量单片机系统设计.doc(19页珍藏版)》请在三一办公上搜索。
1、基于ADC0809温度测量单片机系统设计 刘建雄 目录一. 设计任务.3二. 功能与框图.4三. A/D转换电路的制作.4四. 单片机部分.11五. 基本人机接口设计.15六. 附录.15七. 总程序.16八. 参考文献.19一.设计任务1.设计题目:基于ADC0809温度测量单片机系统设计1.2目的意义:(1)综合运用并巩固所学单片机设计知识;(2)采用编程的方法实现基于ADC0809温度测量单片机系统设计。1.3设计内容:A/D转换电路的制作 。 掌握A/D转换电路的制作。 掌握温度采样电路的原理和制作。 掌握将转换的数字信号换算成实际温度值的方法。 掌握相应电路的程序编写 (2)基本人机
2、接口设计 完成显示接口设计。 完成键盘接口设计。设计要求:按题意要求,画出原理图;单片机接线图;按照题目要求设计采集电路;完成单片机控制程序;完成设计说明书(15页);设计上交内容:设计说明书(包括1、2、3、4、5项)1.4设计步骤理解并确定设计要求确定整体控制方案编写程序说明书附录附上电路图一张及汇编控制程序一份,说明书分三章描述,即设计内容的前三点。二.功能与框图温度传感器A/D转换CPU控制显示端口如上图,模拟温度传感器采集数据后,经过AD转换,将数据送至8051。此后8051换算整理数据,将所算得的温度送至显示电路三. A/D转换电路的制作1、A/D转换器 选用芯片目前8路8位逐次逼
3、近型A/D转换CMOS芯片ADC0809无论在工程设计还是教学过程中都是作为首选。如图,ADC0809由1个8路模拟开关、一个地址锁存及译码器、一个A/D转换器和一个三态输出锁存器组成。为了实现8路模拟信号的分时采集,片内设置了带有锁存功能的8路模拟选通开关,以及相应的通道地址锁存和译码电路,可对8路05V的输入模拟电压进行分时转换,转换后的数据送入三态输出数据锁存器。 ADC0809是28管脚芯片,输出与TTL兼容,以下是部分引脚功能: IN7IN0:模拟量输入通道。 A、B、C:模拟通道地址线(如表1)。 ALE:地址锁存信号。对应于ALE上跳沿,A、B、C地址状态送入地址锁存器中。 ST
4、ART:转换启动信号。 D7D0:数据输出线。 OE:输出允许信号。它用于控制三态输出锁存器向单片机输出转换得到的数据。 CLK:时钟信号,最高频率为1280kHz。 EOC:转换结束状态信号。EOC=0时,正在进行转换;EOC=1时,转换结束。 Vref:参考电压。参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准。 与8051相连 ADC0809是8位分辨率A/D转换芯片,片选地址为#7FFFH。参考电压为5V,设输入电压为Vout,则有 D=Vout*255/5=Vout*51 其中 D表示ADC0809输出的数值 表示不超过范围内的最大整数 需注意的是ADC0809的最高时钟频率
5、为1280KHZ 而80C52的ALE。12MHZ*1/6=2MHZ1280KHZ 所以必须采用分频器。74LS74是D触发器。如下所示经过分辨便可得到1MHZ的频率,满足条件。 其中CLK为输入,接单片机的ALE; CLOCK为输出,接ADC0809的CLOCK。2、 温度采集电路1.电阻式温度传感器的工作原理: 利用导体或半导体的电阻率随温度变化而变化,可以将温度变化为敏感元件电阻的变化,这种变化既可以是正向的,也可以是逆向的。2.金属热电阻的工作原理: 金属的电阻值随着温度的改变而改变,呈线性递增关系。(1)铂热电阻工作原理;(2)铜热电阻工作原理。3.热敏电阻的特点 (1)机械性能 (
6、2)体积小 (3)灵敏度高(4)复现性差,互换性差,非线性,测量范围小。4. 热敏电阻的主要参数 (1)耗散系数 (2)热容 (3)电阻温度系数 (4)标称电阻值 (5)能量灵敏度 (6)额定功率 (7)时间常数5.用于测量温度的热敏电阻结构简单,价格便宜。没有外保护层的热敏电阻只能用于干燥的环境中,在潮湿、腐蚀性等恶劣环境下只能使用密封的热敏电阻。测量时先对仪表进行标定。将绝缘的热敏电阻放入32(表头的零位)的温水中,待热量平衡后,调节RP1,使指针在32上,再加热水,用更高一级的温度计监测水温,使其上升到45。待热量平衡后,调节RP2,使指针在45上。再加入冷水,逐渐降温,反复检查32-4
7、5范围内刻度的准确性。6.(1)A/D转换启动子程序。ADST: PUSH ACC ;开中断 SETB EA ;外中断1定义为跳变出发 SETB IT1 ;送ADC0809口地址 MOV DPTR,#0BFFFH ;选通IN0通道 MOV A,#00H ;启动A/D转换 MOVX DPTR,A ; NOP ;NOP ;NOP ; NOP ;NOP ;SETB EX1 ;开外中断1POP ACCRET (2) A/D转换结束中断处理程序。ADINT1 PUSH PSW ;保护现场 PUSH ACC PUSH DPH PUSH DPL MOV DPTR,#0BFFFH MOVX A,DPTR ;读
8、A/D转换结果 MOV 60H,A ;送入片内RAM的60H单元中 MOV A,#00H ;再次启动IN0通道 MOVX DPTR,A POP DPL ;恢复现场 POP DPH POP ACCPOP PSWRET1四.单片机部分MCS-51系列单片机提供全双工串行通信接口RXT、TXD,其内部具有两个相互独立的接收、发送缓冲器SBUF和两个特殊功能寄存器PCON、SCON,利用这两个特殊功能寄存器来控制串行口的工作方式和波特率,辅以一定的通信协议,可以将缓冲器中的数据、指令发送给上位机。下面这段程序是发送数据,再将接收的数据跟发送出去的数据比较,若相同则进行,不同则重新发送一次。串行通信是采
9、用工作方式1,波特率是9600b/s,发送数据是中断方式,接送数据是查询方式。定时器Tl选用工作方式2,初值为#0FDH,晶振频率12Hz。ORG 0000HSJMP STARTORG 0023H ;串行中断人口地址SJMP STRORG 0030H ;程序开始START:MOV SP,#60H ;设堆栈起始地址MOV TMOD,#20H ;选T1定时模式2MOV PCON,#80H ;SMOD=1MOV TH1,#0FDH ;串行通信的波特率为9600HZSETB TR1 ;启动定时器T1CLR ET1 ;关定时器T1中断MOV SCON,#50H ;串行口方式1工作,允许接收。SETB E
10、A ;开总中断SETB ES ;开串行口中断MOV 30H,A ;存数据MOV SBUF,A ;发送数据SJMP $ ;等待中断STR: MOV R2,#1 AJMP STR1LOOP: DJNZ R2,STR3 ;两次发送不成功则放弃MOV A,30H ;重新发送数据MOV SBUF,AJNB TI,$STR1:CLR TI ;清除T1CLR ES ;关串行中断允许ACALL DELAY JNB RI,LOOP ;50ms后仍没收到PC机的回复则重新发送MOV A,SBUF ;从缓冲器读数据CLR RICJNE A,30H,LOOP ;若数据不同则重新发送STR3:SETB ES ;开串行中
11、断允许RETIDELAY: MOV R0,#50DELAY2:MOV R1,#0FAHDELAY1:NOP NOP DJNZ R1,DELAY1 DJNZ R0,DELAY2 RETEND五.基本人机接口设计 本系统采用4个LED数码管为显示单元,其中3个为温度数值,一个为温度单位。如图所示,译码器采用74LS47芯片。74LS47的A、B、C、D分别接上P1.0P1.3口,P1.4到P1.7分别介绍数码管的公共级。BI/RBO、RBI、LT分别街上P2.4到P2.6。 74LS47是数字集成电路,用于将BCD码转化成数码块中的数字,译码为编码的逆过程。它将编码时赋予代码的含义“翻译”过来。实
12、现译码的逻辑电路成为译码器。译码器输出与输入代码有唯一的对应关系。74LS47是输出低电平有效的七段字形译码器,它在这里与数码管配合使用,下表列出了74LS47的真值表,表示出了它与数码管之间的关系。 LTRBIA3A2A1A0BI/RBOabcdefgout1100001000000101X00011100011111X00101001001021X00111000011031X01001100110041X01011010010051X01101110000061X01111000111171X10001000000081X1001100011009XXXXXX01111111熄灭1000
13、0001111111熄灭0XXXXX100000008(1)LT():试灯输入,是为了检查数码管各段是否能正常发光而设置的。当LT()=0时,无论输入A3 ,A2 ,A1 ,A0为何种状态,译码器输出均为低电平,若驱动的数码管正常,是显示8。 (2)BI():灭灯输入,是为控制多位数码显示的灭灯所设置的。BI()=0时。不论LT()和输入A3 ,A2 ,A1,A0为何种状态,译码器输出均为高电平,使共阳极数码管熄灭。 (3)RBI(-):灭零输入,它是为使不希望显示的0熄灭而设定的。当对每一位A3= A2 =A1 =A0=0时,本应显示0,但是在RBI(-)=0作用下,使译码器输出全为高电平。
14、其结果和加入灭灯信号的结果一样,将0熄灭。 (4)RBO():灭零输出,它和灭灯输入BI()共用一端,两者配合使用,可以实现多位数码显示的灭零控制。 六. 附录七.总程序ORG 0000H AJMP MAIN ORG 0003H ;外部中断0入口地址 AJMP ORQ ORG 0023H ;串行口中断入口地址 AJMP MSG ORG 0030HMAIN: MOV SP,#60H ;设堆栈起始地址 SETB EA ;开总中断 SETB EX0 ;开外部中断0 SETB IT0 ;外部中断0边缘触发 MOV TMOD,#20H ;选T1定时模式2 MOV PCON,#80H ;SMOD=1 MO
15、V TH1,#0FDH ;波特率=9600HZ MOV SCON,#50H ;串行口方式1工作,允许接收 SETB TR1 ;启动定时器T1 CLR ET1 ;关定时器T1中断 SETB IP.4 ;串口中断优先级高SETB P3.4 MOV 33H,#0 MOV 32H,#0 MOV 31H,#0 MOV DPTR,#7FFFH ;ADC0809地址 MOVX DPTR,A ;启动ADC0809 CLR P3.4 ;保持数据HEAD: MOV A,33H ;循环显示温度数值 ADD A,#10H MOV P1,A MOV A,32H ADD A,#20H MOV P1,A MOV A,31H
16、 ADD A,#40H MOV P1,A MOV A,#83H MOV P1,A AJMP HEADORQ: CLR EX0 ;关外部中断0 PUSH PSW;PSW进堆栈 PUSH ACC;ACC进堆栈 PUSH DPH;DPTR进堆栈 PUSH DPL MOV DPTR,#7FFFH MOVX A,DPTR;从ADC0809中取数据 SETB P3.4 ;采样数据MOV 30H,A ;把数据保存到30H单元 JNB P3.5,ORQ1 SETB ES MOV SBUF,A CLR (2FH).0 ;用于确定已经串行口发送 SETB ES MOV SBUF,A JNB (2FH).0,$ ;
17、等待串行通信结束ORQ1: CALL BCD ; BCD8421 SETB EX0 ;开外部中断0 MOVX DPTR,A;再次选中ADC0809 CLR P3.4 ;保持数据 POP DPL POP DPH POP ACC POP PSW RETIMSG: PUSH PSW PUSH ACC SETB (2FH).0 MOV R6,#1 JMP STR1 LOOP: DJNZ R6,STR3 ;两次发送不成功则放弃 MOV A,30H MOV SBUF,A JNB TI,$STR1: CLR TI ;清TI CLR ES ;关串行口中断 LCALL DELAY JNB RI,LOOP ;若此
18、时,PC还没回复,则重新发送 MOV A,SBUF ;接收数据 CLR RI CJNE A,30H,LOOP ;比较,不等则重新发送 POP ACC POP PSWSTR3: RETI BCD: MOV A,30H MOV DPTR,#TABLE MOVC A,A+DPTR MOV B,#64H DIV AB ;除以100,商为百位存于A,余数存于B MOV 33H,A ;百位存放在33H单元 MOV A,B ;余数送A MOV B,#0AH DIV AB ;除以10,商为十位存于A,余数为个位存于B MOV 32H,A ;十位存放在32H单元 MOV 31H,B ;个位存放在31H单元 RE
19、T DELAY: MOV R0,#50 ;延时程序DELAY2:MOV R1,#0FAHDELAY1:NOP NOP DJNZ R1,DELAY1 DJNZ R0,DELAY2 RETTABLE: DB 00,01,02,03,03,04,05,05 ;采样数据列表 DB 06,07,07,08,09,09,10,11 DB 11,12,13,14,14,15,16,16 DB 17,18,19,19,20,21,21,22 DB 23,24,24,25,26,27,27,28 DB 29,30,30,31,32,33,33,34 DB 35,36,36,37,38,39,40,40 DB 4
20、1,42,43,44,44,45,46,47 DB 48,48,49,50,51,52,52,53 DB 54,55,56,57,57,58,59,60 DB 61,62,62,63,64,65,66,67 DB 68,69,69,70,71,72,73,74 DB 75,76,77,77,78,79,80,81 DB 82,83,84,85,86,87,88,88 DB 89,90,91,92,93,94,95,96 DB 97,98,99,100 END八、参考文献陈 林,张细先 对采样保持电路的分析 电气技术与自动化 2003夏 青 采样保持原理在模拟电路中的应用 电子技术与应用 2003郭大江,罗运先,吴雄英 微弱信号采样保持电路的分析 信息技术 2009董晓丹 windows下实现PC机与单片机AT89C51的串行通信 大众科技 2009元增民 AT89S51单片机与ADC0809模数转换器的三种典型连接 长沙大学学报 2005段峰,段伟,王耀南,段正华 VB串行通信高级编程技巧 现代计算机 2001- 19 -