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

📄 ex3-4.asm

📁 《51单片机应用开发案例精选配套源代码
💻 ASM
字号:
;--------------程序信息-----------------
;文件名   : ex3-4.asm
;版本     : 1.0
;作者     :
;修改时间 :

;--------------程序说明------------------
;CHAP 3.4 定时中断方式键盘输入实例

;-----------常量和变量声明---------------
                F1 BIT 00H;          标志位定义
		F2 BIT 01H;
		KEYIN EQU P1;


;--------------预定义--------------------

               ORG 0000H
               LJMP START

;------------中断入口地址分配------------
               ORG 000BH
               LJMP INTT0PRG
               ;ORG 000BH
               ;LJMP INT1PRG
               ;ORG 0013H;
               ;LJMP
               ;ORG 0030H

START:
;--------------初始化子程序--------------
     MOV SP,60H;
     LCALL INITINTT0;
;--------------主程序--------------------
MAIN:
      SJMP $;            等待中断
                      
LJMP MAIN


;----------------子程序------------------

;--------------中断子程序----------------

;--------------------
;    定时扫描方式T0中断初始化子程序部分
;    单片机时钟频率为12M
;--------------------
INITINTT0:
	MOV TMOD,#01H;     设置定时器工作方式1
	MOV TL0,#0F0H;      设置定制器初始值
	MOV TH0,#0D8H;
	SETB TR0;            启动T0
	SETB ET0;            允许T0中断
	SETB EA;             CPU中断允许
	RET;

;---------------------------------
;    定时扫描方式T0中断服务子程序部分
;---------------------------------
INTT0PRG:
		MOV TL0,#0F0H;      设置定制器初始值
		MOV TH0,#0D8H;
                MOV KEYIN,#0FH;     所有列置高电平
                MOV A,KEYIN;        读取行值
                CJNE A,#0FH,HAVEKEY;        判断有无键按下
		CLR F1;
		CLR F2;
		LJMP INTT0END;
HAVEKEY:                     
		JB F1,DITHERED;      判断是否去抖
		SETB F1;
		LJMP INTT0END;
DITHERED:
 		JNB F2,SCANED;       判断是否进行了按键识别
		LJMP INTT0END;
SCANED:
     	        SETB F2;
SCANKEY:                     ;按键识别,可采用上两例中的线反选法和扫描法
                             ;按键执行,调用KEYEXE;
INTT0END: 
RETI;

;---------------延时子程序---------------

END

;---------------注意事项-----------------

⌨️ 快捷键说明

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