温度巡回检测系统设计.docx
《温度巡回检测系统设计.docx》由会员分享,可在线阅读,更多相关《温度巡回检测系统设计.docx(14页珍藏版)》请在冰豆网上搜索。
温度巡回检测系统设计
中北大学
课程设计任务书
11/12学年第二学期
学院:
信息与通信工程学院
专业:
自动化
学生姓名:
学号:
课程设计题目:
温度巡回检测系统设计
起迄日期:
2012年6月11日~2012年6月15日
课程设计地点:
中北大学
指导教师:
系主任:
下达任务书日期:
2012年6月8日
课程设计任务书
1.设计目的:
设计一个单片机温度巡回检测程序控制系统,可以对粮仓的温度进行多点巡回检测。
通过设计,掌握数据采集系统的工作原理、掌握单片机控制系统的设计原理、设计步骤,进一步提高综合运用知识的能力。
2.设计内容和要求(包括原始数据、技术参数、条件、设计要求等):
(1)选择传感器,设计接口电路,对八点的温度进行巡回检测,要求温度测量范围是0~50℃,精度±1℃。
(2)编写控制程序,在屏幕上巡回显示八点温度的实测值。
(3)写出设计说明书。
3.设计工作任务及工作量的要求(包括课程设计计算说明书、图纸、实物样品等):
(1)查阅资料,确定设计方案
(2)选择器件,设计硬件电路,并画出原理图和PCB图
(3)画出流程图,编写控制程序
(4)撰写课程设计说明书
课程设计任务书
4.主要参考文献:
1单片机及其接口技术北京航空航天大学出版社李朝青主编
2
3
4
5
5.设计成果形式及要求:
课程设计说明书1份
原理图和PCB图各1份
程序清单1份
6.工作计划及进度:
起迄日期
工作内容
12年6月11日~6月12日
6月12日~6月13日
6月13日~6月14日
6月14日~6月15日
6月16日~6月17日
查阅资料,确定设计方案
设计硬件电路
画出流程图,编写控制程序
撰写课程设计说明书
课程设计答辩
系主任审查意见:
签字:
年月日
设计目的:
设计一个单片机温度巡回检测程序控制系统,可以对粮仓的温度进行多点巡回检测
设计内容和要求:
1、选择传感器,设计接口电路,对八点的温度进行巡回检测,要求温度测量范围是0~50℃,精度±1℃。
2、编写控制程序,在屏幕上巡回显示八点温度的实测值。
3、写出设计说明书。
设计分析:
本次单片机的课程设计为八路温度巡回检测装置,是在粮仓内同时进行多点的温度测量控制。
在此次的电路中需要单片机,A/D装换装置,晶振电路,复位电路,温度显示部分,温度检测部分。
每一部分都可作为独立的部分进行设计,设计后连接到单片机上,成为整体的电路。
89C51引脚图:
系统总体结构
温度检测流程图
开始
置采集通道为0
启动A/D转换
结果存入
延时
通道增1
通道数为8?
结束
八路巡回温度检测的原理图,其中温度采集部分只画出了一个,其他7个与此相同。
元件库中没有找到89c51,用8031代替。
程序部分:
MAIN:
MOVR0,#0A0H;数据暂存区首址
MOVR2,#08H;8路计数初值
SETBIT1;脉冲触发方式
SETBEA;开中断
SETBEX1
MOVDPTR,#7FF8H;指向0809首地址
MOVX@DPTR,A;启动A/D转换
HERE:
SJMPHERE;等待中断
中断服务程序:
MOVXA,@DPTR;读数
MOVX@R0,A;存数
INCDPTR;更新通道
INCR0;更新暂存单元
DJNZR2,DONE
RETI
DONE:
MOVX@DPTR,A
RETI
心得体会:
在经过一周的时间过后,单片机的课程设计结束了。
通过这一周的课程设计使我收获很多,使我加深了对单片机课程的理解,以及实际的应用。
在这一周的课程设计中,每天都认真的寻找课利用的资源。
完成单片机课程设计后,发现我还有许多不足,所学到的知识还远远不够,以至于还有一些功能不能被完成。
通过学习这一次课设,使我们认真思考,勤学好问,也使我认识到认识到把理论应用到实践中去是多么重要。
课程设计真正地巩固了我所学的内容。
另一方面,由于Protel的安装局限,使得一些元器件没有找到画出的电路图不够完整。
时间有限,所以没有进行元器件的封装,就没有出PCB板。
通过此次课程设计,我深刻认识到自己左学的东西有多么的少,在以后的学习生活中,一定努力扩大自己的知识面,加深理解。
为以后打下扎实的基础。
附录:
程序:
org0000h
movsp,#50h
LOOP1:
MOV3AH,#01H;置路数为1
movr0,#30h;保存数据区首址给R0
movdptr,#7ff0h;P2.7=0,指向IN0(第一路)
mov3bh,#08h;通道总数为8
read:
movx@dptr,a;启动A/D转换
nop
nop
nop
acallwait;等待A/D转换
movxa,@dptr;读转换结果
mov@r0,a;保存转换结果
BIND:
PUSHDPL;取温度值
PUSHDPH
MOVDPTR,#0500H
MOVA,@R0
MOVCA,@A+DPTR
MOV40H,A
BIN2BCD:
;二进值码转换BCD码程序
MOVR1,#43H
MOV43H,#00H;转换前将BCD码清零
MOV44H,#00H
MOVR3,#8;移动8次,
START:
MOVR1,#43H;转换后BCD码地址
MOVA,40H
RLCA
MOV40H,A
MOVR2,#02H;转换后BCD码字节数
BCDCHG:
MOVA,@R1
ADDCA,ACC
DAA
MOV@R1,A
INCR1
DJNZR2,BCDCHG
DJNZR3,START
popdpH
POPDPL
chanf:
mova,3Ah;显示缓冲区地址分配
anla,#0FH
mov48h,a
mova,44h
anla,#0FH
mov4ah,a
mova,43h
anla,#0FH
mov4ch,a
mova,43h
swapa
anla,#0Fh
mov4bh,a
disp:
acallsym;调用判断热电阻是否正常或温度是否超限子程序
acallzero1;调用消隐“0”子程序
pushdpl;显示子程序
pushdph
movdptr,#tab;取段码表首址
MOV28H,#1eH
MOV29H,#066H
dsp1:
mova,48h;显示路数
movca,@a+dptr;查显示数据对应段码
movp1,a;送段码
clrp3.4
acalldll
setbp3.4
dsp2:
clrc;判断温度是否为负。
如是,显示负号
mova,@r0
subba,#56h
jcplus
mov49h,#0bfh
ajmpka
plus:
mov49h,#0ffh
ka:
mova,49h
movp1,a
clrp3.3
acalldll
setbp3.3
dsp3:
mova,4ah;显示温度值百位
movca,@a+dptr
movp1,a
clrp3.2
acalldll
setbp3.2
dsp4:
mova,4bh;显示温度值十位
movca,@a+dptr
movp1,a
clrp3.1
acalldll
setbp3.1
dsp5:
mova,4ch;显示温度值个位
movca,@a+dptr
movp1,a
clrp3.0
acalldll
setbp3.0
DJNZ29H,KK1
MOV29H,#01H
DJNZ28H,KK1;延时,时间未到,循环显示该路温度值
AJMPKK2
KK1:
AJMPDSP1
KK2:
popdph;时间到,显示下一路
popdpl
incr0
inc3ah
incdptr
djnz3bh,fturn;8路未显示完,显示下一路
ajmploop1;8路显示完,从第一路开始显示
fturn:
ajmpread
SYM:
mova,@r0;判断热电阻是否正常或温度是否超限子程序
clrc
subba,#1eh
jncsym1
mov4ah,#0bh;热电阻开路或温度超过50度,显示“HHH”
mov4bh,#0bh
mov4ch,#0bh
ajmpsym3
sym1:
mova,@r0
subba,#0dbh
jcsym3
mov4ah,#0ch;热电阻短路或温度低于-120度,显示“-LLL”
mov4bh,#0ch
mov4ch,#0ch
sym3:
Ret
zero1:
;消隐“0”子程序
mova,4ah
jNzzero2
mov4ah,#0Ah
mova,4bH
jnzzero2
mov4bh,#0ah
zero2:
ret
wait:
movr4,#03ah;等待子程序
djnzr4,$
ret
dll:
MOVR7,#015H;延时子程序
DL1:
MOVR6,#01aH
DL2:
DJNZR6,DL2
DJNZR7,DL1
RET
TAB:
DB0C0H,0F9H,0A4H,0B0H
DB99H,92H,82H,0F8H
DB80H,90H,0ffh,89h,0C7h;其中0FFH是消隐“0”用
ORG051EH
TAB2:
DB32H,31H,30H,2FH,2EH,2DH,2CH,2BH,2AH,29H,28H,28H,27H,26H,25H,24H,23H,22H,21H,20H,1FH,1FH
DB1EH,1DH,1CH,1BH,1AH,19H,18H,17H,16H,15H,14H,14H,13H,12H,11H,10H,0FH,0EH,0DH,0CH,0BH,0AH
DB0AH,09H,08H,07H,06H,05H,04H,03H,02H,02H,01H,0H,01H,02H,03H,04H,05H,06H,07H,08H,09H,09H
DB0AH,0BH,0CH,0DH,0EH,0FH,10H,11H,12H,12H,13H,14H,15H,16H,17H,18H,19H,1AH,1BH,1CH,1DH,1DH
DB1EH,1FH,20H,21H,22H,23H,24H,25H,26H,27H,28H,28H,29H,2AH,2BH,2CH,2DH,2EH,2FH,30H,31H,31H
DB32H,33H,34H,35H,36H,37H,38H,39H,3AH,3AH,3BH,3CH,3DH,3EH,3FH,40H,41H,42H,44H,45H,45H,46h
DB47h,48h,49H,4AH,4BH,4CH,4DH,4DH,4EH,4FH,50H,51H,52H,52H,53H,54H,55H,56H,57H,58H,58H,59H
DB5AH,5BH,5CH,5DH,5EH,5FH,60H,61H,61H,62H,63H,64H,65H,66H,67H,68H,69H,6AH
DB6AH,6BH,6CH,6DH,6EH,6EH,6FH,70H,71H,72H,73H,73H,74H,75H,76H,77H,78H
END