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

📄 key.asm

📁 基于61A的时钟 LCD显示程序,非常的简洁,实用
💻 ASM
字号:
.include   hardware.inc

.public    _Key_Scan_ServiceLoop;

.DEFINE C_DebounceCnt	0x0050; //13ms 去抖
.DEFINE C_CONTINUE   	0xB00;  //第二次以后有效


.external  _Key
.external  _KeyPressFlag;  //无键按下时清0;有键按下时B0=1;
                             //第二次以后有效B15=1
.external _SleepFlag

.ram
.var    Key_Buff;           //本次键值暂存单元
.var    Key_Debounce;       //计数单元
.var    KeyScanLineBuff;


.code   
.public Key_Scan_Init
Key_Scan_Init: .proc
       r1=0x0000
       [_Key]=r1
       [Key_Buff]=r1
       [_KeyPressFlag]=r1
       retf
      .endp
 
_Key_Scan_ServiceLoop: .proc
         r2=[P_IOA_Data]
         r2&=0x00ff
         jnz F_SomeKeyIsPressed
         r1=0x0000
         [Key_Buff]=r1      
         [_KeyPressFlag]=r1    //清0
         r1=1 
         [_SleepFlag] = r1   //置睡眠标志
         retf
//-----------------------------//
 F_SomeKeyIsPressed:    
         R3=[_KeyPressFlag]    //有键按下  B0=1
         R3|=0x0001
         [_KeyPressFlag]=R3   //置按键标志
             
         r3=0 
         [_SleepFlag] = r3      //清睡眠标志
         
         r1=[Key_Buff]    //读上次键值

⌨️ 快捷键说明

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