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

📄 led.lis

📁 使用RC531读卡芯片读取二代身份证的模块软件设计部分
💻 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 + -