精确温度显示的温控自动风扇系统正式版 - 图文(7)

2019-08-30 19:19

MOV A,TEMPHC SWAP A

ANL A,#0FH

MOV 73H,#0AH ;符号位不显示 MOV 72H,A ;十位数显示符号 DISPBCD2: RET

;***************************************************************

; 温度显示子程序

;***************************************************************

;显示数据在70H - 73H 单元内,用4位共阳数码管显示,P0口输出段码数据, ;P2 口作扫描控制,每个 LED 数码管亮 2MS 时间再逐位循环。

DISP1: MOV R1,#70H ;指向显示数据首址 MOV R5,#7FH ;扫描控制字初值 PLAY: MOV P0,#0FFH

MOV A,R5 ;扫描字放入A MOV P2,A

MOV A,@R1 ;取显示数据到A MOV DPTR,#TAB ;取段码表地址

MOVC A,@A+DPTR ;查显示数据对应段码 MOV P0,A ;段码放入P0口 MOV A,R5

JB ACC.6,LOOP5 ;小数点处理 CLR P0.7

LOOP5: LCALL DL_MS ;显示2MS

INC R1 ;指向下一个地址 MOV A,R5 ;放回 R5 内

JNB ACC.3,ENDOUT ;ACC.3=0时一次显示结束 RR A ;A 中数据循环左移 MOV R5,A ;放入 R5 中

AJMP PLAY ;跳回 PLAY 循环

ENDOUT: MOV P0,#0FFH ;一次显示结束,P0口复位 MOV P2,#0FFH ;P2口复位 RET

TAB:

DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,0BFH,0C7H,89H ; “0\“1\“2\“3\“4\“5\“6\“7\“8\“9\“灭\“-\“L”“H\

DL_MS: MOV R6,#0AH ;2MS延时程序,LED 显示程序用 DL1: MOV R7,#64H

31

DL2: DJNZ R7,DL2 DJNZ R6,DL1 RET

;****************************************************** ;单字节十六进制转 BCD

;****************************************************** HEX2BCD1: MOV B,#064H DIV AB MOV R7,A MOV A,#0AH XCH A,B

DIV AB SWAP A ORL A,B RET

;=============================================== ;报警值 TH、TL 数据转换

;=============================================== ALERT_TL:

MOV 79H,#0CH MOV 78H,#0BH MOV A,TEMP_TL MOV R0,#77H MOV B,#064H DIV AB

CJNE A,#01H,ALERT_TL1 MOV @R0,A

JMP ALERT_TL2

ALERT_TL1: MOV A,#0BH ;显示“-” MOV @R0,A ALERT_TL2: MOV A,#0AH XCH A,B DIV AB DEC R0 MOV @R0,A MOV 7DH,A DEC R0 MOV @R0,B MOV 7EH,B RET

;----------------------------------------------- ALERT_TH:

MOV 79H,#0DH

32

MOV 78H,#0BH MOV A,TEMP_TH MOV R0,#77H MOV B,#064H DIV AB

CJNE A,#01H,ALERT_TH1 MOV @R0,A

JMP ALERT_TH2

ALERT_TH1: MOV A,#0BH ;显示“-” MOV @R0,A ALERT_TH2: MOV A,#0AH XCH A,B DIV AB DEC R0 MOV @R0,A MOV 7DH,A DEC R0 MOV @R0,B MOV 7EH,B RET

;=============================================== ;动作温度设定值显示子程序

;=============================================== ALERT_PLAY:

MOV R1,#75H ;指向显示数据首址 MOV R5,#7FH ;扫描控制字初值 A_PLAY: MOV P0,#0FFH

MOV A,R5 ;扫描字放入A MOV P2,A

MOV A,@R1 ;取显示数据到A MOV DPTR,#ALERT_TAB ;取段码表地址

MOVC A,@A+DPTR ;查显示数据对应段码 MOV P0,A ;段码放入P0口 LCALL DL_MS1 ;显示2MS

INC R1 ;指向下一个地址 MOV A,R5

JNB ACC.3,ENDOUT1

RR A ;A 中数据循环左移 MOV R5,A ;放入 R5 中

AJMP A_PLAY ;跳回 PLAY 循环

ENDOUT1: MOV P0,#0FFH ;一次显示结束,P0口复位 MOV P2,#0FFH ;P2口复位 RET

33

ALERT_TAB:

DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,0BFH,0C7H,89H ;共阳段码表 “0\“1\“2\“3\“4\“5\“6\“7\“8\“9\“灭\“-\

DL_MS1: MOV R6,#0AH ;2MS延时程序,LED 显示程序用 ADL1: MOV R7,#64H ADL2: DJNZ R7,ADL2 DJNZ R6,ADL1 RET

;=============================================== ;蜂鸣器响一声子程序

;=============================================== BEEP_BL:

MOV R6,#100 BL2: CALL DEX1

CPL BEEP ;对 P3.7 取反 DJNZ R6,BL2 MOV R5,#10 CALL DELAY RET

DEX1: MOV R7,#180 DE2: NOP

DJNZ R7,DE2 RET

DELAY: ;(R5)*延时10MS MOV R6,#50 DEL1: MOV R7,#100 DJNZ R7,$ DJNZ R6,DEL1 DJNZ R5,DELAY RET

;================================================== END

34


精确温度显示的温控自动风扇系统正式版 - 图文(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:应用文写作试题及答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: