📄 jrled.lst
字号:
"File: JRLED.c Holtek Cross-Assembler Version 2.86 Page 1
; 7: const unsigned char table[12]={
7 0000 _table .SECTION INPAGE'CODE'
7 0000 l_table:
7 0000 0086 MOV [06h],A
7 0001 _table:
7 0001 09AC RET A,172
7 0002 09A3 RET A,163
7 0003 09F0 RET A,240
7 0004 090F RET A,15
7 0005 0953 RET A,83
7 0006 095C RET A,92
7 0007 0903 RET A,3
7 0008 090C RET A,12
7 0009 09A0 RET A,160
7 000A 0950 RET A,80
7 000B 0900 RET A,0
7 000C 09FE RET A,254
; 11: const unsigned char ScanTable[16]={
11 0000 _ScanTable .SECTION INPAGE'CODE'
11 0000 l_ScanTable:
11 0000 0086 MOV [06h],A
11 0001 _ScanTable:
11 0001 0980 RET A,128
11 0002 0940 RET A,64
11 0003 0920 RET A,32
11 0004 0910 RET A,16
11 0005 0908 RET A,8
11 0006 0904 RET A,4
11 0007 0902 RET A,2
11 0008 0901 RET A,1
11 0009 0901 RET A,1
11 000A 0902 RET A,2
11 000B 0904 RET A,4
11 000C 0908 RET A,8
11 000D 0910 RET A,16
11 000E 0920 RET A,32
11 000F 0940 RET A,64
11 0010 0980 RET A,128
; 20: void isr_4(){} // external ISR
20 0011 __pcc EQU [017H]
20 0011 __pc EQU [016H]
20 0011 __pbc EQU [015H]
20 0011 __pb EQU [014H]
20 0011 __pac EQU [013H]
20 0011 __pa EQU [012H]
20 0011 __tmrc EQU [0eH]
20 0011 __tmr EQU [0dH]
20 0011 __intc EQU [0bH]
20 0011 __status EQU [0aH]
20 0011 __wdts EQU [09H]
20 0011 __tblh EQU [08H]
20 0011 __tblp EQU [07H]
20 0011 __pcl EQU [06H]
20 0011 __acc EQU [05H]
20 0011 __mp EQU [01H]
"File: JRLED.c Holtek Cross-Assembler Version 2.86 Page 2
20 0011 __iar EQU [00H]
20 0000 @@isr_4 .SECTION AT 04H 'CODE'
20 0000 2800 R JMP _isr_4
20 0000 @isr_4 .SECTION 'CODE'
20 0000 _isr_4 PROC
20 0000 0080 E MOV VA,A
20 0001 070A MOV A,[0AH]
20 0002 0080 E MOV VS,A
20 0003 L1:
20 0003 0700 E MOV A,VS
20 0004 008A MOV [0AH],A
20 0005 0700 E MOV A,VA
20 0006 0004 RETI
20 0007 _isr_4 ENDP
20 0000 @isr_4 .SECTION 'DATA'
; 21: void isr_8(){} // timer/event 0
21 0000 @@isr_8 .SECTION AT 08H 'CODE'
21 0000 2800 R JMP _isr_8
21 0000 @isr_8 .SECTION 'CODE'
21 0000 _isr_8 PROC
21 0000 0080 E MOV VA,A
21 0001 070A MOV A,[0AH]
21 0002 0080 E MOV VS,A
21 0003 L2:
21 0003 0700 E MOV A,VS
21 0004 008A MOV [0AH],A
21 0005 0700 E MOV A,VA
21 0006 0004 RETI
21 0007 _isr_8 ENDP
21 0000 @isr_8 .SECTION 'DATA'
; 22: void isr_c(){} // timer/event 1
22 0000 @@isr_c .SECTION AT 0cH 'CODE'
22 0000 2800 R JMP _isr_c
22 0000 @isr_c .SECTION 'CODE'
22 0000 _isr_c PROC
22 0000 0080 E MOV VA,A
22 0001 070A MOV A,[0AH]
22 0002 0080 E MOV VS,A
22 0003 L3:
22 0003 0700 E MOV A,VS
22 0004 008A MOV [0AH],A
22 0005 0700 E MOV A,VA
22 0006 0004 RETI
22 0007 _isr_c ENDP
22 0000 @isr_c .SECTION 'DATA'
; 25: void safeguard_init(){
25 0000 @safeguard_init .SECTION 'CODE'
25 0000 PUBLIC _safeguard_init
25 0000 _safeguard_init PROC
; 26: _intc = 0;
26 0000 1F0B CLR __intc
; 27: _tmrc = 0x80;
27 0001 0F80 MOV A,080h
27 0002 008E MOV __tmrc,A
; 28: _tmr = 0;
"File: JRLED.c Holtek Cross-Assembler Version 2.86 Page 3
28 0003 1F0D CLR __tmr
; 30: _pbc = 0xff;
30 0004 1F95 SET __pbc
; 31: _pcc = 0xff;
31 0005 1F97 SET __pcc
31 0006 L4:
31 0006 0003 RET
31 0007 _safeguard_init ENDP
; 36: {
36 0000 @delay20ms .SECTION 'CODE'
36 0000 PUBLIC _delay20ms
36 0000 _delay20ms PROC
; 37: int i = 20000;
37 0000 0F20 MOV A,020h
37 0001 0080 R MOV CR1,A
37 0002 L6:
37 0002 L7:
; 38: while(i--);
38 0002 0700 R MOV A,CR1
38 0003 0080 R MOV b0_5,A
38 0004 1580 R DEC CR1
38 0005 1080 R SZ b0_5
38 0006 2800 R JMP L6
38 0007 L5:
38 0007 0003 RET
38 0000 00 LOCAL b0_5 DB ?
; 37: int i = 20000;
37 0001 00 LOCAL CR1 DB ? ; i
37 0008 _delay20ms ENDP
; 42: {
42 0000 @MAIN .SECTION 'CODE'
42 0000 _main PROC
42 0000 begin:
; 45: safeguard_init();
45 0000 2000 R CALL _safeguard_init
; 46: idx =0;
46 0001 1F00 R CLR CR4
; 47: _pac = 0; //set port A to output port
47 0002 1F13 CLR __pac
; 48: _pa = 0xff; //zero port A (all light on)
48 0003 1F92 SET __pa
48 0004 2800 R JMP L11
48 0005 L10:
; 50: if(!_pb0)
50 0005 3C14 SZ [014H].0
50 0006 2800 R JMP L13
; 52: delay20ms();
"File: JRLED.c Holtek Cross-Assembler Version 2.86 Page 4
52 0007 2000 R CALL _delay20ms
; 53: if(!_pb0)
53 0008 3C14 SZ [014H].0
53 0009 2800 R JMP L15
; 55: _pa = table[idx];
55 000A 0F01 MOV A,1
55 000B 0300 R ADD A,CR4
55 000C 0B00 R ADD A,OFFSET l_table
55 000D 2000 R CALL l_table
55 000E 0092 MOV __pa,A
; 56: idx++;
56 000F 1480 R INC CR4
; 57: if(idx==11)
57 0010 0700 R MOV A,CR4
57 0011 0C0B XOR A,0bh
57 0012 390A SNZ [0ah].2
57 0013 2800 R JMP L17
; 59: ScanCount = 0;
59 0014 1F00 R CLR CR6
; 60: ScanDelay = 5;
60 0015 0F05 MOV A,05h
60 0016 0080 R MOV CR5,A
60 0017 L17:
; 62: if(idx==12) idx =0; //程
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -