📄 jrled2.lst
字号:
"File: JRLED2.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 097F RET A,127
; 17: void isr_4(){} // external ISR
17 000D __pcc EQU [017H]
17 000D __pc EQU [016H]
17 000D __pbc EQU [015H]
17 000D __pb EQU [014H]
17 000D __pac EQU [013H]
17 000D __pa EQU [012H]
17 000D __tmrc EQU [0eH]
17 000D __tmr EQU [0dH]
17 000D __intc EQU [0bH]
17 000D __status EQU [0aH]
17 000D __wdts EQU [09H]
17 000D __tblh EQU [08H]
17 000D __tblp EQU [07H]
17 000D __pcl EQU [06H]
17 000D __acc EQU [05H]
17 000D __mp EQU [01H]
17 000D __iar EQU [00H]
17 0000 @@isr_4 .SECTION AT 04H 'CODE'
17 0000 2800 R JMP _isr_4
17 0000 @isr_4 .SECTION 'CODE'
17 0000 _isr_4 PROC
17 0000 0080 E MOV VA,A
17 0001 070A MOV A,[0AH]
17 0002 0080 E MOV VS,A
17 0003 L1:
17 0003 0700 E MOV A,VS
17 0004 008A MOV [0AH],A
17 0005 0700 E MOV A,VA
17 0006 0004 RETI
17 0007 _isr_4 ENDP
17 0000 @isr_4 .SECTION 'DATA'
; 18: void isr_8(){} // timer/event 0
18 0000 @@isr_8 .SECTION AT 08H 'CODE'
18 0000 2800 R JMP _isr_8
18 0000 @isr_8 .SECTION 'CODE'
18 0000 _isr_8 PROC
18 0000 0080 E MOV VA,A
"File: JRLED2.c Holtek Cross-Assembler Version 2.86 Page 2
18 0001 070A MOV A,[0AH]
18 0002 0080 E MOV VS,A
18 0003 L2:
18 0003 0700 E MOV A,VS
18 0004 008A MOV [0AH],A
18 0005 0700 E MOV A,VA
18 0006 0004 RETI
18 0007 _isr_8 ENDP
18 0000 @isr_8 .SECTION 'DATA'
; 19: void isr_c(){} // timer/event 1
19 0000 @@isr_c .SECTION AT 0cH 'CODE'
19 0000 2800 R JMP _isr_c
19 0000 @isr_c .SECTION 'CODE'
19 0000 _isr_c PROC
19 0000 0080 E MOV VA,A
19 0001 070A MOV A,[0AH]
19 0002 0080 E MOV VS,A
19 0003 L3:
19 0003 0700 E MOV A,VS
19 0004 008A MOV [0AH],A
19 0005 0700 E MOV A,VA
19 0006 0004 RETI
19 0007 _isr_c ENDP
19 0000 @isr_c .SECTION 'DATA'
; 22: void safeguard_init(){
22 0000 @safeguard_init .SECTION 'CODE'
22 0000 PUBLIC _safeguard_init
22 0000 _safeguard_init PROC
; 23: _intc = 0;
23 0000 1F0B CLR __intc
; 24: _tmrc = 0x80;
24 0001 0F80 MOV A,080h
24 0002 008E MOV __tmrc,A
; 25: _tmr = 0;
25 0003 1F0D CLR __tmr
; 27: _pbc = 0xff;
27 0004 1F95 SET __pbc
; 28: _pcc = 0xff;
28 0005 1F97 SET __pcc
28 0006 L4:
28 0006 0003 RET
28 0007 _safeguard_init ENDP
; 33: {
33 0000 @delay20ms .SECTION 'CODE'
33 0000 PUBLIC _delay20ms
33 0000 _delay20ms PROC
; 34: int i = 20000;
34 0000 0F20 MOV A,020h
34 0001 0080 R MOV CR1,A
34 0002 L6:
34 0002 L7:
"File: JRLED2.c Holtek Cross-Assembler Version 2.86 Page 3
; 35: while(i--);
35 0002 0700 R MOV A,CR1
35 0003 0080 R MOV b0_5,A
35 0004 1580 R DEC CR1
35 0005 1080 R SZ b0_5
35 0006 2800 R JMP L6
35 0007 L5:
35 0007 0003 RET
35 0000 00 LOCAL b0_5 DB ?
; 34: int i = 20000;
34 0001 00 LOCAL CR1 DB ? ; i
34 0008 _delay20ms ENDP
; 39: {
; 40: unsigned char ScanTable[16]={
40 0000 L10 .SECTION INPAGE'CODE'
40 0000 l_10:
40 0000 0086 MOV [06h],A
40 0001 _10:
40 0001 097F RET A,127
40 0002 09BF RET A,191
40 0003 09DF RET A,223
40 0004 09EF RET A,239
40 0005 09F7 RET A,247
40 0006 09FB RET A,251
40 0007 09FD RET A,253
40 0008 09FE RET A,254
40 0009 09FE RET A,254
40 000A 09FD RET A,253
40 000B 09FB RET A,251
40 000C 09F7 RET A,247
40 000D 09EF RET A,239
40 000E 09DF RET A,223
40 000F 09BF RET A,191
40 0010 097F RET A,127
40 0000 @MAIN .SECTION 'CODE'
40 0000 _main PROC
40 0000 begin:
40 0000 0F10 MOV A,16
40 0001 0080 E MOV RH,A
40 0002 0F00 R MOV A,OFFSET CR7
40 0003 0081 MOV [01H],A
40 0004 0F01 MOV A,1
40 0005 0B00 R ADD A,OFFSET l_10
40 0006 0080 E MOV T2,A
40 0007 ASB43:
40 0007 0700 E MOV A,T2
40 0008 2000 R CALL l_10
40 0009 0080 MOV [00H],A
40 000A 1481 INC [01H]
40 000B 1480 E INC T2
40 000C 1780 E SDZ RH
40 000D 2800 R JMP ASB43
; 45: safeguard_init();
45 000E 2000 R CALL _safeguard_init
; 46: idx =0;
"File: JRLED2.c Holtek Cross-Assembler Version 2.86 Page 4
46 000F 1F00 R CLR CR4
; 47: _pac = 0; //set port A to output port
47 0010 1F13 CLR __pac
; 48: _pa = 0xff; //zero port A (all light on)
48 0011 1F92 SET __pa
48 0012 2800 R JMP L12
48 0013 L11:
; 50: if(!_pb0)
50 0013 3C14 SZ [014H].0
50 0014 2800 R JMP L14
; 52: delay20ms();
52 0015 2000 R CALL _delay20ms
; 53: if(!_pb0)
53 0016 3C14 SZ [014H].0
53 0017 2800 R JMP L16
; 55: _pa = table[idx];
55 0018 0F01 MOV A,1
55 0019 0300 R ADD A,CR4
55 001A 0B00 R ADD A,OFFSET l_table
55 001B 2000 R CALL l_table
55 001C 0092 MOV __pa,A
; 56: idx++;
56 001D 1480 R INC CR4
; 57: if(idx==12)
57 001E 0700 R MOV A,CR4
57 001F 0C0C XOR A,0ch
57 0020 390A SNZ [0ah].2
57 0021 2800 R JMP L18
; 59: ScanCount = 0;
59 0022 1F00 R CLR CR5
; 60: ScanDelay = 250;
60 0023 0FFA MOV A,0fah
60 0024 0080 R MOV CR6,A
; 61: _pa = ScanTable[ScanCount];
61 0025 0700 R MOV A,CR5
61 0026 0B00 R ADD A,OFFSET CR7
61 0027 0080 R MOV b0_6,A
61 0028 0700 R MOV A,b0_6
61 0029 0081 MOV [01H],A
61 002A 0700 MOV A,[00H]
61 002B 0080 R MOV b0_6,A
61 002C 0700 R MOV A,b0_6
61 002D 0092 MOV __pa,A
; 62: _tmr = 0; //clear tmr
62 002E 1F0D CLR __tmr
; 63: _tmrc = 0x97; //tmr enabeled at timer mode and prescaled = 256
63 002F 0F97 MOV A,097h
"File: JRLED2.c Holtek Cross-Assembler Version 2.86 Page 5
63 0030 008E MOV __tmrc,A
63 0031 L18:
; 65: if(idx==13)
65 0031 0700 R MOV A,CR4
65 0032 0C0D XOR A,0dh
65 0033 390A SNZ [0ah].2
65 0034 2800 R JMP L20
; 67: idx =0; //程
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -