⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jrled1.lst

📁 一個使用HOLTEK做的燈光控制專案
💻 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 + -