单片机课程设计1.docx
《单片机课程设计1.docx》由会员分享,可在线阅读,更多相关《单片机课程设计1.docx(13页珍藏版)》请在冰豆网上搜索。
单片机课程设计1
《微机原理与接口技术I
综合实验》设计报告
设计课题:
温度上下限报警器
专业班级:
学生姓名:
学生学号:
指导教师:
成绩:
二○一二年五月二十三日
温度上下限报警器
一,设计目的
基于AT89C51单片机设计温度检测报警,可以实时采集周围的温度信息进行显示,并且可以根据应用环境不同设定不同的报警上下限。
本次设计的温度检测报警系统是在日常生活和工业应用非常广泛的工具,能实时采集周围的温度信息进行显示,程序内部设定有报警上下限,根据应用环境不同可设定不同的报警上下限。
该系统实现了对温度的自动监测,为设备的正常运行提供了条件,在工业中具有一定的实用价值和广泛的应用前景。
二,设计要求
1.实时温度检测并显示其对应的值。
2.具有温度报警功能。
3.可以设报警置温度上下限。
三,设计电路原理图
系统设计框图
图2.1系统设计框图
系统电路设计框图
AT89C51
单
片
机
温度传感器进行温度采集,经过A/D转换(ADC0808内部完成此操作),送入单片机存储,通过定时器0进行定时读取
把所测试的温度显示到数码管上
蜂宁器报警,在温度达到相应设定的温度值,触发蜂宁器发出响声,进行报警。
可以设定报警方式(上限报警还是下限报警)
图2.2.1系统电路设计框图
2.2.3系统电力模块图
(1)单片机电路连接图
图2.2.3
(1)为单片机电路连接图,其中晶振频率可以根据自己需要进行选择,范围在0-24MHZ,常用12MHZ。
复位电路得电容一般用10UF,但并不唯一,只要RC所得时间大于两个机器周期即可。
还有其P0内部无上拉电阻,所以在执行输出功能时,外部必须接上拉电阻(一般10K即可)。
图2.2.3
(1)单片机电路连接图
(2)液晶显示电路模块
图2.2.3
(2)为液晶显示电路模块,图中为一个四位八段数码管,其接法为共阴极接法。
(2)液晶显示电路模块
图2.2.3
(2)为液晶显示电路模块,图中为一个四位八段数码管,其接法为共阴极接法。
图2.2.3
(2)液晶显示电路模块
(3)A/D转换电路模块
图2.2.3(3)为A/D转换电路模块物理量的输入为IN0管脚,模量的输出为OUT1—8。
.
图2.2.3(3)A/D转换电路模块
2.2.4系统电力图
图2.2.4系统电力图
四,元器件清单
7SEG-MPX4-CC-BLUE
ADCO808
AT89C51
CAP
CAP-ELEC
CRYSTAL
LED-BLUE
LED-GREEN
LED-RED
LED-YELLOW
POT-HG
PULLUP
RES
SOUNDER
五,软件流程图与清单
程序主要模块流程图
图3.1AT89C51主程序流程图
源程序清单与注释
LED_0EQU30H
LED_1EQU31H
LED_2EQU32H
ADCEQU35H
TCNTAEQU36H
TCNTBEQU37H
H_TEMPEQU38H;温度上限
L_TEMPEQU39H;温度下限
FLAGBIT00H
H_ALMBITP3.0
L_ALMBITP3.1
SOUNDBITP3.7
CLOCKBITP2.4
STBITP2.5
EOCBITP2.6
OEBITP2.7
ORG00H
SJMPSTART
ORG0BH
LJMPINT_T0
ORG1BH
LJMPINT_T1
START:
MOVLED_0,#00H
MOVLED_1,#00H
MOVLED_2,#00H
MOVDPTR,#TABLE
MOVH_TEMP,#153
MOVL_TEMP,#77
MOVTMOD,#12H
MOVTH0,#245
MOVTL0,#0
MOVTH1,#(65536-1000)/256
MOVTL1,#(65536-1000)MOD256
MOVIE,#8aH
CLRC
SETBTR0;为ADC0808提供时钟
WAIT:
SETBH_ALM
SETBL_ALM
CLRST
SETBST
CLRST;启动转换
JNBEOC,$
SETBOE
MOVADC,P1;读取AD转换结果
CLROE
MOVA,ADC
SUBBA,#77;判断是否低于下限
JCLALM
MOVA,H_TEMP
MOVR0,ADC
SUBBA,R0;判断是否高于上限
JCHALM
CLRTR1
LJMPPROC
LALM:
;低温报警
CLRL_ALM
SETBTR1
CLRFLAG
LJMPPROC
HALM:
;高温报警
CLRH_ALM
SETBTR1
SETBFLAG
LJMPPROC
PROC:
MOVA,ADC;数值转换
MOVB,#100
DIVAB
MOVLED_2,A
MOVA,B
MOVB,#10
DIVAB
MOVLED_1,A
MOVLED_0,B
LCALLDISP
SJMPWAIT
INT_T0:
CPLCLOCK;提供ADC0808时钟
RETI
INT_T1:
MOVTH1,#(65536-1000)/256
MOVTL1,#(65536-1000)MOD256
CPLSOUND
INCTCNTA
MOVA,TCNTA
JBFLAG,I1;判断是高温警报还是低温警报
CJNEA,#30,RETUNE;低温警报声
SJMPI2
I1:
CJNEA,#20,RETUNE;高温警报声
I2:
MOVTCNTA,#0
INCTCNTB
MOVA,TCNTB
CJNEA,#25,RETUNE
MOVTCNTA,#0
MOVTCNTB,#0
LCALLDELAY2
RETUNE:
RETI
DISP:
MOVA,LED_0;数码显示子程序
MOVCA,@A+DPTR
CLRP2.3
MOVP0,A
LCALLDELAY
SETBP2.3
MOVA,LED_1
MOVCA,@A+DPTR
CLRP2.2
MOVP0,A
LCALLDELAY
SETBP2.2
MOVA,LED_2
MOVCA,@A+DPTR
CLRP2.1
MOVP0,A
LCALLDELAY
SETBP2.1
RET
DELAY:
MOVR6,#10
D1:
MOVR7,#250
DJNZR7,$
DJNZR6,D1
RET
DELAY2:
MOVR5,#20
D2:
MOVR6,#20
D3:
MOVR7,#250
DJNZR7,$
DJNZR6,D3
DJNZR5,D2
RET
TABLE:
DB3FH,06H,5BH,4FH,66H
DB6DH,7DH,07H,7FH,6FH
END
实验结果
1正常情况
数码管显示的数字在77—153范围内,且报警等都不亮,蜂鸣器不发出声音,结果如图4.1.
图4.1正常情况
2低于温度下限
数码管显示温数字低于77,P3.1为低电平,故在这路上的LED灯亮,蜂鸣器发出声音,结果如图4.2。
.
图4.2低于下限
3高于温度上限
数码管显示数字高于153,P3.0为低电平,故在这路上的LED灯亮,蜂鸣器发出声音,结果如图4.3。
.
图4.3高于上限
六,结论与心得
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
我在设计的过程中遇到了许多问题,同时也发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说不懂一些元器件的使用方法,对汇编语言掌握得不透彻。
还有,这次的设计让我明白了求人不如求己,虽然我们要讲究合作,但更重要的是自己,只有自己懂,自己做,才不会在关键时刻掉链子。
别人终究是一个陪衬,路总是要自己走,属于自己的任务就要自己搞。
所以,我们必须要时刻强大自己,别人终究是别人。
这个过程虽然不是很平坦,肯定会遇到各种各样的问题,但一旦征服了它那它就是你的东西了,当这样的厚积达到一定程度那你就能享受到薄发那刻的辉煌。
七,参考文献
[1]孙涵芳.MCS-51/96系列单片机原理及应用(修订版).北京航空航天大学出版社.1994
[2]李朝青.单片机原理及接口技术(第3版).北京航空航天大学出版社.2005
[3]周润景、袁伟亭、景晓松.Proteus在MCS-51&ARM7系统中的应用百例.电子工业出版社.2006
[4]阎石.数字电子技术基础(第四版).高等教育出版社.2004