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

📄 key.asm

📁 一个秒表的程序
💻 ASM
字号:
;--------------------------------------------------------------------
;touche:     Fonction qui lit une fois le clavier et ressort avec (ACC)=0 si aucune
;            touche n'est enfoncee, sinon (ACC)= code ASCII de la touche enfonc閑.
;						 Sauvegarde les registres utilises sauf ACC.	 
;clavier:    Fonction qui attend qu'une touche soit enfoncee puis relachee. En 
;					   sortie, (R7)=code ASCII de la touche.
;						 Sauvegarde les registres utilises sauf R7.	
;att_5micro: Boucle d'attente pour ecriture-lecture sur P2. 
;						 Sauvegarde les registres utilises.
;att_10ms:   Boucle d'attente pour antirebond clavier.
;						 Sauvegarde les registres utilises.
;--------------------------------------------------------------------
$include (c8051f000.inc)					; Include register definition file.
$include (TP.inc)									; Include TP definition file.
PROG  			segment  	CODE
CONST 			segment  	CODE

PUBLIC   		clavier
PUBLIC   		touche
						RSEG			PROG
clavier:  	PUSH			PSW
						PUSH			ACC					
clav_0:			LCALL			att_10ms
						LCALL			touche
						CJNE			A,#0,clav_1
						SJMP			clav_0					
clav_1:			PUSH			ACC
clav_2:	  	LCALL			att_10ms
						LCALL			touche
						CJNE			A,#0,clav_2
						POP				ACC
						MOV				R7,A
						POP				ACC					
						POP				PSW
						RET

touche:			PUSH PSW
						
						MOV DPTR,#table
						PUSH DPL
						PUSH DPH
		debut:	CLR A
		        MOVC A,@A+DPTR
          	JNZ  ff
            SJMP fin
				ff:	MOV P2,A
						LCALL		att_5micro
						INC DPTR
						CLR A
						MOVC A,@A+DPTR
						CJNE A,P2,tour
						INC DPTR
						CLR A
						MOVC A,@A+DPTR
						SJMP fin
     tour:  INC DPTR
		 				INC DPTR
            SJMP debut

		 fin:   POP DPH
		 				POP DPL
		 				POP PSW
						RET

att_10ms: 	
        bcl:			MOV R2,#160
  Boucle:	 	
					  MOV R0,#240
			
					  DJNZ R0,$	
    					
					  DJNZ R2,Boucle
					 
          					
						RET

att_5micro:	MOV R0,#20
			
					  DJNZ R0,$	
    					
					 
					  					
						RET
						

					  rseg  CONST   
table:   	  DB  11101111B,11100111B,'*'
					  DB  11101111B,11101011B,'0'
					  DB 	11101111B,11101101B,'#'
					  DB 	11011111B,11010111B,'1'
					  DB 	11011111B,11011011B,'2'
				 	  DB 	11011111B,11011101B,'3'
			 		  DB  01111111B,01110111B,'4'
					  DB  01111111B,01111011B,'5'
					  DB  01111111B,01111101B,'6'
					  DB  10111111B,10110111B,'7'
					  DB  10111111B,10111011B,'8'
					  DB  10111111B,10111101B,'9'
					  DB  00000000B
; End of file.
END

⌨️ 快捷键说明

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