单片机课设4路温度采集与显示系统设计徐.docx
- 文档编号:11814903
- 上传时间:2023-04-03
- 格式:DOCX
- 页数:14
- 大小:110.75KB
单片机课设4路温度采集与显示系统设计徐.docx
《单片机课设4路温度采集与显示系统设计徐.docx》由会员分享,可在线阅读,更多相关《单片机课设4路温度采集与显示系统设计徐.docx(14页珍藏版)》请在冰豆网上搜索。
单片机课设4路温度采集与显示系统设计徐
工业大学
《单片机与接口技术》课程设计(论文)
题目:
4路温度采集与显示系统设计
院(系):
专业班级:
学号:
学生姓名:
指导教师:
教师职称:
起止时间:
课程设计(论文)任务及评语
院(系):
信息科学与工程学院教研室:
自动化
学号
学生姓名
专业班级
课程设计(论文)题目
4路温度采集与显示系统设计
课程设计(论文)任务
该系统应具备如下功能要求
采用8751单片机作控制器,选用ADC0809、显示电路及外扩的RAM、EPROM一起构成4路温度采集与显示系统。
1、采用8051单片机。
2、采用3位LED数码管,显示整数值。
3、外扩2KBRAM和4KBEPROM
4、检测范围是0℃┈+100℃。
5、开机或复位后,在LED最右端显示“H”,以提示系统正常;
6、正常运行时,不断采集温度并送显示。
自选合适的单片机芯片组成单片机应用系统,该系统应满足如下设计要求:
1、单片机最小系统设计;
2、单片机与A/D转换接口电路设计;
3、温度检测及变换电路设计;
4、要求认真独立完成所规定的全部内容;所设计的内容要求正确、合理;
5、按学校规定的书写格式,撰写、打印设计说明书一份;设计说明书应在4000字以上;
指导教师评语及成绩
成绩:
指导教师签字:
年月日
1设计任务要求
利用LM35D实现了局部温度范围的监测。
即利用电压型温度传感器LM35D采集室温并产生10mv/℃的电压信号;采用A/D转换器将放大后的模拟信号转化为数字信号;实时显示转换后的室温;通过单片机实现高温,低温报警。
经实验调试,用该方法对0-100℃范围温度测温时,测量误差为+0.4℃。
LM35D是精度集成的电路温度传感器,线性好(10Mv/℃),宽量程(0℃-100℃),它的输出电压与摄氏温度线性成比例,无需外部校准或微调来提供±0.4的常用的室温精度,编程时易于实现。
LM35D采集到的微弱电压信号经过放大器OP07放大十倍后送入A/D转换器(ADC0809)的输入端,ADC0809将模拟信号转化为数字信号后传给8051,选用4个共阴极8段数码显示管用于静态显示当前测量温度。
用单片机RXD和TXD外接74LS164移位寄存器驱动数码管,使LED八段数码管动态显示室温。
2方案比较
方案一采用8031作为控制核心,以使用最为普遍的器件ADC0809作模数转换,控制上使用对电阻丝加电使其升温和开动风扇使其降温。
此方案简易可行,器件的价格便宜,但8031内部没有程序存储器,需要扩展,增加了电路的复杂性,且ADC0809是8位的模数转换,不能满足本题目的精度要求。
方案二采用比较流行的AT80C51作为电路的控制核心,AT80C51不但与8051,8052指令,管脚完全兼容,而且其片内的程序存储器采用FLASH工艺,用户可以用电的方式瞬间擦除、改写。
AT80C51单片机还支持在线编程,用户通过简单的电路连接就可以将电脑里的程序下载到单片机中,减少调试程序时不断拆卸和插入给芯片带来的损坏。
此外AT80C51单片机有8KB的程序存储器和256B的数据存储器,不需外部扩展存储芯片,可以降低硬件电路的复杂度。
此方案电路简单并且可以满足题目中的各项要求的精度。
综上所述,我们选择方案二。
3.单元电路设计
四路温度采集与显示主要由温度采集与A/D转换、8051单片机、外扩2KBRAM、外扩4KBEPROM和3位数字显示系统五部分组成。
构成整个系统的五部分功能如下:
1温度采集电路。
(1)电压型温度传感器LM35D
LM35D输出电压正比摄氏温度成正比,其灵敏度为10mV/℃;温度范围0℃-100℃;电压为4-30V,可直接用温控电路的电源,但要加一个隔离二极管及平滑电容C;精度为±1℃;最大线性误差为±0.5℃;静态电流为80uA;输出电压接数字万用表2V直流电压档,可读出分辨率为0.1℃的温度读数。
如表上读数为28mV,即温度为28.7℃。
该传感器的最大特点是使用时无需外围元件,也无需调试和校正(标定),把测温传感器与放大电路做在一个硅片上,形成一个集成温度传感器。
(2)放大电路
图1为系统的放大电路部分。
LM35D灵敏度为10mV/℃,如果室温为26℃,那么经LM35D采集室温后得到的电压信号为0.26mV,将此信号在整个硬件系统和软件系统中放大100倍,之后将其送入驱动电路,即可在LED数码管上显示室温。
LM35D的输出端经过15k的电阻和10uF的电容可使采集到的与温度成比例(10mV/℃)的电压信号更稳定;在放大电路中,取R6为1K是因为好计算放大倍数,R5用20K的滑动变阻器使这个0.26mV的微弱电压信号在0—20的放大倍数范围内可调试,在此,将其放大5倍,因此需要将R5调至10K,这样经放大器OP07放大后的6脚输出就为放大十倍的电压信号2.6V。
放大电路如图2-1所示:
2A/D转换电路由ADC0809来完成。
ADC0809的引脚功能如下:
ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。
它是逐次逼近式A/D转换器,可以和单片机直接接口。
图2-1放大电路
ADC0809的引脚结构图如图2-2所示:
IN0-IN7:
8条模拟量输入通道
ADC0809对输入模拟量要求:
信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。
地址输入和控制线:
4条
图2-2ADC0809的引脚结构图
ALE为地址锁存允许输入线,高电平有效。
当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。
A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。
通选择表如下表所示。
表2-1通道选择表
C
B
A
选择的通道
0
0
0
IN0
0
0
1
IN1
0
1
0
IN2
0
1
1
IN3
1
0
0
IN4
1
0
1
IN5
1
1
0
IN6
1
1
1
IN7
数字量输出及控制线:
11条
ST为转换启动信号。
当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。
EOC为转换结束信号。
当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。
OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。
OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。
D7-D0为数字量输出线。
CLK为时钟输入信号线。
因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ,
VREF(+),VREF(-)为参考电压输入。
ADC0809与8051的接线图如图2-3所示:
图2-3ADC0809与8051的接线图
38051单片机是ROM型单片机,内部有4KB的掩膜ROM,即单片机生产厂家固化在程序存储器中,8051单片机具有如下特性:
(1)面向控制的8位CPU;
(2)128B的片内数据存储器;
(3)可以寻址64KB的片外程序存储器和64KB的片外数据存储器;
(4)32根双向和可单独寻址的I/O线;
(5)一个全双工和可单独寻址的I/O线;
(6)两个16位定时/计数器;
(7)5个中断源,两个中断优先级;
(8)有片内时钟振荡器;
(9)采用高性能的HMOS生产工艺生产;
(10)有布尔处理(位操作)能力。
(11)含基本指令111条,其中单机器周期指令64种
8051单片机的引脚图如图2-4所示:
一、引脚简要说明
1、主电源引脚Vcc和Vss
Vcc(40脚):
主电源接+5V
图2-48051的引脚图
Vss(20脚):
接地
2、时钟电路引脚XTAL1和XTAL2
XTAL2(18脚):
接外部晶体振荡器的一端。
片内是一个振荡电路反相放大器的输出端。
XTAL1(19脚):
接外部晶体振荡器的另一端。
片内是一个振荡电路反相放大器的输入端。
3、控制信号RST/Vpd、ALE/(/PROG)、(/EA)/Vpp和/PSEN
RST/Vpd(9脚):
复位端。
高电平有效,宽度在24个时钟周期宽度以上,使单片机复位。
该引脚有复用功能,Vpd为备用电源输入端,防止主电源掉电。
ALE/(/PROG)(30脚):
地址锁存信号端。
访问片外存贮器时,ALE作低八位地址的锁存控制信号。
平时不访问片外存贮器时,该端以六分之一的时钟振荡频率固定输出脉冲。
ALE端负载驱动能力为8个LSTTL门。
该引脚有复用功能,为片内程序存贮器编程(固化)的编程脉冲输入。
/PSEN(29脚):
片外程序存贮器读选通信号端。
负载能力为8LSTTL门。
(/EA)/Vpp(31脚):
/EA端接高电平时,CPU取指令从片内程序存贮器自动顺延至片外程序存贮器。
/EA端接低电平时,CPU仅从片外程序存贮器取指令。
该引脚有复用功能,Vpp为片内程序存贮器编程时的编程电压。
4、输入/输出引脚P0、P1、P2和P3口
P0.0~P0.7(39~32脚):
访问片外存贮器时作为低八位地址线和八位数据线(复用)。
负载能力为8个LSTTL门。
P1.0~P1.7(1~8脚):
8位准双向I/O口。
负载能力为3个LSTTL门。
P2.0~P2.7(21~28脚):
访问片外存贮器时作为高八位地址线。
P3.0~P3.7(10~17脚):
8位准双向I/O口。
负载能力为3个LSTTL门。
另外还有专门的第二功能。
4外扩4KBEPROM。
EPROM是一种用电信号编程,也用电信号进行擦除的只读存储器。
此处,用来扩展的4KBEPROM是一片2732EPROM,2732是4K×8位紫外线擦除可编程只读存储器,单一+5V电源供电,最大工作电流为100mA,维持电流为35mA,读出时间最大为250ns.2732为24脚双列直插式封装。
它与单片机的接口电路如图2-7所示。
5外扩2KBRAM,8051片内有128B的RAM存储器,在实际应用中仅靠这128B的数据存储器是远远不够的。
这种情况下可以利用8051单片机所具有的扩展功能,扩展外部数据存储器。
此处,扩展2KB的RAM由一片6116来完成。
6116是2K×8静态随机存储器,采用CMOS工艺制造,单一+5V电源供电,额定功率为160mW,典型存取时间200ms,读出时间最大为250ns,为24线双列直插式封装。
它与单片机的接口电路如图2-7所示。
63位数字显示系统
图2-5是静态显示电路示意图。
静态显示是LED数码管的各个段都与一个固定驱动端相连接,每个数码管有七段,N个数码管就有7N固定固定驱动端与其相连接。
图中外接74LS164移位寄存器对应于各个数码管。
8051的串行口设定为方式0输出。
由于被显示的字形是以字形码的形式出现。
因此,首先在程序中要建立一个字形表SEGPT。
该表以16进制数的次序,存放其相应字形码,把表格的首地址SEGPT,送入基址寄存器DPTR,把要显示的数作为偏移量送入变址寄存器A,然后执行查表指令MOVCA,@A+DPTR,从表中取出对应字符的字形码送到累加器。
另外,还要开辟一个显示缓冲区DISMO-DISMN,缓冲区中每个单元对应一个LED数码管。
显示子程序的作用就是依次将显示缓冲区中的内容(16进制数据)取出,并查表变换成要显示字符的字形码,送往数码中显示。
因此,凡是需要调整、更新显示内容时,必须先向显示缓冲区的单元送数,然后再调用显示子程序。
图2-5所示的静态显示电路是使用串行口的静态LED驱动接口。
利用串行口和移位寄存器作为显示器的驱动接口,可以简化设计,节省CPU的显示接口。
在图2-5中,串行接口工作于方式0。
RXD作为输出端接到移位寄存器74LS164的两个输入端A和B,前一个移位寄存器的输出端也与下一个移位寄存器74LS164的A、B相连,这样首尾相接,直到传送3位显示数为止。
当显示完以后,先送出的数显示在最右端,最后送出的数显示在最左边一位,所以在显示缓冲区存数时要特别注意。
图2-5静态显示电路示意图
4.元件选择
在单片机的程序调试和运行时,有时需要用复位键进行复位,正确的复位是单片机得以正常远行的前提。
所以复位电路是单片机系统必不可少的一部分。
此处,复位电路如图2-6所示。
图2-6复位电路
2.3扩展系统设计
单片机扩展系统的设计如图2-7所示。
图2-7中8D锁存器74LS373的三态控制端1引脚OE接地,以保持输出常通。
其三态输出还有一定的驱动能力,G端与11引脚与ALE相连接,每当ALE下跳变时,外部扩展的4KBEPROM芯片2732是4K×8位EPROM器件,有12根地址线A0-A11,2732与8051的连接方法如图2-3,其中低8位地址线通过锁存器与8051的P0口相连,高4位地址线与8051的P2.0-P203相连.当8051发出12位地址信息时,可以选中4kB程序存储器中任何单元.同样,2732的8根数据线直线与8051的P0口相连.2732的OE端直接与8051的PSEN端相连.
2732的片选信号CE接地,显然该2732占有的地址空间可以为1000H-0FFFH.
6116与8051的硬件连接如图2-7所示.6116的地址线,数据线的接法同程序存储器的接法一样,6116的写允许WE和读允许OE分别与8051的WR(P3.6)和RD(3.7)连接,以实现读写控制,6116的片选控制端CE接地常选通.在扩展RAM时,这是一种最简单的连接方法.
图2-7扩展4KBEPROM和2KBRAM
4路温度采集与显示系统的整机电路设计如图2-8所示:
图2-84路温度采集与显示系统的整机电路
第3章软件设计
3.1程序框图
N
系统正常?
Y
显示缓冲区首地址22H送H,其它字节送暗字符
显示输出
启动传感器温度传感器采集
启动A/D转换
存储采集温度的数字值
读取温度值
显示几路传感器采集0.5s
十进制转换
显示输出
全部显示一次?
Y
N
图3-1程序结构框图
3.2程序设计
这个系统只显示0℃-100℃温度的整数部分,整个系统的程序设计如下:
ORG0000H;
MOVR0,#22H;将显示缓存器首地址送入@R0
MOV@R0,#A1H;
INCR0;
MOV@R0,#FFH;
INCR0;
MOV@R0,#FFH;
LJMPDISPLAY;
LJMPDELAY;
LJMPDISPLAY;调用显示子程序,显示系统正常运行
MOV55H,#01H;将几路传感器工作送入22H单元
SET:
LJMPSTART;调用A/D转换程序
MOV22H,55H;显示几路传感器工作
MOV@R0,22H;
INCR0;
MOV@R0,#FFH;
INCR0;
MOV@R0,#FFH;
MOVA,55H;
INCA;
MOV55H,A;
LJMPDISPLAY;显示几路传感器工作
MOVDPTR,30H;
MOVXA,@DPTR;
LJMPDATA;调用十进制转换子程序
INCDPTR;
LJMPDISPLAY;调用显示子程序
DJNZ55H,#04H,SET;四路全部显示完成后重新显示第一路
LJMPSET;
END
2十进制转换子程序
DATA:
MOVDPTR,30H
MOVXA,@DPTR;
MOVB,#64H;
DIVAB;
MOV24H,A;百位数进24H
MOVA,B;
MOVB,#0AH;
DIVA,B;
MOV23H,A;十位数进23H
MOVA,B
MOV22H,A;个位数进22H
RET
3显示子程序
DISPLAY:
ORG60H
DISB:
DS3;示缓冲区3字节
ORG1000H
DSP:
MOVR7,#3;数位计数器值为3
MOV@R0,22H;R0指向显示器缓冲区首址
MOVA,@R0;取要显示的数据
ADDA,@0AH;加上到SGTAB的偏移量
MOVCA,@A+PC;字型的段码
MOVSBUF,A;送串行口输出
DSP2:
JNBTI,DSP2;等待输出结束
CLRTI;输出结束清TI标志
INCRO;指向显示缓冲区下一位
DJNZR7,DSP1;未显示完3为则循环
RET;显示完则返回
SGTAB:
DB08H;0
DB9FH;1
DB25H;2
DB0DH;3
DB99H;4
DB49H;5
DB41H;6
DB1FH;7
DB01H;8
DB19H;9
DBA1H;H
DBFFH;暗字符
4延时子程序,因为系统不需要精度太高的延时,所以使用这个延时子程序。
DELAY:
DEL:
MOVR5,#100;延时0.5s
DEL1:
MOVR7,#125;
DEL2:
MOVR6,200;
DEL3:
DJNZR6,DEL3;
DJNZR7,DEL2;
DJNZR5,DEL;
RET
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 温度 采集 显示 系统 设计