📄 fan0327.asm
字号:
#include ht48r30a-1.inc
data .section 'data'
IR_INPUT EQU PA7
SHOW_NUM DB ?
SUBBAS DB ?
PIC_NUMBER DB ?
IR_CON DB ?
DEL_MID DB ?
DEL_SUB DB ?
DEL_COU1 DB ?
DEL_COU2 DB ?
IMAGE_ADD DB ?
IR_FLAG DB ?
led_col db ?
data db ?
PIC_SEL db ?
code .section at 0 'code'
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
org 000h
jmp start
;--------------------------------
;| INTC |
;--------------------------------
;| 7 6 5 4 3 2 1 0 |
;| - - TF EIF - ETI EEI EMI|
;--------------------------------
;**************************************
;-----------------------------------
;| TMRC |
;-----------------------------------
;| 7 6 5 4 3 2 1 0 |
;|TM1 TM0 - TON TE PSC2 PSC1 PSC0|
;-----------------------------------
org 004h
reti
org 008h
reti
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
org 020h
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
start:
CLR PAC ;PA,PB,PG为输出模式
CLR PBC
CLR PGC
SET PCC ;PC为输入模式
SET PA ;所有LED全熄灭
SET PB
SET PG
SET PAC.7 ;PAC.7为输入模式,以使PA7检测“0”位
CLR IR_FLAG ;IR_FLAG 为 0 表示还没检测到 IR , IR 还起作用
MOV A,048H ;单个LED初始延迟时间 72
MOV DEL_SUB,A
MOV A,01H
MOV PIC_NUMBER,A
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;IMAGE1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,0AFH ;设定每个图片显示时间 175
MOV SHOW_NUM,A
MOV A,DEL_SUB
MOV DEL_MID,A
SHOW_PIC1:
MOV A,0B4H ;180个数据
MOV LED_COL,A
SHOW1:
MOV A,DATA1
MOV TBLP,A
SZ IR_FLAG ;如果 IR_FLAG 为 0 检测 IR
JMP PIC1_LOOP ;为 1 跳过
CALL IR_DETECT ;找“0”位,并将 IR_FLAG 置为 1;
PIC1_LOOP:
CALL IMAGE1
CALL SHOW_LED_H
DEC led_col
inc tblp
CALL IMAGE1
CALL SHOW_LED_L
DEC led_col
inc tblp
CALL DELAY
SNZ IR_INPUT ;IR 为 1 时跳转
JMP IR_DEC0 ;
JMP IR_DEC1
IR_DEC0: ;IR 为 0
SZ IR_FLAG ;如果 IR_FLAG 为 0 跳转
JMP IR_DEC2 ;IR_FLAG 为 1,且 IR 为 0 ,不执行
CALL START_ZERO ;如IR_FLAG 为 0,重开始
IR_DEC1:
CLR IR_FLAG ;IR_FLAG 为 1,且 IR 为 1 ,将IR_FLAG 置 0
IR_DEC2:
SZ led_col
jmp PIC1_LOOP
SZ IR_INPUT
JMP IR_1
JMP IR_0
IR_1:
INC DEL_SUB
MOV A,DEL_SUB
MOV DEL_MID,A
IR_0:
SDZ SHOW_NUM
JMP SHOW_PIC1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;IMAGE2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,0AFH ;设定每个图片显示时间
MOV SHOW_NUM,A
SHOW_PIC2:
MOV A,0B4H
MOV LED_COL,A
MOV A,DATA2
MOV TBLP,A
CALL IR_DETECT
PIC2_LOOP:
CALL IMAGE2
CALL SHOW_LED_H
inc tblp
DEC led_col
CALL IMAGE2
CALL SHOW_LED_L
inc tblp
DEC led_col
CALL DELAY
SNZ IR_INPUT
JMP PIC2_OVER
SZ LED_COL
jmp PIC2_LOOP
PIC2_OVER:
SET PA
SET PB
SET PG
SDZ SHOW_NUM
JMP SHOW_PIC2
MOV A,0AFH ;设定每个图片显示时间
MOV SHOW_NUM,A
JMP SHOW_PIC1
START_ZERO:
SET PA
SET PB
SET PG
SZ led_col
DEC DEL_SUB
MOV A,DEL_SUB
MOV DEL_MID,A
CLR LED_COL
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
IR_DETECT:
SZ IR_INPUT
JMP IR_DETECT
SET IR_FLAG ;IR 检测到后,将 IR_FLAG 置 1,在 IR 变为 1 前不起作用
;IR_WAIR:
;SNZ IR_INPUT
;JMP IR_WAIR
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;DELAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DELAY:
MOV A,001H
MOV DEL_COU1,A
DEL_LOOP:
MOV A,DEL_MID
MOV DEL_COU2,A
DEL_LOOP1:
SDZ DEL_COU2
JMP DEL_LOOP1
SDZ DEL_COU1
JMP DEL_LOOP
SET PA
SET PB
SET PG
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;SHOW_LED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SHOW_LED_H:
CLR SUBBAS ;从DATA AREA中取图形数据
MOV SUBBAS,A
CPL SUBBAS
SNZ SUBBAS.7
CLR PG0
SNZ SUBBAS.6
CLR PA6
SNZ SUBBAS.5
CLR PA5
SNZ SUBBAS.4
CLR PA4
SNZ SUBBAS.3
CLR PB7
SNZ SUBBAS.2
CLR PB6
SNZ SUBBAS.1
CLR PB5
SNZ SUBBAS.0
CLR PB4
RET
;--------------------------------------------
SHOW_LED_L:
CLR SUBBAS ;从DATA AREA中取图形数据
MOV SUBBAS,A
CPL SUBBAS
SNZ SUBBAS.7
CLR PA3
SNZ SUBBAS.6
CLR PA2
SNZ SUBBAS.5
CLR PA1
SNZ SUBBAS.4
CLR PA0
SNZ SUBBAS.3
CLR PB3
SNZ SUBBAS.2
CLR PB2
SNZ SUBBAS.1
CLR PB1
SNZ SUBBAS.0
CLR PB0
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;----data area----;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ORG 0100H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DATA1:
; 0
ret a,11111111B; 1
ret a,11111110B; 2
ret a,11111111B; 3
ret a,11111110B; 4
ret a,11111111B; 5
ret a,11111110B; 6
ret a,01100000B; 7
ret a,11111110B; 8
ret a,00000000B; 9
ret a,11100110B; 10
ret a,00000000B; 11
ret a,11000010B; 12
ret a,00000000B; 13
ret a,11000010B; 14
ret a,00000000B; 15
ret a,11000010B; 16
ret a,00000001B; 17
ret a,10000010B; 18
ret a,00000001B; 19
ret a,10000010B; 20
ret a,00000001B; 21
ret a,10000010B; 22
ret a,00000001B; 23
ret a,10000010B; 24
ret a,00000011B; 25
ret a,00000010B; 26
ret a,00000011B; 27
ret a,00000010B; 28
ret a,00000011B; 29
ret a,00000010B; 30
ret a,00000011B; 31
ret a,00000010B; 32
ret a,00000011B; 33
ret a,00000010B; 34
ret a,00000011B; 35
ret a,00000010B; 36
ret a,00000011B; 37
ret a,00000010B; 38
ret a,00000011B; 39
ret a,00000010B; 40
ret a,00000111B; 41
ret a,00000010B; 42
ret a,00000111B; 43
ret a,00000010B; 44
ret a,00000111B; 45
ret a,00000010B; 46
ret a,00001110B; 47
ret a,00000010B; 48
ret a,00000111B; 49
ret a,00000010B; 50
ret a,00000111B; 51
ret a,00000010B; 52
ret a,00000111B; 53
ret a,00000010B; 54
ret a,00000011B; 55
ret a,00000010B; 56
ret a,00000011B; 57
ret a,00000010B; 58
ret a,00000011B; 59
ret a,00000010B; 60
ret a,00000011B; 61
ret a,00000010B; 62
ret a,00000011B; 63
ret a,00000010B; 64
ret a,00000011B; 65
ret a,00000010B; 66
ret a,00110011B; 67
ret a,10000110B; 68
ret a,01111111B; 69
ret a,11111110B; 70
ret a,00111111B; 71
ret a,11111110B; 72
ret a,00111111B; 73
ret a,11111110B; 74
ret a,01111111B; 75
ret a,11111110B; 76
ret a,00110011B; 77
ret a,11111110B; 78
ret a,00000011B; 79
ret a,11111110B; 80
ret a,00000001B; 81
ret a,00000110B; 82
ret a,00000001B; 83
ret a,10000110B; 84
ret a,00000011B; 85
ret a,10000110B; 86
ret a,00000011B; 87
ret a,00000110B; 88
ret a,00000111B; 89
ret a,00000110B; 90
ret a,00001111B; 91
ret a,00000110B; 92
ret a,00001111B; 93
ret a,00000110B; 94
ret a,00000111B; 95
ret a,00000110B; 96
ret a,00000011B; 97
ret a,00000110B; 98
ret a,00000011B; 99
ret a,10000110B; 100
ret a,00000001B; 101
ret a,10000110B; 102
ret a,00000001B; 103
ret a,00000110B; 104
ret a,00000011B; 105
ret a,11111100B; 106
ret a,00110011B; 107
ret a,11111110B; 108
ret a,01111011B; 109
ret a,11111100B; 110
ret a,00111111B; 111
ret a,11111110B; 112
ret a,00111111B; 113
ret a,11111110B; 114
ret a,01111111B; 115
ret a,11111100B; 116
ret a,00110011B; 117
ret a,10000100B; 118
ret a,00000011B; 119
ret a,00000010B; 120
ret a,00000011B; 121
ret a,00000010B; 122
ret a,00000011B; 123
ret a,00000000B; 124
ret a,00000011B; 125
ret a,00000010B; 126
ret a,00000011B; 127
ret a,00000010B; 128
ret a,00000011B; 129
ret a,00000010B; 130
ret a,00000111B; 131
ret a,00000000B; 132
ret a,00000111B; 133
ret a,00000010B; 134
ret a,00000110B; 135
ret a,00000000B; 136
ret a,00000000B; 137
ret a,00110010B; 138
ret a,00001111B; 139
ret a,11010010B; 140
ret a,00000111B; 141
ret a,11110000B; 142
ret a,00000111B; 143
ret a,11110000B; 144
ret a,00000011B; 145
ret a,11110010B; 146
ret a,00000011B; 147
ret a,01110010B; 148
ret a,00000011B; 149
ret a,00110010B; 150
ret a,00000011B; 151
ret a,00010010B; 152
ret a,00000011B; 153
ret a,00000000B; 154
ret a,00000011B; 155
ret a,00000010B; 156
ret a,00000011B; 157
ret a,00000010B; 158
ret a,00000011B; 159
ret a,00000000B; 160
ret a,00000001B; 161
ret a,10000010B; 162
ret a,00000001B; 163
ret a,10000000B; 164
ret a,00000001B; 165
ret a,10000010B; 166
ret a,00000001B; 167
ret a,10000000B; 168
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -