?? led.s
字號:
.module LED.c
.area text
.dbfile LED.c
.dbfunc e LEDinit _LEDinit fV
_LEDinit::
.dbline -1
.dbline 18
; //[LED.c]小燈驅動----------------------------------------------------------*
; //本文件包含: *
; // (1)LEDinit:小燈控制引腳初始化 *
; // (2)LED_L_A:小燈"亮/暗"控制 *
; //硬件連接: *
; // (1)本處的小燈是一個發(fā)光二極管,由MCU的I/O引腳控制 *
; // (2)控制引腳=高電平時,小燈"亮";反之,小燈"暗" *
; //-------------------------------------------------------------------------*
;
; #include "LED.h" //該頭文件中包含了小燈控制引腳定義和相關函數(shù)聲明
;
; //LEDinit:定義控制小燈的MCU引腳為輸出--------------------------------------*
; //功能:定義控制小燈的MCU引腳為輸出,并使小燈初始為暗 *
; //參數(shù):無 *
; //返回:無 *
; //-------------------------------------------------------------------------*
; void LEDinit(void)
; {
.dbline 19
; Light_D |= 1 << Light_Pin; //令小燈引腳為輸出
bset #1,0x9
.dbline 20
; Light_P &= ~(1 << Light_Pin); //初始時,小燈"暗"
bclr #1,0x8
.dbline -2
L1:
.dbline 0 ; func end
rts
.dbend
.dbfunc e LED_L_A _LED_L_A fV
; flag -> 2,X
_LED_L_A::
.dbline -1
tsx
.dbline 29
; }
;
; //LED_L_A:驅動小燈"亮","暗"------------------------------------------------*
; //功能:根據(jù)flag的值控制小燈的亮和暗 *
; //參數(shù):flag(flag = 'A',小燈暗;flag = 'L',小燈亮) *
; //返回:無 *
; //-------------------------------------------------------------------------*
; void LED_L_A(INT8U flag)
; {
.dbline 30
; if (flag == 'L')
lda 2,X
cmp #76
bne L3
.dbline 31
; {
.dbline 32
; Light_P |= 1 << Light_Pin; //小燈"暗"
bset #1,0x8
.dbline 33
; }
bra L4
L3:
.dbline 35
;
; else if (flag == 'A')
lda 2,X
cmp #65
bne L5
.dbline 36
; {
.dbline 37
; Light_P &= ~(1 << Light_Pin); //小燈"亮"
bclr #1,0x8
.dbline 38
; }
L5:
L4:
.dbline -2
L2:
.dbline 0 ; func end
rts
.dbsym l flag 2 c
.dbend
.dbfunc e LED_Spark _LED_Spark fV
; i -> 0,X
; interval -> 1,X
; type -> 6,X
; num -> 5,X
_LED_Spark::
.dbline -1
ais #-3
tsx
.dbline 47
; }
;
; //LED_Spark:驅動小燈閃爍---------------------------------------------------*
; //功能:驅動小燈閃爍 *
; //參數(shù):num - 閃爍次數(shù)(小于256),type - 閃爍方式(L:長間隔,S:短間隔) *
; //返回:無 *
; //-------------------------------------------------------------------------*
; void LED_Spark(INT8U num, INT8U type)
; {
.dbline 52
; INT8U i;
; INT16U interval;
;
; //設置時間間隔
; interval = 0;
clr 2,X
clr 1,X
.dbline 53
; if(type == 'L')
lda 6,X
cmp #76
bne L8
.dbline 54
; {
.dbline 55
; interval = 15000;
lda #58
sta 1,X
lda #-104
sta 2,X
.dbline 56
; }
bra L9
L8:
.dbline 57
; else if(type == 'S')
lda 6,X
cmp #83
bne L10
.dbline 58
; {
.dbline 59
; interval = 1500;
lda #5
sta 1,X
lda #-36
sta 2,X
.dbline 60
; }
L10:
L9:
.dbline 63
;
; //閃爍小燈
; for(i = 0; i < num; i++)
clr ,X
bra L15
L12:
.dbline 64
.dbline 65
lda #76
psha
jsr _LED_L_A
ais #1
tsx
.dbline 66
lda 2,X
psha
lda 1,X
psha
jsr _Delay
ais #2
.dbline 67
lda #65
psha
jsr _LED_L_A
ais #1
tsx
.dbline 68
lda 2,X
psha
lda 1,X
psha
jsr _Delay
ais #2
tsx
.dbline 69
L13:
.dbline 63
inc ,X
L15:
.dbline 63
lda ,X
cmp 5,X
blo L12
.dbline -2
L7:
ais #3
.dbline 0 ; func end
rts
.dbsym l i 0 c
.dbsym l interval 1 i
.dbsym l type 6 c
.dbsym l num 5 c
.dbend
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -