📄 led.lis
字号:
.module LED.c
.area text
0000 .dbfile LED.c
0000 .dbfunc e LEDinit _LEDinit fV
0000 _LEDinit::
0000 .dbline -1
0000 .dbline 18
0000 ; //[LED.c]小灯驱动----------------------------------------------------------*
0000 ; //本文件包含: *
0000 ; // (1)LEDinit:小灯控制引脚初始化 *
0000 ; // (2)LED_L_A:小灯"亮/暗"控制 *
0000 ; //硬件连接: *
0000 ; // (1)本处的小灯是一个发光二极管,由MCU的I/O引脚控制 *
0000 ; // (2)控制引脚=高电平时,小灯"亮";反之,小灯"暗" *
0000 ; //-------------------------------------------------------------------------*
0000 ;
0000 ; #include "LED.h" //该头文件中包含了小灯控制引脚定义和相关函数声明
0000 ;
0000 ; //LEDinit:定义控制小灯的MCU引脚为输出--------------------------------------*
0000 ; //功能:定义控制小灯的MCU引脚为输出,并使小灯初始为暗 *
0000 ; //参数:无 *
0000 ; //返回:无 *
0000 ; //-------------------------------------------------------------------------*
0000 ; void LEDinit(void)
0000 ; {
0000 .dbline 19
0000 ; Light_D |= 1 << Light_Pin; //令小灯引脚为输出
0000 1209 bset #1,0x9
0002 .dbline 20
0002 ; Light_P &= ~(1 << Light_Pin); //初始时,小灯"暗"
0002 1308 bclr #1,0x8
0004 .dbline -2
0004 L1:
0004 .dbline 0 ; func end
0004 81 rts
0005 .dbend
0005 .dbfunc e LED_L_A _LED_L_A fV
0005 ; flag -> 2,X
0005 _LED_L_A::
0005 .dbline -1
0005 95 tsx
0006 .dbline 29
0006 ; }
0006 ;
0006 ; //LED_L_A:驱动小灯"亮","暗"------------------------------------------------*
0006 ; //功能:根据flag的值控制小灯的亮和暗 *
0006 ; //参数:flag(flag = 'A',小灯暗;flag = 'L',小灯亮) *
0006 ; //返回:无 *
0006 ; //-------------------------------------------------------------------------*
0006 ; void LED_L_A(INT8U flag)
0006 ; {
0006 .dbline 30
0006 ; if (flag == 'L')
0006 E602 lda 2,X
0008 A14C cmp #76
000A 2604 bne L3
000C .dbline 31
000C ; {
000C .dbline 32
000C ; Light_P |= 1 << Light_Pin; //小灯"暗"
000C 1208 bset #1,0x8
000E .dbline 33
000E ; }
000E 2008 bra L4
0010 L3:
0010 .dbline 35
0010 ;
0010 ; else if (flag == 'A')
0010 E602 lda 2,X
0012 A141 cmp #65
0014 2602 bne L5
0016 .dbline 36
0016 ; {
0016 .dbline 37
0016 ; Light_P &= ~(1 << Light_Pin); //小灯"亮"
0016 1308 bclr #1,0x8
0018 .dbline 38
0018 ; }
0018 L5:
0018 L4:
0018 .dbline -2
0018 L2:
0018 .dbline 0 ; func end
0018 81 rts
0019 .dbsym l flag 2 c
0019 .dbend
0019 .dbfunc e LED_Spark _LED_Spark fV
0019 ; i -> 0,X
0019 ; interval -> 1,X
0019 ; type -> 6,X
0019 ; num -> 5,X
0019 _LED_Spark::
0019 .dbline -1
0019 A7FD ais #-3
001B 95 tsx
001C .dbline 47
001C ; }
001C ;
001C ; //LED_Spark:驱动小灯闪烁---------------------------------------------------*
001C ; //功能:驱动小灯闪烁 *
001C ; //参数:num - 闪烁次数(小于256),type - 闪烁方式(L:长间隔,S:短间隔) *
001C ; //返回:无 *
001C ; //-------------------------------------------------------------------------*
001C ; void LED_Spark(INT8U num, INT8U type)
001C ; {
001C .dbline 52
001C ; INT8U i;
001C ; INT16U interval;
001C ;
001C ; //设置时间间隔
001C ; interval = 0;
001C 6F02 clr 2,X
001E 6F01 clr 1,X
0020 .dbline 53
0020 ; if(type == 'L')
0020 E606 lda 6,X
0022 A14C cmp #76
0024 260A bne L8
0026 .dbline 54
0026 ; {
0026 .dbline 55
0026 ; interval = 15000;
0026 A63A lda #58
0028 E701 sta 1,X
002A A698 lda #-104
002C E702 sta 2,X
002E .dbline 56
002E ; }
002E 200E bra L9
0030 L8:
0030 .dbline 57
0030 ; else if(type == 'S')
0030 E606 lda 6,X
0032 A153 cmp #83
0034 2608 bne L10
0036 .dbline 58
0036 ; {
0036 .dbline 59
0036 ; interval = 1500;
0036 A605 lda #5
0038 E701 sta 1,X
003A A6DC lda #-36
003C E702 sta 2,X
003E .dbline 60
003E ; }
003E L10:
003E L9:
003E .dbline 63
003E ;
003E ; //闪烁小灯
003E ; for(i = 0; i < num; i++)
003E 7F clr ,X
003F 202A bra L15
0041 L12:
0041 .dbline 64
0041 .dbline 65
0041 A64C lda #76
0043 87 psha
0044 CD0005 jsr _LED_L_A
0047 A701 ais #1
0049 95 tsx
004A .dbline 66
004A E602 lda 2,X
004C 87 psha
004D E601 lda 1,X
004F 87 psha
0050 CD0000 jsr _Delay
0053 A702 ais #2
0055 .dbline 67
0055 A641 lda #65
0057 87 psha
0058 CD0005 jsr _LED_L_A
005B A701 ais #1
005D 95 tsx
005E .dbline 68
005E E602 lda 2,X
0060 87 psha
0061 E601 lda 1,X
0063 87 psha
0064 CD0000 jsr _Delay
0067 A702 ais #2
0069 95 tsx
006A .dbline 69
006A L13:
006A .dbline 63
006A 7C inc ,X
006B L15:
006B .dbline 63
006B F6 lda ,X
006C E105 cmp 5,X
006E 25D1 blo L12
0070 .dbline -2
0070 L7:
0070 A703 ais #3
0072 .dbline 0 ; func end
0072 81 rts
0073 .dbsym l i 0 c
0073 .dbsym l interval 1 i
0073 .dbsym l type 6 c
0073 .dbsym l num 5 c
0073 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -