整理单片机课程设计之多点温度测量系统的设计.docx
- 文档编号:27607180
- 上传时间:2023-07-03
- 格式:DOCX
- 页数:19
- 大小:494.34KB
整理单片机课程设计之多点温度测量系统的设计.docx
《整理单片机课程设计之多点温度测量系统的设计.docx》由会员分享,可在线阅读,更多相关《整理单片机课程设计之多点温度测量系统的设计.docx(19页珍藏版)》请在冰豆网上搜索。
整理单片机课程设计之多点温度测量系统的设计
单片机应用系统设计
课题:
多点温度测量系统的设计
姓名:
班级:
学号:
指导老师:
日期:
一、设计的背景和意义
温度测控技术在各个领域应用越来越广泛,同时温度测量也被人们所关注,人们对测试温度的仪器要求越来越高,要为人类工、科研、生活提供更好的设施,那就需要从单片机技术入手,一切向着数字化控制,智能化控制方向发展。
二、系统总体方案设计
因为要用到温度传感器,所以在单片机电路设计中,大多都是使用传感,我们使用的是DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,可以满足设计的要求。
1、原理:
(1)将AD590作为室温度传感器,当温度变化时,AD590会产生电流的变化,经OPA1将电流转换为电压,由OPA2作为零为调整,
最后由OPA3反相放大10倍。
(2)ADCO804输出最大转换值=FFH(255)。
OPA3为放大10倍时。
则本电路最大测量温度为;最大显示温度为5.1/10V=0.51V,即51°C(10为放大倍数)。
255X=51,知X=0.2,即先乘2再除10。
FF→255→255ⅹ2→510,R4=0.5R3=10。
即D4=0,D3=5,D2=1,
D1=0,本电路显示器只取D3、D2两位数。
(3)按下P2.1按钮,放开后立即进入温度设定模式,显示设定最高温度为34°C(建立在TABLE内)每按一次设定温度将减少1°C,直至最低温度20°C,再按一次回到34°C。
(4)当室温高于设定温度,压缩机(P3.0)运转,使室温降低,当室温低于设定值时,压缩机停止运行。
(5)当进入设定温度模式,如末按下设定按钮(P2.1)经数秒后自动解除设定模式,回到室温显示模式。
(6)本程序以计时中断,每50ms中断一次,比较室温一次,而令
压缩机运转和停止。
总体设计框图:
电路原理图:
三、硬件设计
1.复位操作
复位是单片机的初始化操作,其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。
除了进入系统的正常
初始化之外,当由于程序运行出错或者操作错误使系统处于死锁状态
时,为摆脱困境,也需按复位键以重新启动。
(1)复位操作还对单片机的个别引脚信号有影响,例如把ALE和PSEN非信号变为无效状态,即ALE=0,PSEN=1。
(2)复位信号及其产生
RST引脚是复位信号的输入端,复位信号是高电平有效,其有效时间持续24个振荡脉冲周期(即2个机器周期)以上,若使用频率为6MHz的晶振,则复位信号持续时间应超过4us才能完成复位操作。
产生复位信号的电路逻辑如图
(3)复位方式
复位操作有上电自动复位和按键手动复位两种方式。
上电自动复位是通过外部复位电路的电容充电来实现的,在单片机控制的数字显示温度计电路设计中的单片机复位就是这种方式,其中电容C为22uF,电阻R为1k欧姆。
这样,只要电源Vcc(+5V)的上升时间不超过1ms,就可以实现自动上电复位,即接通电源就完成了系统的复位初始化。
按键手动复位有电平方式和脉冲方式两种。
其中按键电平复位是通过使复位端经电阻与Vcc电源接通而实现的而按键复位脉冲复位则是利用RC微分电路产生的正脉冲来实现的。
显示温度值的LED显示器:
LED显示器是单片机应用系统中常用的廉价输出设备。
它是由若干个发光二极管组成的,当发光二极管导通时,相应一个笔画划发光,控制某段发光二极管导通,就能显示出某个数码或字符,常用八段LED显示器有两种结构,如图:
在静态显示系统中,每位显示器都应有各自的锁存器、译码器(若采用软件译码,译码器可省去)与驱动器,用以锁存各自待显示数字的BCD码或字段码。
因此,静态显示系统在每一次显示输出后能够保持显示不变,仅在待显示数字需要改变时,才更新其数字显示锁存器中的内容。
这种显示占用CPU的时间少,显示稳定可靠。
缺点是,当显示的位数较多时,占用的I/O口较多。
在动态显示的系统中,CPU需定时地对每位LED显示器进行扫描,每位LED显示器分时轮流工作,每次只能使一位LED显示,但由于人的视觉暂留现象,仍感觉所有的LED显示器都在同时显示。
这种显示的优点是使用硬件少,占用I/O口少。
缺点是占用CPU时间长,只要不执行显示程序,就立刻停止显示。
但随着大规模集成电路的发展,目前已有能自动对显示器进行扫描的专用显示芯片,使电路既简单又占用CPU时间。
在我们所设计的温度计中数码管显示就是利用的动态显示。
温度传感器DS1820
DS1820内部结构框图如图:
:
DS1820测温原理如图:
图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。
高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。
计数器1和温度寄存器被预置在-55℃所对应的一个基数值。
计数器1温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。
图2中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正。
四、系统软件设计
1温度控制流程图
2电路程序
;6M晶体89c51
tempheadequ40h
display_data1_regdata30h
display_data2_regdata31h
display_data3_regdata32h
display_long_regdata33h
led1_bitbitp3.0
led2_bitbitp3.1
led3_bitbitp3.2
time1sokbit01H
TEMPONE0KBIT02H
Wiredogcsbitp3.7
;TIAOSHI_LONGDATA21H
;TIAOSHI_DATADATA22H
templdata34h
temphdata35h
temphcdata36h
templcdata37h
tempdinbitp2.0
ORG0000H
LJMPSTART
ORG000BH
AJMPLED
ORG0030H
start:
MOVsp,#60H
movtmod,#21H
movpcon,#00H
movscon,#01010000b
movth1,#243
movtl1,#243
SETBET0
movdisplay_long_reg,#00h
SETBEA
MAIN:
CLRTEMPONE0KMAIN1:
LCALLDLY_1S
JNBTEMPONE0K,MAIN2
clrea
LCALLREADTEMP1
setbea
LCALLCONVTEMP
MAIN2:
clrea
LCALLREADTEMP
setbea
setbTEMPONE0K
AJMPMAIN1
;****************************************************
;DS1820复位
;****************************************************
INITDS1820:
SETBTEMPDIN
NOP
NOP
CLRTEMPDIN
MOVR6,#0A0H
DJNZR6,$
MOVR6,#0A0H
DJNZR6,$
SETBTEMPDIN
MOVR6,#32H
DJNZR6,$
MOVR6,#3CH
LOOP1820:
MOVC,TEMPDIN
JCINITDS1820OUT
DJNZR6,LOOP1820
INITDS1820OUT:
SETBTEMPDIN
RET
;****************************************************
;读DS1820的数据
;入口条件:
数据存放在ACC中
;****************************************************
READDS1820:
MOVR7,#08H
SETBTEMPDIN
NOP
NOP
READDS1820LOOP:
CLRTEMPDIN
NOP
NOP
NOP
SETBTEMPDIN
MOVR6,#07H
DJNZR6,$
MOVC,TEMPDIN
MOVR6,#3CH
DJNZR6,$
RRCA
SETBTEMPDIN
DJNZR7,READDS1820
LOOPMOVR6,#3CH
DJNZR6,$RET
****************************************************
;写DS1820的数据
;出口条件:
数据存放在ACC中
;****************************************************
WRITEDS1820:
MOVR7,#08H
SETBTEMPDIN
NOP
NOP
RRCA
MOVTEMPDIN,C
MOVR6,#34H
DJNZR6,$
SETBTEMPDIN
DJNZR7,WRITEDS1820LOP
RET
;***********************************************
;启动温度转换
;***********************************************
READTEMP:
LCALLINITDS1820
MOVA,#0CCH
LCALLWRITEDS1820
MOVR6,#34H
DJNZR6,$
MOVA,#44H
LCALLWRITEDS1820
MOVR6,#34H
DJNZR6,$
RET
;***********************************************
;读取转换后的温度值
;***********************************************
READTEMP1:
LCALLINITDS1820
MOVA,#0CCH
LCALLWRITEDS1820
MOVR6,#34H
DJNZR6,$
MOVA,#0BEH
LCALLWRITEDS1820
MOVR6,#34H
DJNZR6,$
MOVR5,#09H
MOVR0,#TEMPHEAD
INCR0
READTEMP21:
LCALLCRC8CALDJNZR5,READTEMP2
MOVA,B
JNZREADTEMPOUT
MOVR1,#TEMPHEAD
MOVA,@R1
MOVTEMPL,A
INCR1
MOVA,@R1
MOVTEMPH,AREADTEMPOUT:
RET
;**********************************************************
;处理温度BCD码程序
;**********************************************************
CONVTEMP:
MOVA,TEMPH
ANLA,#80H
JZTEMPC1;判断是否为负数
CLRC
MOVA,TEMPLCPLA
ADDA,#01HMOVTEMPL,AMOVA,TEMPHCPLA
ADDCA,#00H
MOVTEMPH,A
MOVTEMPHC,#0BH
SJMPTEMPC11
TEMPC1:
MOVTEMPHC,#0AH
TEMPC11:
MOVA,TEMPHC
SWAPA
MOVTEMPHC,A
MOVA,TEMPL
MOVTEMPLC,A
MOVA,TEMPL
ANLA,#0F0H
SWAPA
MOVTEMPL,A
MOVA,TEMPH
ANLA,#0FH
SWAPA
ORLA,TEMPL
LCALLHEX2BCD1
MOVTEMPL,A
ANLA,#0F0H
SWAPA
ORLA,TEMPHC
MOVTEMPHC,A
MOVA,TEMPL
ANLA,#0FH
SWAPA
ORLA,TEMPLC
MOVTEMPLC,A
MOVA,R7
JZTEMPC12
ANLA,#0FH
SWAPA
MOVR7,A
MOVA,TEMPHC
ANLA,#0FH
ORLA,R7
MOVTEMPHC,A
TEMPC12:
RET
TEMPDOTTAB:
DB00H,01H,01H,02H,03H,03H,04H,04H,05H,06HDB06H,07H,08H,08H,09H,09H
;*********************************************
CRC8LOOP1:
XRLA,B
RRCA
MOVA,B
JNCCRC8LOOP2
XRLA,#18HCRC8
LOOP2:
RRCA
MOVB,A
POPACC
RRA
PUSHACC
DJNZR7,CRC8LOOP1
POPACC
RET
;*********************************************
;单字节16进制转换BCD
;入口条件:
数据存放在ACC中
;出口条件:
数据存放在ACC中
;*********************************************
HEX2BCD1:
MOVB,#64H
DIVAB
MOVR7,A
MOVA,#0AH
XCHA,B
DIVAB
SWAPA
ORLA,B
RET
;*********************************************
;1S延时程序
;*********************************************
DLY_1S:
PUSHPSW
SETBRS0
MOVR7,#10
DLY_1S_1:
MOVR6,#200
DJNZR5,$
DJNZR6,DLY_1S_2
DJNZR7,DLY_1S_1
POPPSW
RET
;********************************************
;数码管显示程序
;********************************************
;**********************************************************
;LED
;入口条件:
输入数据放入ACC
;输出:
转换后的数据保存显示器缓冲区中中
;影响数据:
ACC
;**********************************************************
LED:
pushacc
pushdph
pushdpl
movth0,#0fch
movtl0,#66h
movdptr,#led_tab_1
mova,display_long_reg
incdisplay_long_reg
rla
jmp@a+dptrled_tab_1:
ajmpled1
ajmpled2
ajmpled3
led1:
setbled1_bit
setbled2_bit
setbled3_bit
mova,TEMPLC
anla,#0fh
movdptr,#led_tab_2
movca,@a+dptr
ajmpled_exit
led2:
setbled1_bit
setbled2_bit
setbled3_bit
mova,TEMPLC
anla,#0f0h
swapa
movdptr,#led_tab_2
movca,@a+dptr
clracc.7
movp1,a
clrled2_bit
ajmpled_exit
led3:
setbled1_bit
setbled2_bit
(1)环境的使用价值。
环境的使用价值(UV)又称有用性价值,是指环境资源被生产者或消费者使用时,满足人们某种需要或偏好所表现出的价值,又分为直接使用价值、间接使用价值和选择价值。
setbled3_bit
mova,TEMPHC
anla,#0fh
movdptr,#led_tab_2
movca,@a+dptr
movp1,a
(3)建设项目对环境可能造成影响的分析、预测和评估。
clrled1_bit
(2)防护支出法movdisplay_long_reg,#0
表四:
项目排污情况及环境措施简述。
ajmpled_exit
led_tab_2:
DB0C0H,0F9H,0A4H,0B0H,99HDB92H,82H,0F8H,80H,90H
DB88H,83H,0C6H,0A1H,86H,8EH,0ffH
一、环境影响评价的发展与管理体系、相关法律法规体系和技术导则的应用led_exit:
popdpl
popdph
popacc
B.环境影响登记表reti
疾病成本法和人力资本法将环境污染引起人体健康的经济损失分为直接经济损失和间接经济损失两部分。
直接经济损失有:
预防和医疗费用、死亡丧葬费;间接经济损失有:
影响劳动工时造成的损失(包括病人和非医务人员护理、陪住费)。
这种方法一般通常用在对环境有明显毒害作用的特大型项目。
;*********************************************
表三:
周围环境概况和工艺流程与污染流程;五设计总结
这个设计是参考了很多的材料才完成的,虽然设计的不是很完美,但是能够完成老师的要求,在做这个课程设计的时候,我的朋友帮我找了不少资料,在此,我要特别感谢他。
(7)环境影响评价的结论。
在做这个课程设计师遇到了许多的困难,但是因为有朋友的帮助,我还是克服了它们!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 整理 单片机 课程设计 之多 温度 测量 系统 设计