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

📄 10.asm

📁 我的大学单片机课程案例和ppt
💻 ASM
字号:
              ORG    0000H        
              AJMP   START
              ORG    0003H              ;INT0中断处理程序入口地址
              AJMP   EXTINT0            ;跳转到外部中断0程序EXINT0
              ORG    0013H              ;INT1中断处理程序入口地址
              AJMP   EXTINT1            ;跳转到外部中断1程序EXINT1
              ORG    0030H
START:        MOV    SP,#60H            ;设置堆栈
              SETB   EX1		;开外部中断1
              SETB   EX0		;开外部中断0
              SETB   EA			;开总中断
              SETB   IT1 		;外部中断1由下降沿触发
              SETB   IT0		;外部中断0由下降沿触发
              MOV    A,#0FFH            ;A初始化
	      CLR	C
	      CLR    20H.0		;按键key0标志位
	      CLR    20H.1 		;按键key1标志位
NEXT:         
	      JB     20H.0,KEY0		;判断key0被按下
	      JB     20H.1,KEY1		;判断key1被按下
	      AJMP   NEXT		;循环输出
key0:	      RRC    A			;带c位循环右移
	      MOV   P2,A              	;将A中的数值输出到P2口  
              CALL   DELAY              ;调用延时子程序              
              AJMP    NEXT               ;循环输出
key1:	      RLC    A			;带c位循环左移
	      MOV   P2,A              	;将A中的数值输出到P2口  
              CALL   DELAY              ;调用延时子程序              
              AJMP    NEXT               ;循环输出
                                           ; 以下是外部中断0服务程序
EXTINT0:      PUSH   ACC                ;将ACC的值存入堆栈保存 
              PUSH   PSW                 ;将PSW的值存入堆栈保存
              SETB   20H.0		;key0按下置标志位
	      CLR    20H.1
              POP    PSW                 ;从堆栈取回PSW的值
              POP    ACC                 ;从堆栈取回A的值
              RETI                        ;返回主程序
                                           ; 以下是外部中断1服务程序 
EXTINT1:      PUSH   ACC                ;将ACC的值存入堆栈保存 
              PUSH   PSW                 ;将PSW的值存入堆栈保存
              SETB   20H.1		;key1按下置标志位
	      CLR    20H.0 
              POP    PSW                 ;从堆栈取回PSW的值
              POP    ACC                 ;从堆栈取回A的值
              RETI                        ;返回主程序
                                          ;以下延时子程序
DELAY:       PUSH  ACC
              PUSH  PSW
	          MOV R7,#250
DE1:          MOV R6,#250  
DE2:          DJNZ R6,DE2
              DJNZ R7,DE1
	          POP  PSW
              POP  ACC
              RET 
              END

⌨️ 快捷键说明

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