📄 jrled1.lst
字号:
"File: JRLED1.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
; 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 097F RET A,127
11 0002 09BF RET A,191
11 0003 09DF RET A,223
11 0004 09EF RET A,239
11 0005 09F7 RET A,247
11 0006 09FB RET A,251
11 0007 09FD RET A,253
11 0008 09FE RET A,254
11 0009 09FE RET A,254
11 000A 09FD RET A,253
11 000B 09FB RET A,251
11 000C 09F7 RET A,247
11 000D 09EF RET A,239
11 000E 09DF RET A,223
11 000F 09BF RET A,191
11 0010 097F RET A,127
; 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: JRLED1.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: JRLED1.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 =10;
46 0001 0F0A MOV A,0ah
46 0002 0080 R MOV CR4,A
; 47: _pac = 0; //set port A to output port
47 0003 1F13 CLR __pac
; 48: _pa = 0xff; //zero port A (all light on)
48 0004 1F92 SET __pa
48 0005 2800 R JMP L11
48 0006 L10:
; 50: if(!_pb0)
50 0006 3C14 SZ [014H].0
50 0007 2800 R JMP L13
; 52: delay20ms();
"File: JRLED1.c Holtek Cross-Assembler Version 2.86 Page 4
52 0008 2000 R CALL _delay20ms
; 53: if(!_pb0)
53 0009 3C14 SZ [014H].0
53 000A 2800 R JMP L15
; 55: _pa = table[idx];
55 000B 0F01 MOV A,1
55 000C 0300 R ADD A,CR4
55 000D 0B00 R ADD A,OFFSET l_table
55 000E 2000 R CALL l_table
55 000F 0092 MOV __pa,A
; 56: idx++;
56 0010 1480 R INC CR4
; 57: if(idx==12)
57 0011 0700 R MOV A,CR4
57 0012 0C0C XOR A,0ch
57 0013 390A SNZ [0ah].2
57 0014 2800 R JMP L17
; 59: ScanCount = 0;
59 0015 1F00 R CLR CR5
; 60: ScanDelay = 250;
60 0016 0FFA MOV A,0fah
60 0017 0080 R MOV CR6,A
; 61: _pa = ScanTable[ScanCount];
61 0018 0F01 MOV A,1
61 0019 0300 R ADD A,CR5
61 001A 0B00 R ADD A,OFFSET l_ScanTable
61 001B 2000 R CALL l_ScanTable
61 001C 0092 MOV __pa,A
; 62: _tmr = 0; //clear tmr
62 001D 1F0D CLR __tmr
; 63: _tmrc = 0x97; //tmr enabeled at timer mode and prescaled = 256
63 001E 0F97 MOV A,097h
63 001F 008E MOV __tmrc,A
63 0020 L17:
; 65: if(idx>=13)
65 0020 0700 R MOV A,CR4
65 0021 0A0D SUB A,0dh
65 0022 380A SNZ [0ah].0
65 0023 2800 R JMP L19
; 66: idx =0; //程
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -