led164.asm

来自「该程序主要实现通过74ls164实现串行驱动LED并显示,这种显示方法的LED量」· 汇编 代码 · 共 63 行

ASM
63
字号
.include hardware.inc

.public _LED164_Init
.public _SetIObit
.public _Clear_WatchDog
.code
//==================================================================

_LED164_Init:
   r1=0x80                    //49MHz
   [P_SystemClock]=r1;
   //IOA

   r1=[P_IOB_Buffer]
   r1|=0x00c0
   
   [P_IOA_Dir]=r1;
   [P_IOA_Attrib]=r1;
   r1=0x0000
   [P_IOA_Data]=r1
   
   //IOB
 //  r1=0xffff
 //  [P_IOB_Dir]=r1;
 //  [P_IOB_Attrib]=r1;
//  r1=0x0000
//   [P_IOB_Data]=r1
  retf

//==============================================================

_SetIObit:.proc
    push r1,r2 to [sp]
    push bp to [sp]
    bp=sp+5
    r2=[bp+1]    //IO position
    r1=[bp+2]    //IO status
    jz Clr_IO
Set_IO: 
     r1=[P_IOA_Buffer]
     r1|=r2
     [P_IOA_Buffer]=r1
  //   [P_IOB_Buffer]=r1
     pop bp from [sp]
     pop r2,r1 from [sp]
     retf
Clr_IO:
       r2^=0xffff      //取反
       r1=[P_IOA_Buffer]
       r1&=r2
       [P_IOA_Buffer]=r1
    //   [P_IOB_Buffer]=r1
       pop bp from [sp]
       pop r2,r1 from [sp]
       retf 
.endp     
//==============================   
_Clear_WatchDog: 	.PROC
		R1=0x0001;                      	
		[P_Watchdog_Clear]=R1;       		
		retf;
		.ENDP
  .end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?