单片机温度采集系统.docx
- 文档编号:26512597
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:22
- 大小:218.37KB
单片机温度采集系统.docx
《单片机温度采集系统.docx》由会员分享,可在线阅读,更多相关《单片机温度采集系统.docx(22页珍藏版)》请在冰豆网上搜索。
单片机温度采集系统
课程设计
课程设计名称:
温度采集装置
班级:
数控技术0901
学号:
课程设计时间:
2011.12.5—12.11
1设计任务………………………………………………………………………
2
2确定设计方案…………………………………………………………………
3
2.1温度传感器—AD22100K…………………………………………………
3
2.2A/D转换器—ADC0809…………………………………………………
4
2.3单片机的选择—80C51…………………………………………………
6
2.4显示器接口—LED动态显示接口………………………………………
8
3硬件电路的设计…………………………………………………………
10
3.1温度传感器与A/D转换器的接口电路………………………………
10
3.2A/D转换器与89C51的接口电路………………………………………
10
3.389C51与显示器间的接口电路…………………………………………
11
3.4晶振电路和复位电路的设计…………………………………………
12
4软件设计……………………………………………………………………
13
4.1温度采集的主程序流程图………………………………………………
13
4.2程序清单…………………………………………………………………
15
5心得体会………………………………………………………………………
20
附录………………………………………………………………………………
21
温度采集装置
1、设计任务
设计一个温度采集系统,要求按1路/s的速度顺序检测8路温度点,测温范围为+20℃~+100℃,测量精度为±1%。
要求用5位数码管显示温度,最高位显示通道号,次高位显示“—”,低三位显示温度值。
2、设计方案
2.1温度传感器—AD22100K
AD22100K是有信号调节的单片温度传感器,工作温度范围为-50~+150,信号调节不需要调节电路、缓冲器和线性化电路,简化了系统设计。
输出温度与电压和电源电压的乘积(比率测量)成比例。
输出电压摆幅为0.25V(对应-50℃)和4.75V(对应150℃),用5V单电源工作。
2.1.1AD22100K的引脚图如2.1.1
图2.1.1AD22100K的引脚图
注:
1.V电源4.GND接地
2.U输出3、5~8NC不连接
2.1.2AD22100K主要参数
1.工作电压4V~6V
2.工作温度范围-50℃~+150℃
3.精度优于±2%FS;线性度优于±1%FS;温度系数22.5mV/℃
4.单电源工作,反向电压保护;高电平低阻抗输出;封装形式为TO-92SOIC
2.2A/D转换器—ADC0809
根据题意,测量精度为±1%,所以采用8位的ADC0809即可满足要求,在显示温度时最低单位为0.1。
ADC0809是8位逐次逼近式A/D模数转换器。
其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。
2.2.1ADC0809主要特性
1)8路输入通道,8位A/D转换器,即分辨率为8位。
2)具有转换起停控制端。
3)转换时间为100μs(时钟为640kHz时),130μs(时钟为500kHz时) 4)单个+5V电源供电 5)模拟输入电压范围0~+5V,不需零点和满刻度校准。
6)工作温度范围为-40~+85摄氏度 7)低功耗,约15mW。
2.2.2ADC0809内部结构
ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构如图所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近寄存器、逻辑控制和定时电路组成。
2.2.3ADC0809外部特性(引脚功能)
图2.2.3ADC0809外部引脚
ADC0809芯片有28条引脚,采用双列直插式封装,如图所示。
下面说明各引脚功能。
IN0~IN7:
8路模拟量输入端。
2-1~2-8:
8位数字量输出端。
ADDA、ADDB、ADDC:
3位地址输入线,用于选通8路模拟输入中的一路 ALE:
地址锁存允许信号,输入,高电平有效。
START:
A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。
EOC:
A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。
OE:
数据输出允许信号,输入,高电平有效。
当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。
CLK:
时钟脉冲输入端。
要求时钟频率不高于640KHZ。
REF(+)、REF(-):
基准电压。
Vcc:
电源,单一+5V。
GND:
地。
2.2.4ADC0809的工作过程
首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。
此地址经译码选通8路模拟输入之一到比较器。
START上升沿将逐次逼近寄存器复位。
下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。
直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。
当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。
转换数据的传送A/D转换后得到的数据应及时传送给单片机进行处理。
数据传送的关键问题是如何确认A/D转换的完成,因为只有确认完成后,才能进行传送。
为此可采用下述三种方式。
(1)定时传送方式 对于一种A/D转换器来说,转换时间作为一项技术指标是已知的和固定的。
例如ADC0809转换时间为128μs,相当于6MHz的MCS-51单片机共64个机器周期。
可据此设计一个延时子程序,A/D转换启动后即调用此子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。
(2)查询方式 A/D转换芯片由表明转换完成的状态信号,例如ADC0809的EOC端。
因此可以用查询方式,测试EOC的状态,即可确认转换是否完成,并接着进行数据传送。
(3)中断方式 把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送。
不管使用上述哪种方式,只要一旦确定转换完成,即可通过指令进行数据传送。
首先送出口地址并以信号有效时,OE信号即有效,把转换数据送上数据总线,供单片机接受。
2.3单片机的选择—80C51
2.3.180C51主要特性
·与MCS-51兼容 ·4K字节可编程闪烁存储器
寿命:
1000写/擦循环 数据保留时间:
10年 ·全静态工作:
0Hz-24MHz ·三级程序存储器锁定 ·128*8位内部RAM ·32可编程I/O线
·两个16位定时器/计数器 ·5个中断源 ·可编程串行通道 ·低功耗的闲置和掉电模式 ·片内振荡器和时钟电路
2.3.280C51的引脚图及管脚说明
图2.3.280C51的引脚图
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/
地址的低八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
口管脚备选功能 P3.0RXD(串行输入口) P3.1TXD(串行输出口) P3.2/INT0(外部中断0) P3.3/INT1(外部中断1) P3.4T0(记时器0外部输入) P3.5T1(记时器1外部输入) P3.6/WR(外部数据存储器写选通) P3.7/RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
2.3.3振荡器特性
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
由于输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
2.4显示器接口—LED动态显示器接口
2.4.1七段式LED的结构与工作原理
LED显示器是由发光二极管显示字段的显示器件,也可称为数码管。
其外形结构如图2.4.1所示,由图可见它由8个发光二极管组成,通过不同的组合可用来显示0-9、A-F及小数点“.”等字符。
数码管通常有共阴极和共阳极两种接法。
限流电阻是外接的,一般共阳极数码管必须外接电阻,共阴极不一定外接电阻。
要显示某字形就应使此字形的相应字段点亮,实际就是送一个用不同电平组合代表的数据至数码管。
这种装入数码管中显示字形的数据称为字形码。
图2.4.1LED外部引脚
本次设计采用共阳极数码管,字形与字形码的关系,对照图2.4.1,字形码各位定义如下:
D7
D6
D5
D4
D3
D2
D1
D0
DP
g
F
e
d
c
b
a
数据线D0与a段对应,D1与b段对应……,以此类推。
共阳极常用的显示字形如上表所示。
按照显示字符顺序排序。
通常显示代码存放在程序存贮器的固定区域中,构成显示代码表。
当要显示某字符时,可根据地址及显示字符查表。
2.4.2LED动态显示器接口的选择
七段式LED显示器有静态显示与动态扫描两种方式,动态显示需要耗费大量的CPU时间,且亮度不够;而静态亮度高,CPU负担很小,但所需硬件驱动芯片较多,在位数较多时,字符更新速度慢,电路比较复杂,成本较高。
因此在此温度采集装置中采用动态显示方式。
3、硬件电路设计
3.1温度传感器与A/D转换器的接口电路
3.2A/D转换器与80C51的接口电路
80C51单片机与ADC0809接口时必须注意事项(80C51单片机与ADC0809接口如图3.2A/D转换器与80C51的接口电路)
图3.2A/D转换器与80C51的接口电路
(1)在START端送一个100ns宽的启动正脉冲
(2)获取EOC端上的状态信息,因为它是A/D转换的结束标志
(3)给“三台输出锁存器”分配一个端口地址,也就是给OE端送一个地址译码器的输出信号
3.380C51与显示器件的接口电路
在单片机系统中,LED显示一般采用静态显示和动态扫描两种驱动方式。
本次设计采用的是动态扫描驱动方式。
所谓动态显示就是指一位一位地轮流点亮各个显示器,对于每一位显示器来说,每隔一段时间点亮一次。
点亮时间通常1左右,相隔时间为20。
动态显示器件与80C51间的接口如图3.380C51与显示器件的接口电路所示。
图3.380C51与显示器件的接口电路
图3.380C51与显示器件的接口电路中,74LS373-1的输出为段数据口,接显示器的各个段极,74LS373-2的输出为位扫描口,接LED的公共极。
显示时,首先使74LS373-2的Q0为低电平,Q1~Q7为高电平,则仅第一位显示器的公共阴极为低电平(被选通);同时74LS373-1输出第一个显示数据的段码,这时第一位显示器将显示出第一个显示数据。
持续1左右后,使Q0为低电平,关闭第一个显示器,随后使Q1为低电平,并选通第二位显示器,并由74LS373-1输出第二个显示数据,并持续1左右。
有类似的方法一次选通第3,第4,…第8位即完成依次循环显示。
3.4晶振电路与复位电路的设计
3.4.1晶振电路的设计
要给CPU提供其工作时的时序要求就要有相关的硬件电路—晶振电路,即振荡器和时钟电路。
80C51系列单片机内部有一个高增益方向放大器,用于构成振荡器,但要构成时钟,外部还需要附加电路。
80C51的时钟产生方法有内部时钟方式和外部时钟方式两种。
图3.4.1晶振电路
本次设计采用的是内部时钟方式。
利用芯片内部的振荡器,然后在引脚XTAL1和XTAL2两端跨接晶体或陶瓷谐振器,就构成了稳定的自己振荡器,其发出的脉冲直接送入内部时钟电路,见图3.4.1晶振电路。
3.4.2复位电路的设计
复位是单片机的初始化操作,单片机在启动运行时,都需要先复位,它的作用是使CPU和系统中其他部件都处于一个确定的初始状态,并从这个状态开始工作。
单片机本身一般是不能自动进行复位的,必须配合相应的外部电路才能实现。
单片机的外部复位电路有上电自动复位和按键手动复位(按键手动复位又分为按键电平复位和按键脉冲复位)两种,本次设计采用的是按键手动复位的按键电平复位,见图3.4.2复位电路。
按键电平复位相当于按复位键后复位端通过电阻与电源接通。
图3.4.2复位电路
4、软件设计
4.1主程序流程图
4.2程序清单
根据题意设计电路如附录A所示。
图中数码管采用共阴极,采用8位的ADC0809转换器,单片机工作频率为12MHZ,采用定时器0定时为50ms.其地址分配及编程如下:
;===================================================================
DM-ADDREQU0DFFFH;数码管段码地址
WM-ADDREQU0BFFFH;数码管位码地址
ADC-ADDREQU07FF0H;AD0809转换通道0地址
;………………………………………………………………………………………
POSITIONEQU30H;显示位码寄存器
CHANNELEQU31H;通道寄存器
DISPLAY1EQU38H;显示数据寄存器(高位)
DISPLAY2EQU39H·
DISPLAY3EQU3AH·
DISPLAY4EQU3BH·
DISPLAY5EQU3CH;显示数据寄存器(低位)
CONEQU3DH;秒计数器
;………………………………………………………………………………………
ORG0000H
LJMPMAIN
ORG000BH
LJMPTIMER0;转10ms定时中断程序
ORG0030H
MAIN:
MOVSP,#50H;修改堆栈指针
MOVPOSITION,#0FEH;设置位码寄存器
MOVTMOD,#01H;设置定时器0工作方式
MOVTH0,#0D8H;定时器0定初值(10ms)
MOVTL0,#0F0H
SETBTR0;启动定时器0
SETBET0;允许定时器0中断
SETBEA;开中断
CLR10H;秒标志位清0
MOVCON,#100H;秒计数器置初值
START:
MOVCHANNEL,#00H;通道设置(0通道)
EX5A:
MOVDPTR,#ADC-ADDR
MOVA,DPL
ADDA,CHANNEL;计算通道地址
MOVDPL,A
MOVX@DPTR,A;启动A/D转换
NOP
JBINT1,$;等待转换结束
MOVXA,@DPTR;读取结果
LCALLBCD;条结果转换子程序
MOVDISPLAY1,CHANNEL;送当前显示通道号
MOVDISPLAY2,#0AH;段码表中“-”的位置偏移量
DISP1:
LCALLDISP;调结果显示子程序
JB10H,DISP1;1秒不到,等待
CLR10H
MOVCON,#100;秒计数器重置初值
INCCHANNEL;下一通道
MOVA,CHANNEL
CJNEA,#08H,EX5A;不是最后一通道,转EX5A
LJMPSYART;循环
;………………………………………………………………………………………
;将00~FFH的十六进制数转换成000~999的十进制数,显示单位位0.1
;转换近似公式位:
A*1003D/256D,结果存入R2(H)R3(L)中,其中A:
00~FFH,1003=3EBH
;将BCD结果送入寄存器DISPLAY3~DISPLAY5中
BCD:
MOVR2,A
MOVB,#0EBH;R2*1003D(3EBH)
MULAB
MOVR4,A
MOVR3,B
MOVA,R2
MOVB,#03H
MULAB
ADDA,R3
MOVR3,A
MOVA,B
ADDCA,#00H
MOVR2,A
CJNER4,#80H,BCD1;与80H比较决定4舍5入
BCD1:
JCBCD2
MOVA,R3
ADDA,#01H
MOVR3,A
MOVA,R2
ADDCA,#00H
MOVR2,A
BCD2:
XCHA,R3
XCHA,B
XCHA,R2
MOVR0,#DISPLAY3
MOVR6,#00H
MOVR5,#64H
LCALLSUM;调除法子程序
MOVR6,#00H
MOVR5,#0AH
LCALLSUM
XCHA,B
MOV@R0,A
;………………………………………………………………………………………
SUM:
MOVR7,#00H
SUM0:
CLRC
XCHA,B
SUBBA,R5
XCHA,B
SUBBA,R6
INCR7
JNCSUM0
DECR7
XCHA,B
ADDA,R5
XCHA,B
ADDCA,R6
XCHA,R7
MOV@R0,A
XCHA,R7
INCR0
RET
;………………………………………………………………………………………
DISP:
MOVDPTR,#WM-ADDR;位控口地址
MOVA,#OFFH
MOVX@DPTR,A;关显示
MOVR0,DISPLAY1;指向显示缓冲区首址
MOVPOSITION,#0FEH;指向显示器最高位
MOVR4,#250;置显示延时值
DISP2:
MOVR3,#5
DISP3:
MOVDPTR,#WM-ADDR;数码管位码地址
MOVA,POSITIONG
MOVX@DPPTR,A;输出位控码
MOVA,@R0;取出显示数据
MOVDPTR,#TAB;字形码地址
MOVCA,@A+DPTR;查表,字形码送A
MOVDPTR,#DM-ADDR;数码管(字形)码地址
MOVX@DPPTR,A;输出字形码
INCR0;指向下一缓冲单元
MOVA,POSTITION
RRA;位选字右移
MOVPOSITION,A
DJNZR3,,DISP3
DJNZR4,DISP2
RET
TAB:
DB3FH,06H,5BH,4FH,66H
DB6DH,7DH,07H,7FH,6FH,40H
TIMER0:
PUSHPSW;保护现场
PUSHACC
PUSHDPH
PUSHDPL
CLRTF0;清溢出标志
MOVTH0,#0D8H;重置初值
MOVTL0,#0F0H
DECCON
MOVA,#100
CJNEA,CON,TIEND
SETB10H;置1秒到标志
TIEND:
POPDPL;恢复现场
POPDPH
POPACC
POPPSW
RETI;中断返回
5、心得体会
通过这次单片机课程设计,我不仅加深了对单片机理论的理解,更重要的是将学习到的理论应用到实际当中去,理解并掌握了单片机的一些基本功能,同时也发现了自己的许多相关方面的知识都还很欠缺,还仍需不断的学习、不断的提高。
同时意识到要想真正的把学到的理论知识在实际生活中灵活应用,必须把基本的理论知识真正的掌握并做到真正的理解,同时还要不断拓展自己的知识面。
附录
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 温度 采集 系统