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

📄 led164.asm

📁 该程序主要实现通过74ls164实现串行驱动LED并显示,这种显示方法的LED量度较大
💻 ASM
字号:
.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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -