1单片机温度监测器.docx
- 文档编号:26020849
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:15
- 大小:107.06KB
1单片机温度监测器.docx
《1单片机温度监测器.docx》由会员分享,可在线阅读,更多相关《1单片机温度监测器.docx(15页珍藏版)》请在冰豆网上搜索。
1单片机温度监测器
1、温度监测器框图:
图10
注释:
主程序要完成的工作是初始化,打开中断,如果A/D7109完成模拟量与数字量的转换,则向CPU提出申请,CPU对其进行均值滤波、标度转换、BCD转换、送LED显示。
(5)、中断子程序框图:
图11
注释:
中断子程序是A/D7109从完成模拟量向12位数字量转换的一个子程序,当转换结束时自动向CPU发出中断申请。
其中A/D7109又分为高四位与低八位分时转换,因为与A/D7109连接的CPU的P1口是八位的。
(6)、标度转换曲线图:
图12
图13
注释:
由于温度监测器的功能是实现温度范围为-XXX到+XXXX采样、转换、显示,而A/D7109模数转换完的是十六进制数,我们日常习惯的温度读取是十进制,所以要进行标度变换。
通过分析得到上图12、图13,由图我们可以确立十六进制转换到十进制的如下关系式:
式1
式2
其中式1是模拟量0到5伏与十进制-XXX到+XXXX的关系式,式2是A/D7109转换完的十六进制数与要显示的十进制数的关系式,为了编程方便我们的到关系式3,如下:
式3
这个关系式就是下面要用到的标度转换关系式。
四、程序清单:
1、喇叭自检程序清单:
BEEP:
MOVR0,#0A0H;R0中放循环次数,用于确定每种音频持续时间
LOOP1:
SETBP2.3;关喇叭
ACALLDELAY1;调用延时1
CLRP2.3;开喇叭
ACALLDELAY1
DJNZR0,LOOP1;R0减1不为0跳转到LOOP1
LOOP2:
SETBP2.3
ACALLDELAY2
CLRP2.3
ACALLDELAY2
DJNZR0,LOOP2
LOOP3:
SETBP2.3
ACALLDELAY3
CLRP2.3
ACALLDELAY3
DJNZR0,LOOP3
SETBP2.3
ACALLDELAY1
SJMPBEEP
DELAY1:
MOVR6,#02H;延时子程序1
N1:
MOVR7,#0EDH
N2:
DJNZR7,N2
DJNZR6,N1
RET
DELAY2:
MOVR4,#02H
N3:
MOVR5,#099H
N4:
DJNZR5,N4
DJNZR4,N3
RET
DELAY3:
MOVR3,#02H
N5:
MOVR4,#0BBH
N6:
DJNZR4,N6
DJNZR3,N5
RET
2、键盘自检程序清单:
CAIJIAN:
MOVP0,#0;灭显示
LCALLSEL8;打开三态门
MOVP1,#0FFH;P1口作为输入口置1
MOVA,P1;采集键值
ANLA,#0FH;处理低四位
CJNEA,#0FH,YS;判断是否有键按下,有转到YS
SJMPCAIJIAN;没有转到CAIJIAN
YS:
LCALLDELAY10;调用延时10ms子程序
MOVP1,#0FFH
MOVA,P1
ANLA,#0FH
CJNEA,#0FH,K
SJMPCAIJIAN
K:
LCALLSEL7;关闭三态门
CJNEA,#0FH,KK1
SJMPCAIJIAN
KK1:
SETBP2.3;关喇叭
CJNEA,#0DH,KK2;判断是否是K2按下,不是转到KK2
SJMPK2;是K2按下跳转到K2子程序
KK2:
JCKK3;判断A中值是否小于0DH,小于转到KK3
SJMPK1;A中值大于0DH转到K1
KK3:
CJNEA,#07H,K3;判断是否是K4按下,不是转到K3
SJMPK4;转到K4
K1:
LCALLD1;调用显示和蜂鸣器响子程序
LCALLXHYAN;调用显示与响延时子程序
SJMPCAIJIAN
K2:
LCALLD2
LCALLXHYAN
SJMPCAIJIAN
K3:
LCALLD3
LCALLXHYAN
SJMPCAIJIAN
K4:
LCALLD4
LCALLXHYAN
LJMPCAIJIAN
BEEP:
CLRP2.3;蜂鸣器子程序
LCALLDELAY
SETBP2.3
LCALLDELAY
RET
XHYAN:
MOVR0,#01H;显示与蜂鸣器响延时
LOOP1:
LCALLDELAY
DJNZR0,LOOP1
RET
DELAY:
MOVR6,#0FFH;延时子程序
LOOP2:
MOVR7,#0FFH
LOOP3:
DJNZR7,LOOP3
DJNZR6,LOOP2
RET
DELAY10:
MOVR6,#14H;10ms延时子程序
LOOP6:
MOVR7,#0F8H
LOOP7:
DJNZR7,LOOP7
DJNZR6,LOOP6
RET
SEL2:
SETBP2.7;选择LED2
CLRP2.6
CLRP2.5
RET
SEL3:
CLRP2.7
SETBP2.6
CLRP2.5
RET
SEL4:
SETBP2.7
SETBP2.6
CLRP2.5
RET
SEL5:
CLRP2.7
CLRP2.6
SETBP2.5
RET
SEL7:
CLRP2.7
SETBP2.6
SETBP2.5
RET
SEL8:
SETBP2.7
SETBP2.6
SETBP2.5
RET
D1:
LCALLSEL2;显示与
MOVP0,#0CH
LCALLBEEP
RET
D2:
LCALLSEL3
MOVP0,#0B6H
LCALLBEEP
LCALLBEEP
RET
D3:
LCALLSEL4
MOVP0,#9EH
LCALLBEEP
LCALLBEEP
LCALLBEEP
RET
D4:
LCALLSEL5
MOVP0,#0CCH
LCALLBEEP
LCALLBEEP
LCALLBEEP
LCALLBEEP
RET
(3)、LED自检程序清单:
DT1:
LCALLSEL1;打开第一个LED显示器分别显示h、b、c、g字段
MOVP0,#01H
LCALLDELAY
MOVP0,#04H
LCALLDELAY
MOVP0,#08H
LCALLDELAY
MOVP0,#80H
LCALLDELAY
DT2:
LCALLSEL2;打开第二个LED显示器
LCALLLED;调用显示LED各段码子程序
DT3:
LCALLSEL3
LCALLLED
DT4:
LCALLSEL4
LCALLLED
DT5:
LCALLSEL5
LCALLLED
RET
LED:
MOVR1,#0;显示LED各段码子程序
MOVR0,#0
LED1:
MOVA,R0
MOVDPTR,#TAB;将TAB地址送给DPTR
MOVCA,@A+DPTR;将A+DPTR即TAB中的内容送到A中
MOVP0,A;将各段段码送到P0口
INCR0
INCR1
LCALLDELAY
CJNER1,#8,LED1;判断各段段码是否都显示完
RET
TAB:
DB01H,02H,04H,08H,10H,20H,40H,80H;TAB存放要显示的各段段码
DELAY:
MOVR6,#0FFH
LOOP2:
MOVR7,#0FFH
LOOP1:
NOP
DJNZR7,LOOP1
DJNZR6,LOOP2
RET
SEL1:
CLRP2.5
CLRP2.6
CLRP2.7
RET
SEL2:
CLRP2.5
CLRP2.6
SETBP2.7
RET
SEL3:
CLRP2.5
SETBP2.6
CLRP2.7
RET
SEL4:
CLRP2.5
SETBP2.6
SETBP2.7
RET
SEL5:
SETBP2.5
CLRP2.6
CLRP2.7
RET
(4)、大任务程序清单:
1采样、显示
ORG00H;程序入口地址
AJMPMAIN
ORG03H;外部中断0入口地址
AJMPINT0
MAIN:
MOVSP,#60H;堆栈从60H开辟栈区
AD_BUFEQU0AH;存放采集数据
AD_NUMEQU27H;存放数模转换次数
MOVAD_NUM,#0H
LED2EQU31H;分配数据缓冲区
LED3EQU32H
LED4EQU33H
LED5EQU34H
SETBEA;打开总中断
SETBEX0;打开外部中断0
XWQ:
LCALLSTART;调用送转换完数据到各个LED子程序
;MOVR7,#0FFH
AA:
LCALLDISPLAY;调用显示子程序
;DJNZR7,AA
MOVR0,#AD_BUF;将转换完的数据地址存放到R0中
SETBEA
SJMPXWQ
INT0:
PUSHA;A/D7109数模转换子程序
PUSHPSW;保护现场
CLRRS1;选择“1”区
SETBRS0
CLREA
MOVR0,#AD_BUF
AD1:
CLRP2.0
CLRP2.1;高位转换
MOVA,P1
SETBP2.1
MOVC,ACC.4;判断是否有溢出
JCAD3
ANLA,#3FH
MOV@R0,A
INCR0
CLRP2.2;转换低位
MOVA,P1
SETBP2.2
SETBP2.0
MOV@R0,A
INCR0
INCAD_NUM
CJNEA,#4,AD2
AD3:
MOVAD_NUM,#0
MOVR0,#AD_BUF
AD2:
SETBEA
POPPSW
POPA
RETI
START:
MOVDPTR,#TAB;将转换完的数据送到各个LED子程序
MOVA,0AH
ANLA,#0FH
MOVCA,@A+DPTR
MOVLED2,A
MOVA,0BH
ANLA,#0FH
MOVCA,@A+DPTR
MOVLED3,A
MOVA,0BH
ANLA,#0F0H
SWAPA
MOVCA,@A+DPTR
MOVLED4,A
RET
DISPLAY:
MOVP0,LED2;显示子程序
LCALLSEL2
LCALLD5MS
MOVP0,LED3
LCALLSEL3
LCALLD5MS
MOVP0,LED4
LCALLSEL4
LCALLD5MS
RET
TAB:
DB7EH,0CH,0B6H,9EH,0CCH,0DAH,0FAH,0EH;16进制数段码表
DB0FEH,0DEH,0EEH,0FEH,72H,7EH,0E2H
D5MS:
MOVR6,#0BH;5ms延时子程序
LOOP1:
MOVR7,#0E8H
LOOP2:
DJNZR7,LOOP2
DJNZR6,LOOP1
RET
SEL2:
CLRP2.5
CLRP2.6
SETBP2.7
RET
SEL3:
CLRP2.5
SETBP2.6
CLRP2.7
RET
SEL4:
CLRP2.5
SETBP2.6
SETBP2.7
RET
六、参考资料
1、《单片机系统综合设计与实践》教材主编:
裴岩刘利民内蒙古大学出版社;
2、《单片机原理及接口技术》教材主编谈振辉张思东清华大学出版社。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 温度 监测器