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

📄 led.s

📁 使用RC531读卡芯片读取二代身份证的模块软件设计部分
💻 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)本处的小灯是一个发光二极管,由MCU的I/O引脚控制                     *
; //    (2)控制引脚=高电平时,小灯"亮";反之,小灯"暗"                          *
; //-------------------------------------------------------------------------*
; 
; #include "LED.h"    //该头文件中包含了小灯控制引脚定义和相关函数声明
; 
; //LEDinit:定义控制小灯的MCU引脚为输出--------------------------------------*
; //功能:定义控制小灯的MCU引脚为输出,并使小灯初始为暗                        *
; //参数:无                                                                  *
; //返回:无                                                                  *
; //-------------------------------------------------------------------------*
; 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:驱动小灯"亮","暗"------------------------------------------------*
; //功能:根据flag的值控制小灯的亮和暗                                        *
; //参数: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:驱动小灯闪烁---------------------------------------------------*
; //功能:驱动小灯闪烁                                                        *
; //参数:num - 闪烁次数(小于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 + -