📄 wdjsq.asm
字号:
MAIN: MOV A,#19H
LP: CLR P2.2
ACALL DELAY
SETB P2.2
DISP:
CLR P3.1
CLR P3.2
MOV B,#10 ;10进制/10=10进制
DIV AB ;A除以B 商在A 余数在B.
MOV R3,A ;十位在A
MOV R4,B ;个位在B
MOV DPTR,#DIGITTAB ;指定查表启始地址
DLOOP: MOV A,R3 ;取十位数
MOVC A,@A+DPTR ;查十位数的7段代码
MOV P1,A ;送出十位的7段代码
SETB P3.2 ;开十位显示
ACALL DELAY
MOV A,R4 ;取个位数
MOVC A,@A+DPTR ;查个位数的7段代码
CLR P3.2 ;关闭十位显示
MOV P1,A ;送出个位的7段代码
SETB P3.1 ;开个位显示
ACALL DELAY
JNB P2.1,DLOOP ;检测是否转换结束
CLR P2.0
MOV A,P0 ;读取转换结果
SETB P2.0
CLR C
SUBB A ,#2CH ;数值调整,此值是针对本例题,非通用
MOV DPTR,#TEMPTAB ;查表获得温度值
MOVC A,@A+DPTR
AJMP LP
DELAY: MOV R6,#0FH
DELAY1: MOV R7,#020H
LOOP: NOP
NOP
NOP
DJNZ R7,LOOP
DJNZ R6,DELAY1
RET
;=======================================
DIGITTAB: ;实验板上的7段数码管0~9数字的共阳显示代码
DB 0C0H ;0
DB 0F9H ;1
DB 0A4H ;2
DB 0B0H ;3
DB 099H ;4
DB 092H ;5
DB 082H ;6
DB 0F8H ;7
DB 080H ;8
DB 090H ;9
DB 08EH ;F 错误显示
;===================
TEMPTAB: ;温度转换表
DB 90,89,88,87,100,86,85,84,83,100,82,81,100,80
DB 79,100,78,77,100,76,75,100,74,100,73,100,72,71
DB 100,70,100,69,100,68,100,67,100,66,100,65,100,64
DB 100,63,100,62,100,61,100,60,100,100,59,100,58,100
DB 57,100,100,56,100,55,100,54,100,100,53,100,52,100
DB 100,51,100,50,100,100,49,100,48,100,100,47,100,46
DB 100,100,45,100,100,44,100,43,100,100,42,100,100,41
DB 100,40,100,100,39,100,38,100,100,37,100,100,36,100
DB 35,100,100,34,100,100,33,100,32,100,100,31,100,30
DB 100,100,29,100,28,100,100,27,100,26,100,100,25,100
DB 24,100,100,23,100,22,100,21,100,20,100,100,19,100
DB 18,100,17,100,16,100,15,100,14,100,13,100,12,100
DB 11,100,10,9, 100,8, 100,7, 6, 100,5, 4, 100,3
DB 2, 1, 100,0
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -