📄 code.asm
字号:
;***************************************************
;常数定义
;***************************************************
TIMEL EQU 0E0H ;20ms,定时器0时间常数
TIMEH EQU 0B1H
TEMPHEAD EQU 36H ;读入数据暂存首地址
DISPUW EQU 20H ;显示单位长32像素
;***************************************************
;工作内存定义
;***************************************************
RHZ DATA 26H ;DS18B20温度低8位寄存空间
TEMPH DATA 27H ;DS18B20温度高8位寄存空间
D1 DATA 28H ;左起第一位LED显示缓存空间
D2 DATA 29H ;左起第二位LED显示缓存空间
D3 DATA 30H ;左起第三位LED显示缓存空间
D4 DATA 31H ;左起第四位LED显示缓存空间
D5 DATA 32H ;FOR SIMULATION
D6 DATA 33H ;FOR SIMULATION
D7 DATA 34H ;FOR SIMULATION
D8 DATA 35H ;FOR SIMULATION
;***************************************************
;引脚定义
;***************************************************
TEMPDIN BIT P2.4 ;DS18B20数据引脚
HC595DS1 BIT P0.4 ;左起第一片74HC595数据引脚
HC595DS2 BIT P0.6 ;左起第二片74HC595数据引脚
HC595DS3 BIT P0.0 ;左起第三片74HC595数据引脚
HC595DS4 BIT P0.2 ;左起第四片74HC595数据引脚
HC595ST1 BIT P0.5 ;左起第一片74HC595数据存储引脚
HC595ST2 BIT P0.7 ;左起第二片74HC595数据存储引脚
HC595ST3 BIT P0.1 ;左起第三片74HC595数据存储引脚
HC595ST4 BIT P0.3 ;左起第四片74HC595数据存储引脚
HC595SH BIT P2.2 ;全部74HC595数据移位引脚
RHC595DS1 BIT P1.0 ;左起第一片74HC595数据引脚
RHC595DS2 BIT P1.1 ;左起第二片74HC595数据引脚
RHC595DS3 BIT P1.2 ;左起第三片74HC595数据引脚
RHC595DS4 BIT P1.3 ;左起第四片74HC595数据引脚
RHC595ST1 BIT P1.4 ;左起第一片74HC595数据存储引脚
RHC595ST2 BIT P1.5 ;左起第二片74HC595数据存储引脚
RHC595ST3 BIT P1.6 ;左起第三片74HC595数据存储引脚
RHC595ST4 BIT P1.7 ;左起第四片74HC595数据存储引脚
BEEP BIT P2.3 ;蜂鸣器
;***************************************************
;中断向量区
;***************************************************
ORG 0000H
LJMP START
ORG 0003H
LJMP HALLDETECT ;HALL子程序
;***************************************************
;系统初始化
;***************************************************
ORG 100H
START: MOV SP,#60H ;栈顶地址
SETB EX0 ;开外部中断0
SETB EA ;开中断
AJMP MAIN
;***************************************************
;主程序
;***************************************************
MAIN:
MOV R7, #11
MAIN1: LCALL DISPLAY ;调用显示子程序
DJNZ R7, MAIN1
AJMP MAIN
;***************************************************
;显示程序
;***************************************************
DISPLAY:
MOV R2,#0
DISPLAY1: MOV D5, #0FFH ;For simulation
MOV D6, #0FFH ;For simulation
MOV D7, #0FFH ;For simulation
MOV D8, #0FFH ;For simulation
MOV A, R7
CLR C
RLC A
MOV DPTR, #JPTAB
JMP @A+DPTR
JPTAB: AJMP DISP0
AJMP DISP1
AJMP DISP2
AJMP DISP3
AJMP DISP4
AJMP DISP5
AJMP DISP6
AJMP DISP7
AJMP DISP8
AJMP DISP9
AJMP DISP0
AJMP DISPT
DISP0: MOV A, R2
MOV DPTR,#DISP0TAB1
MOVC A,@A+DPTR
MOV D1, A
MOV A, R2
MOV DPTR,#DISP0TAB2
MOVC A,@A+DPTR
MOV D2, A
MOV A, R2
MOV DPTR,#DISP0TAB3
MOVC A,@A+DPTR
MOV D3, A
MOV A, R2
MOV DPTR,#DISP0TAB4
MOVC A,@A+DPTR
MOV D4, A
LJMP SHOW
DISP0TAB1: DB 000H,000H,000H,000H,000H,003H,007H,001H
DB 03FH,03FH,07FH,07FH,0FFH,0E0H,0C0H,000H
DB 000H,0C0H,0FFH,0FFH,07FH,07FH,03FH,01FH
DB 00FH,003H,000H,000H,000H,000H,000H,000H
DISP0TAB2: DB 000H,000H,000H,01FH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,000H,000H,000H
DB 000H,000H,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,01FH,000H,000H,000H,000H
DISP0TAB3: DB 000H,000H,000H,0F8H,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,000H,000H,000H
DB 000H,000H,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0F8H,000H,000H,000H,000H
DISP0TAB4: DB 000H,000H,000H,000H,000H,0C0H,0E0H,0F8H
DB 0FCH,0FCH,0FEH,0FEH,0FFH,007H,003H,000H
DB 000H,007H,0FFH,0FFH,0FEH,0FEH,0FCH,0F8H
DB 0F0H,0C0H,000H,000H,000H,000H,000H,000H
DISP1: MOV A, R2
MOV DPTR,#DISP1TAB1
MOVC A,@A+DPTR
MOV D1, A
MOV A, R2
MOV DPTR,#DISP1TAB2
MOVC A,@A+DPTR
MOV D2, A
MOV A, R2
MOV DPTR,#DISP1TAB3
MOVC A,@A+DPTR
MOV D3, A
MOV A, R2
MOV DPTR,#DISP1TAB4
MOVC A,@A+DPTR
MOV D4, A
LJMP SHOW
DISP1TAB1: DB 000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,060H,060H,0E0H,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H
DISP1TAB2: DB 000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H
DISP1TAB3: DB 000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H
DISP1TAB4: DB 000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,003H,007H,007H,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,007H,007H,003H
DB 000H,000H,000H,000H,000H,000H,000H,000H
DISP2: MOV A, R2
MOV DPTR,#DISP2TAB1
MOVC A,@A+DPTR
MOV D1, A
MOV A, R2
MOV DPTR,#DISP2TAB2
MOVC A,@A+DPTR
MOV D2, A
MOV A, R2
MOV DPTR,#DISP2TAB3
MOVC A,@A+DPTR
MOV D3, A
MOV A, R2
MOV DPTR,#DISP2TAB4
MOVC A,@A+DPTR
MOV D4, A
LJMP SHOW
DISP2TAB1: DB 000H,000H,000H,000H,000H,000H,00FH,01FH
DB 03FH,07FH,07FH,0FFH,0FFH,0CFH,007H,000H
DB 0C0H,0F0H,0FFH,0FFH,07FH,07FH,07FH,03FH
DB 01FH,00FH,003H,000H,000H,000H,000H,000H
DISP2TAB2: DB 000H,000H,000H,000H,000H,000H,080H,0C0H
DB 0E0H,0E0H,0E0H,0E0H,0E0H,0C0H,080H,000H
DB 001H,007H,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FEH,0FCH,0F0H,000H,000H,000H,000H,000H
DISP2TAB3: DB 000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,004H,00CH,00DH,01DH,039H,079H,0F1H
DB 0F1H,0E1H,0E1H,0C0H,0C0H,080H,080H,000H
DB 000H,000H,001H,007H,007H,000H,000H,000H
DISP2TAB4: DB 000H,000H,000H,000H,000H,000H,00FH,03FH
DB 07EH,0FCH,0FCH,0FCH,0FCH,0FEH,0FEH,0FEH
DB 0FEH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FEH
DB 0FEH,0FCH,0F8H,0F0H,080H,000H,000H,000H
DISP3: MOV A, R2
MOV DPTR,#DISP3TAB1
MOVC A,@A+DPTR
MOV D1, A
MOV A, R2
MOV DPTR,#DISP3TAB2
MOVC A,@A+DPTR
MOV D2, A
MOV A, R2
MOV DPTR,#DISP3TAB3
MOVC A,@A+DPTR
MOV D3, A
MOV A, R2
MOV DPTR,#DISP3TAB4
MOVC A,@A+DPTR
MOV D4, A
LJMP SHOW
DISP3TAB1: DB 000H,000H,000H,000H,000H,000H,00FH,01FH
DB 03FH,07FH,07FH,0FFH,0EFH,0C7H,000H,0C0H
DB 0C0H,0E0H,0FFH,0FFH,07FH,07FH,07FH,03FH
DB 03FH,01FH,00FH,007H,000H,000H,000H,000H
DISP3TAB2: DB 000H,000H,000H,000H,000H,000H,080H,0C0H
DB 0E0H,0E0H,0E0H,0E0H,0C0H,080H,003H,003H
DB 003H,007H,0FFH,0FFH,0FFH,0FEH,0FEH,0FCH
DB 0FCH,0F8H,0F0H,0E0H,000H,000H,000H,000H
DISP3TAB3: DB 000H,000H,000H,000H,000H,001H,007H,00FH
DB 00FH,00FH,00FH,00FH,007H,003H,000H,000H
DB 080H,080H,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 07FH,07FH,01FH,00FH,000H,000H,000H,000H
DISP3TAB4: DB 000H,000H,000H,000H,000H,0E0H,0F8H,0FCH
DB 0FEH,0FEH,0FFH,0F7H,0F3H,0C3H,000H,003H
DB 003H,007H,0FFH,0FFH,0FFH,0FEH,0FEH,0FCH
DB 0FCH,0F8H,0F0H,0C0H,000H,000H,000H,000H
DISP4: MOV A, R2
MOV DPTR,#DISP4TAB1
MOVC A,@A+DPTR
MOV D1, A
MOV A, R2
MOV DPTR,#DISP4TAB2
MOVC A,@A+DPTR
MOV D2, A
MOV A, R2
MOV DPTR,#DISP4TAB3
MOVC A,@A+DPTR
MOV D3, A
MOV A, R2
MOV DPTR,#DISP4TAB4
MOVC A,@A+DPTR
MOV D4, A
LJMP SHOW
DISP4TAB1: DB 000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,007H
DB 00FH,03FH,07FH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 000H,000H,000H,000H,000H,000H,000H,000H
DISP4TAB2: DB 000H,000H,000H,000H,000H,000H,000H,000H
DB 001H,007H,00FH,03CH,078H,000H,000H,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 000H,000H,000H,000H,000H,000H,000H,000H
DISP4TAB3: DB 000H,000H,000H,003H,00FH,01FH,07DH,0F1H
DB 0E1H,081H,001H,001H,001H,000H,000H,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 001H,001H,001H,001H,000H,000H,000H,000H
DISP4TAB4: DB 000H,000H,000H,080H,080H,080H,080H,080H
DB 080H,080H,080H,080H,083H,007H,007H,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 087H,087H,083H,080H,000H,000H,000H,000H
DISP5: MOV A, R2
MOV DPTR,#DISP5TAB1
MOVC A,@A+DPTR
MOV D1, A
MOV A, R2
MOV DPTR,#DISP5TAB2
MOVC A,@A+DPTR
MOV D2, A
MOV A, R2
MOV DPTR,#DISP5TAB3
MOVC A,@A+DPTR
MOV D3, A
MOV A, R2
MOV DPTR,#DISP5TAB4
MOVC A,@A+DPTR
MOV D4, A
LJMP SHOW
DISP5TAB1: DB 000H,000H,000H,000H,000H,000H,000H,000H
DB 0FEH,0FFH,0FFH,0FFH,0FFH,0FFH,07FH,07FH
DB 07FH,07FH,07FH,07EH,07EH,07EH,07CH,078H
DB 070H,0E0H,080H,000H,000H,000H,000H,000H
DISP5TAB2: DB 000H,000H,000H,000H,000H,000H,000H,07FH
DB 07FH,043H,007H,00EH,00EH,01EH,000H,000H
DB 01EH,01FH,01FH,01FH,00FH,00FH,00EH,007H
DB 003H,001H,000H,000H,000H,000H,000H,000H
DISP5TAB3: DB 000H,000H,000H,000H,000H,001H,007H,087H
DB 08FH,08FH,00FH,00FH,007H,003H,000H,000H
DB 000H,000H,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,03FH,000H,000H,000H,000H
DISP5TAB4: DB 000H,000H,000H,000H,000H,0E0H,0F8H,0FCH
DB 0FEH,0FEH,0FFH,0FFH,0F7H,0C3H,000H,000H
DB 007H,00FH,0FFH,0FFH,0FEH,0FEH,0FEH,0FCH
DB 0F8H,0F0H,0E0H,080H,000H,000H,000H,000H
DISP6: MOV A, R2
MOV DPTR,#DISP6TAB1
MOVC A,@A+DPTR
MOV D1, A
MOV A, R2
MOV DPTR,#DISP6TAB2
MOVC A,@A+DPTR
MOV D2, A
MOV A, R2
MOV DPTR,#DISP6TAB3
MOVC A,@A+DPTR
MOV D3, A
MOV A, R2
MOV DPTR,#DISP6TAB4
MOVC A,@A+DPTR
MOV D4, A
LJMP SHOW
DISP6TAB1: DB 000H,000H,000H,000H,000H,000H,003H,00FH
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -