📄 led.s
字号:
.module led.c
.area data(ram, con, rel)
_LED_DATA::
.blkb 2
.area idata
.byte 192,249
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 164,176
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 153,146
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 130,248
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 128,144
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 161,14
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 0,255
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 239,63
.area data(ram, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbsym e LED_DATA _LED_DATA A[16:16]c
_JS_001::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbsym e JS_001 _JS_001 c
_JS_002::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbsym e JS_002 _JS_002 c
_JS_003::
.blkb 4
.area idata
.word 0,0
.area data(ram, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbsym e JS_003 _JS_003 L
_JS_004::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbsym e JS_004 _JS_004 c
_JS_005::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbsym e JS_005 _JS_005 c
_JS_006::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbsym e JS_006 _JS_006 c
_JS_007::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbsym e JS_007 _JS_007 c
_JS_008::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbsym e JS_008 _JS_008 c
_LED_DISPLAY_V1::
.blkb 1
.area idata
.byte 10
.area data(ram, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbsym e LED_DISPLAY_V1 _LED_DISPLAY_V1 c
_LED_DISPLAY_V2::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbsym e LED_DISPLAY_V2 _LED_DISPLAY_V2 c
_LED_DISPLAY_V3::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbsym e LED_DISPLAY_V3 _LED_DISPLAY_V3 c
_LED_DISPLAY_V4::
.blkb 1
.area idata
.byte 1
.area data(ram, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbsym e LED_DISPLAY_V4 _LED_DISPLAY_V4 c
_LED_DISPLAY_V5::
.blkb 1
.area idata
.byte 14
.area data(ram, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbsym e LED_DISPLAY_V5 _LED_DISPLAY_V5 c
_JS_PRESS_ON_UP::
.blkb 4
.area idata
.word 0,0
.area data(ram, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbsym e JS_PRESS_ON_UP _JS_PRESS_ON_UP L
_JS_PRESS_ON_DOWN::
.blkb 4
.area idata
.word 0,0
.area data(ram, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbsym e JS_PRESS_ON_DOWN _JS_PRESS_ON_DOWN L
_JS_TIMER1_ICP_INPUT::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbsym e JS_TIMER1_ICP_INPUT _JS_TIMER1_ICP_INPUT c
_JS_PRESS_ON_UP_1::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbsym e JS_PRESS_ON_UP_1 _JS_PRESS_ON_UP_1 c
_JS_PRESS_ON_UP_10000::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbsym e JS_PRESS_ON_UP_10000 _JS_PRESS_ON_UP_10000 c
_JS_PRESS_DWON_ON_1::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbsym e JS_PRESS_DWON_ON_1 _JS_PRESS_DWON_ON_1 c
_JS_PRESS_ON_DOWN_10000::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbsym e JS_PRESS_ON_DOWN_10000 _JS_PRESS_ON_DOWN_10000 c
_JS_PRESS_ON_UP_FAST::
.blkb 2
.area idata
.word 0
.area data(ram, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbsym e JS_PRESS_ON_UP_FAST _JS_PRESS_ON_UP_FAST I
_JS_PRESS_OFF_UP::
.blkb 2
.area idata
.word 0
.area data(ram, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbsym e JS_PRESS_OFF_UP _JS_PRESS_OFF_UP I
_JS_MODE_MODE::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbsym e JS_MODE_MODE _JS_MODE_MODE c
_JS_MENU_MODE::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbsym e JS_MENU_MODE _JS_MENU_MODE c
_JS_UP_MODE::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbsym e JS_UP_MODE _JS_UP_MODE c
_JS_DOWN_MODE::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbsym e JS_DOWN_MODE _JS_DOWN_MODE c
_ICP_TIME::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbsym e ICP_TIME _ICP_TIME c
_ICP_TIME_T1::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbsym e ICP_TIME_T1 _ICP_TIME_T1 c
_START_ICP_JS_TLOW::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbsym e START_ICP_JS_TLOW _START_ICP_JS_TLOW c
_ICP_INT_SN::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbsym e ICP_INT_SN _ICP_INT_SN c
_KEY_BANK::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbsym e KEY_BANK _KEY_BANK c
_KEY_PAN_MODE_1::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbsym e KEY_PAN_MODE_1 _KEY_PAN_MODE_1 c
_KEY_PAN_MODE_2::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbsym e KEY_PAN_MODE_2 _KEY_PAN_MODE_2 c
_KEY_PAN_MODE_3::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbsym e KEY_PAN_MODE_3 _KEY_PAN_MODE_3 c
_KEY_PAN_3::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbsym e KEY_PAN_3 _KEY_PAN_3 c
_KEY_PAN_4::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbsym e KEY_PAN_4 _KEY_PAN_4 c
_KEY_PAN_5::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbsym e KEY_PAN_5 _KEY_PAN_5 c
_KEY_PAN_6::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbsym e KEY_PAN_6 _KEY_PAN_6 c
_KEY_PAN_7::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbsym e KEY_PAN_7 _KEY_PAN_7 c
_KEY_PAN_8::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbsym e KEY_PAN_8 _KEY_PAN_8 c
_PAN_ICP_INPUT_CHECK::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbsym e PAN_ICP_INPUT_CHECK _PAN_ICP_INPUT_CHECK c
_JS_ICP_INT::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbsym e JS_ICP_INT _JS_ICP_INT c
_N_001::
.blkb 1
.area idata
.byte 1
.area data(ram, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbsym e N_001 _N_001 c
_SUM::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbsym e SUM _SUM c
_IR_CUSTOM_CODE::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbsym e IR_CUSTOM_CODE _IR_CUSTOM_CODE c
_IR_DATA_CODE::
.blkb 2
.area idata
.word 0
.area data(ram, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbsym e IR_DATA_CODE _IR_DATA_CODE I
.area text(rom, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbfunc e port_init _port_init fV
.even
_port_init::
.dbline -1
.dbline 86
; /*
; 2007-01-05 22:30 2007-1-6 23:04
; infrared
; //ICC-AVR application builder : 2006-12-16 0:17:05 2006-12-18 20:04 IR_CDOE
; // Target : M16
; // Crystal: 16.000Mhz //注册大小写识别 开始必须为字母 红外线
; */
; #include <iom16v.h>
; #include <macros.h>
; #include "led.h"
; #include "IR_DATA.H"
; #define IR 6
; //#include "delay.h"
; //用户码
; #define CUSTOMCODE 9
; //按键码
; #define POWER_ON 221
; #define STAND_BY 220
; #define DMX 216
; #define AUTO 212
; #define AUDIO 208
; #define FADETIME_UP 217
; #define FADETIME_DOWN 209
; #define PATTERN_UP 218
; #define PATTERN_DOWN 210
;
;
; // 值 0 1 10 11 12 13 14 15
; // 0 1 2 3 4 5 6 7 8 9 d f
; char LED_DATA[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0Xa1,0X0e,0x00,0xff,0xef,0x3f}; //11 FOR "d"
; char iPos,iPreBit,iNowBit,iHight,iLow,iIrMode,iBitCount,bIrCmdOk,bCmdOk,iCmd,iIrData[6];
; char JS_001=0,JS_002=0;
; long JS_003=0;
; char JS_004=0;
; char JS_005=0;
; char JS_006=0;
; char JS_007=0;
; char JS_008=0;
; long TIMER1_ICP_T,TIMER1_ICP_T1,TIMER1_ICP_T2;
; char LED_DISPLAY_V1=10; // 初始值 显示 为 d001
; char LED_DISPLAY_V2=0;
; char LED_DISPLAY_V3=0;
; char LED_DISPLAY_V4=1;
; char LED_DISPLAY_V5=14;
;
; long JS_PRESS_ON_UP=0;
; long JS_PRESS_ON_DOWN=0;
;
; char JS_TIMER1_ICP_INPUT=0;
; char OUT_22_LOW;
; char JS_PRESS_ON_UP_1=0;
; char JS_PRESS_ON_UP_10000=0;
; char JS_PRESS_DWON_ON_1=0;
; char JS_PRESS_ON_DOWN_10000=0;
; int JS_PRESS_ON_UP_FAST=0;
; int JS_PRESS_OFF_UP=0;
; char JS_MODE_MODE=0;
; char JS_MENU_MODE=0;
; char JS_UP_MODE=0;
; char JS_DOWN_MODE=0;
; int JS_PRESS_OFF_DOWN;
; int JS_PRESS_ON_DOWN_FAST;
; char JS_PRESS_DOWN_ON_1;
;
; char ICP_TIME=0,ICP_TIME_T1=0;
; char START_ICP_JS_TLOW=0;
; char ICP_INT_SN=0; //ICP 产生中断标志位
; char KEY_BANK=0;
; char KEY_PAN_MODE_1=0;
; char KEY_PAN_MODE_2=0;
; char KEY_PAN_MODE_3=0;
; char KEY_PAN_3=0;
; char KEY_PAN_4=0;
; char KEY_PAN_5=0;
; char KEY_PAN_6=0;
; char KEY_PAN_7=0;
; char KEY_PAN_8=0;
;
; char PAN_ICP_INPUT_CHECK=0,JS_ICP_INT=0;
;
; char N_001=1,SUM=0;
; char IR_CUSTOM_CODE=0;IR_DATA_CODE=0;
;
; // 共阳极用
; void port_init(void)
; {
.dbline 87
; PORTA = 0xFF;
ldi R24,255
out 0x1b,R24
.dbline 88
; DDRA = 0xFF;
out 0x1a,R24
.dbline 89
; PORTB = 0x1F;
ldi R24,31
out 0x18,R24
.dbline 90
; DDRB = 0x1F;
out 0x17,R24
.dbline 91
; PORTC = 0x1F; //m103 output only
out 0x15,R24
.dbline 92
; DDRC = 0x10;
ldi R24,16
out 0x14,R24
.dbline 93
; PORTD = 0x00;
clr R2
out 0x12,R2
.dbline 94
; DDRD = 0x00;
out 0x11,R2
.dbline -2
.dbline 95
; }
L1:
.dbline 0 ; func end
ret
.dbend
.dbfunc e watchdog_init _watchdog_init fV
.even
_watchdog_init::
.dbline -1
.dbline 107
;
; //Watchdog initialize
; // prescale: 16K
; //void watchdog_init(void)
; //{
; //WDR(); //this prevents a timout on enabling
; //WDTCR = 0x08; //WATCHDOG ENABLED - dont forget to issue WDRs
; //}
; //Watchdog initialize
; // prescale: 2048K
; void watchdog_init(void)
; {
.dbline 108
; WDR(); //this prevents a timout on enabling
wdr
.dbline 109
; WDTCR = 0x0F; //WATCHDOG ENABLED - dont forget to issue WDRs
ldi R24,15
out 0x21,R24
.dbline -2
.dbline 110
; }
L2:
.dbline 0 ; func end
ret
.dbend
.area vector(rom, abs)
.org 60
jmp _eeprom_ready_isr
.area text(rom, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbfunc e eeprom_ready_isr _eeprom_ready_isr fV
.even
_eeprom_ready_isr::
.dbline -1
.dbline 113
; #pragma interrupt_handler eeprom_ready_isr:16
; void eeprom_ready_isr(void)
; {
.dbline -2
.dbline 115
; //eeprom ready event
; }
L3:
.dbline 0 ; func end
reti
.dbend
.dbfunc e timer0_init _timer0_init fV
.even
_timer0_init::
.dbline -1
.dbline 123
;
; /////////////////////////TIMER0/////////////////////////////////////////////////////////////
; //TIMER0 initialize - prescale:8
; // WGM: Normal
; // desired value: 100uSec
; // actual value: 100.000uSec (0.0%)
; void timer0_init(void)
; {
.dbline 124
; TCCR0 = 0x00; //stop
clr R2
out 0x33,R2
.dbline 125
; TCNT0 = 0xCE; //set count
ldi R24,206
out 0x32,R24
.dbline 126
; OCR0 = 0x32; //set compare
ldi R24,50
out 0x3c,R24
.dbline 127
; TCCR0 = 0x02; //start timer
ldi R24,2
out 0x33,R24
.dbline -2
.dbline 128
; }
L4:
.dbline 0 ; func end
ret
.dbend
.area vector(rom, abs)
.org 36
jmp _timer0_ovf_isr
.area text(rom, con, rel)
.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
.dbfunc e timer0_ovf_isr _timer0_ovf_isr fV
.even
_timer0_ovf_isr::
xcall push_lset
xcall push_gset2
sbiw R28,4
.dbline -1
.dbline 132
;
; #pragma interrupt_handler timer0_ovf_isr:10
; void timer0_ovf_isr(void)
; {
.dbline 133
; TCNT0 = 0xCE; //reload counter value 100us
ldi R24,206
out 0x32,R24
.dbline 134
; LED_SCAN();
xcall _LED_SCAN
.dbline 135
; KEY_CHK();
xcall _KEY_CHK
.dbline 136
; CheckIR();
xcall _CheckIR
.dbline 137
; JS_003=++JS_003; //KEY_CHECK
.dbline 138
; TEST();
ldi R20,1
ldi R21,0
ldi R22,0
ldi R23,0
lds R4,_JS_003+2
lds R5,_JS_003+2+1
lds R2,_JS_003
lds R3,_JS_003+1
add R2,R20
adc R3,R21
adc R4,R22
adc R5,R23
movw R30,R28
std z+0,R2
std z+1,R3
std z+2,R4
std z+3,R5
movw R30,R28
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -