;[Light.s]小灯驱动-------------------------------------*
;本文件包含:                                           *
;    (1)Lightinit:定义控制小灯的MCU的I/O引脚为输出     *
;    (2)Light_L_A:驱动小灯"亮","暗"                    *
;硬件连接:                                             *
;    (1)本处的小灯是一个发光二极管,由MCU的I/O引脚控制  *
;    (2)控制引脚为高电平时,小灯"暗";反之,小灯"亮"      *
;------------------------------------------------------*

;小灯驱动所需头文件
    INCLUDE 'MC9S08AW60.inc'    ;MCU映像寄存器名
   
;小灯控制引脚宏定义
Light_P:   equ   PTBD    ;灯(Light)接在PTB口
Light_D:   equ   PTBDD   ;相应的方向寄存器
Light_Pin: equ   1       ;所在的引脚

;声明外部函数  
    XDEF LightInit      ;小灯初始化  
    XDEF Light_L_A      ;驱动小灯"亮","暗" 
   
;Lightinit:定义控制小灯的MCU引脚为输出-----------------*
;功能:定义控制小灯的MCU引脚为输出,并使小灯初始为暗     *
;入口:无                                               *
;出口:无                                               *
;堆栈深度:2                                            *
;------------------------------------------------------*
LightInit:
    BSET Light_Pin,Light_D    ;令小灯引脚为输出
    BSET Light_Pin,Light_P    ;初始时,小灯"暗"
 RTS

;Light_L_A:驱动小灯"亮","暗"---------------------------*
;功能:根据A的值控制小灯的亮和暗                        *
;入口:A(A = 'L',小灯亮;A = 'A',小灯暗)                 *
;出口:无                                               *
;堆栈深度:2                                            *
;------------------------------------------------------*
Light_L_A:
    CMP  #'A'
    BNE  Light_L_A_1
    BSET Light_Pin,Light_P    ;小灯"暗"
    BRA  Light_L_A_Exit
Light_L_A_1:
    CMP  #'L'
    BNE  Light_L_A_Exit       ;入口非'L'/'A',程序无响应
    BCLR Light_Pin,Light_P    ;小灯"亮"
Light_L_A_Exit:
 RTS
