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

📄 servosmanual(1).asm

📁 imagenes de reconocimeito facial que serviran para procesar rostros
💻 ASM
字号:
FOTO1 EQU P2.0
FOTO2 EQU P2.1
FOTO3 EQU P2.2
FOTO4 EQU P2.3
PULSO EQU P3.0
PULSO1 EQU P3.1
DATOS EQU P2 
RS EQU P3.4 
E EQU P3.5	
RW EQU P3.6 
CONT1 EQU 18H
CONT2 EQU 19H

ORG 0
JMP MAIN

ORG 03H
JMP SERVO1

ORG 0BH
JMP PWM

ORG 13H
JMP SERVO2 
 
MAIN:      MOV SP, #70H
 			  MOV IE, #10000111B
 			  MOV TMOD, #00010001B
 			  SETB IT0
 			  SETB IT1
 			  MOV TH0, #0FFH
 			  MOV TL0, #9CH
 			   			  
 			  SETB E
           MOV TH1, #0C5h       ;Constante para 15ms
           MOV TL1, #68h       
           CLR RW            ;RW = 0
           CLR RS             ;RS = 0
           SETB TR1            
           JNB TF1, $		     ;Esperar 15ms
           CLR TR1

           SETB E
           MOV P0, #00111000b   ;Palabra de control 1
           CLR E
           NOP
           NOP						;esperar mas de 4.7u
           NOP

           SETB E
           MOV P0, #00110000b   ;Palabra de control 2
			  CLR E
			  SETB TR1            
			  JNB TF1, $		      ;esperar 15ms
			  CLR TR1

			  SETB E
			  MOV P0, #00110000b   ;Palabra de control 3
			  CLR E
			  NOP
			  NOP

           SETB E
           MOV P0, #00111000B  ;palabra con N y F
           CLR E
           NOP
           NOP

           SETB E
           MOV P0, #00001100B  ;Enciende LCD
           CLR E
           NOP
           NOP

           SETB E
           MOV P0, #00000001   ;Limpiar Pantalla
           CLR E
           NOP
           NOP

           SETB E
           MOV P0, #00000110b   ;Modo de Entrada
           CLR E
 

TRABAJA:   SETB RS			;RS = 1
           SETB E
           MOV P0,#' '   
           CALL ESC
           
           SETB RS
           MOV P0,#'M' 
           CALL ESC

           SETB RS
           MOV P0,#'O' 
           CALL ESC

           SETB RS
           MOV P0,#'D'	
           CALL ESC
 
           SETB RS
           MOV P0,#'E'  
           CALL ESC

           SETB RS
           MOV P0,#' '   
           CALL ESC
 
           SETB RS
           MOV P0,#'O'   
           CALL ESC

           SETB RS
           MOV P0,#'P'   
           CALL ESC

           SETB RS
           MOV P0,#'E'   
           CALL ESC

           SETB RS
           MOV P0,#'R'   
           CALL ESC

           SETB RS
           MOV P0,#'A'   
           CALL ESC

           SETB RS
			  MOV P0,#'T'   
			  CALL ESC

           SETB RS
           MOV P0,#'I'   
			  CALL ESC 

           SETB RS
           MOV P0,#'O'   
           CALL ESC

           SETB RS
           MOV P0,#'N'   
           CALL ESC

           SETB RS
           MOV P0,#'?'   
           CALL ESC

           SETB RS
           MOV P0,#'?'   
           CALL ESC


           NOP
           NOP 
           JMP ACA
 		
ESC:       CLR E          
           NOP
           NOP
           SETB E
           MOV R3,#30
           DJNZ R3,$
           RET
           
ACA:		  MOV R4, #50
 			  MOV R6, #23
 			  MOV 21H, #23
 			  MOV 25H, #23
 			  CLR 20H.6
 			  CLR 20H.0
 			  SETB TR0
 			  SETB PULSO
 			  JNB  20H.0, $
 			  SETB PULSO1
 			  MOV R6, #23
 			  MOV 23H, #23
 			  SETB TR0
 			  SETB 20H.6
 			  JB 20H.6, $
		     JMP AUTO
		  
OTRA:  	  ; FALTA PONER EN EL DISPLAY AUTOMATICO
			  CALL TECLADO
			  CJNE R7, #12, ACA1
			  JMP MANUAL
ACA1:		  SETB 20H.1
           CLR 20H.6
			  MOV A, DATOS
           ANL A, #0FH
           MOV 22H, A
           CJNE A, #15, VAS
           JMP OTRA
VAS:       ANL A, #03H
           CJNE A, #3, MOVH 
REV:       MOV A, 22H
           ANL A, #0CH
           MOV 25H, A 
           CJNE A, #12, MOVV 
           JMP OTRA
MOVH:      SETB IE0
           CLR 20H.1
           JNB 20H.1 , $
           JMP REV         
MOVV:      SETB IE1
           SETB 20H.6
           JB 20H.6 , $
           JMP OTRA
           
AUTO:      
           CALL TECLADO
           CJNE R7, #11, MANUAL       
           JMP OTRA

MANUAL:    CJNE R7, #12, AUTO
			  ;FALTA PONER EN EL DIPLAY MANUAL
			  
           
VERTI:     CALL TECLADO           
           CJNE R7, #11, VASACA
YEAH:      JMP OTRA
VASACA:    CJNE R7, #13, HORIZON; PREGUNTAMO SI NOS MOVEMOS VERTICALMENTE PPRIMERO 
DIGV:      CALL TECLADO
           CJNE R7, #11, VASACA1
           JMP OTRA
VASACA1:   CJNE R7, #14, VASACA2
           JMP DIGH
VASACA2:   MOV A, R7
           CLR C
           SUBB A, #0AH
           JNC DIGV
           MOV 16H, R7
DAS:       CALL TECLADO
           CJNE R7, #11, VASACA3
           JMP OTRA
VASACA3:   CJNE R7, #14, VASACA4
           JMP DIGH
VASACA4:   CJNE R7, #13, VASACA23
           JMP DIGV
VASACA23:  CJNE R7, #15, SADA
           JMP CORRECTOV
SADA:      JMP DAS
ALLA:      JMP VERTI


HORIZON:   CJNE R7, #11, VASACA5
           JMP YEAH
VASACA5:   CJNE R7, #14, VERTI; PREGUNTAMOS SI NOS MOVEMOS HORIZONTALMETE PRIMERO           
DIGH:      CALL TECLADO
           CJNE R7, #11, VASACA6
           JMP YEAH
VASACA6:   CJNE R7, #13, VASACA7
           JMP DIGV
VASACA7:   MOV A, R7
           CLR C
           SUBB A, #0AH
           JNC DIGH
           MOV 17H, R7
VAS34:     CALL TECLADO
           CJNE R7, #11, VASACA8
           JMP YEAH
VASACA8:   CJNE R7, #13, VASACA9
           JMP DIGV
VASACA9:   CJNE R7, #14, VASACA11
           JMP DIGH
VASACA11:  CJNE R7, #15, VASACA10
           JMP CORRECTOH
VASACA10:  JMP VAS34
           
CORRECTOV: CLR C
           MOV A, #23
           SUBB A, 16H
           MOV R6, A
           MOV 25H, R6
           SETB TR0
           SETB 20H.6
           JB 20H.6 , $
           JMP ALLA
  

CORRECTOH: MOV B, #2
           MOV A, 17H
           MUL AB
           ADD A, #3
           MOV R6, A
           MOV 25H, R6
           SETB TR0
           CLR 20H.1
           JNB 20H.1 , $
           JMP ALLA

Teclado: Mov R5,#4                       ;contador de filas
         Mov R2,#0fEh                    ;Codigo de barrido de filas
         Mov R7,#03                      ;Valor mayor de la 1ra fila

otra1:   Mov P1,R2                       ; sacar codigo
         Mov A,P1                        ; Leer columnas
         ORL A,#0fh  
         CJNE A, #0ffh,ver_tecla         ;Si hubo tecla oprimida
         Mov A, R2                       ;No hubo tecla oprimida
         RL A                            ;rotar codigo para siguiente fila
         Mov R2,A
         Mov  A, R7
         ADD A,#4                        ; valor mayor de la fila siguiente
         Mov R7,A
         DJNZ R5, otra1                   ; repetir para fila siguiente
 
         Mov R7, #0ffh                   ; Devuelve FFh  si no hay tecla oprimida
         RET

ver_tecla:Call RETARDO10               ;eliminar rebote
          Mov A, P1
          ORL A,#0Fh
          CJNE A, #0ffh, sigue           ;la tecla sigue oprimida
          Mov R7,#0ffh                   ; no hay tecla oprimida
          RET

sigue:    RLC A                          ;Encontrar valor de la tecla oprimida
          JNC soltar
          DEC R7
          JMP sigue

soltar:  Mov A, P1                       ; Esperar que se suelte la tecla
         ORL A,#0fh
         CJNE A,#0ffh, soltar
         Call RETARDO10
         RET
     
RETARDO10: MOV CONT1, #25;retardo 10ms
			  CIC1: MOV CONT2, #200
	    	  CIC2: DJNZ CONT2, CIC2
	   	  		  DJNZ CONT1, CIC1
			        RET

PWM:		  MOV TH0, #0FFH
 			  MOV TL0, #9CH
 			  CJNE R6, #0, BAJO
 			  JMP BAJO1
BAJO:  	  DJNZ R6, SALIR
 			  JNB 20H.6, CIS 
 			  CPL PULSO1
 			  JMP SER
CIS:		  CPL PULSO
SER:		  CLR C
 			  MOV A, #200
 			  SUBB A, 25H
 			  MOV R1, A
BAJO1:	  DJNZ R1, SALIR
           MOV R6, 25H
           JNB 20H.6, CIS1 
 			  CPL PULSO1
 			  JMP SER1
CIS1:      CPL PULSO
SER1:      DJNZ R4, SALIR
           MOV R4, #50
           CLR TR0
           JB 20H.6, DE
           SETB 20H.0
           SETB 20H.1
           JMP SALIR
DE:        CLR 20H.6
SALIR:     RETI           
 			  
 			  
SERVO1:	  MOV A, 21H
			  CJNE A, #23, COM
           MOV R6, #13
           MOV 25H, #13
           SETB TR0
           JMP SALIR2
COM:       CJNE A, #13, COM2
           JNB FOTO2, COM1
           MOV R6, #23
           MOV 25H, #23
           SETB TR0
           JMP SALIR2
COM1:      MOV R6, #3
           MOV 25H, #3
           SETB TR0
           JMP SALIR2
COM2:      MOV R6, #13
           MOV 25H, #13
           SETB TR0
SALIR2:    MOV  21H, 25H   
           RETI
           

SERVO2:    MOV A, 23H
			  CJNE A, #23, COM3
           JNB FOTO4,  SALIR1
           MOV R6, #19
           MOV 25H, #19
           SETB TR0
           JMP SALIR1
COM3:      CJNE A, #19, COM5
           JNB FOTO3, COM4
           MOV R6, #13
           MOV 25H, #13
           SETB TR0
           JMP SALIR1
COM4:      MOV R6, #23
           MOV 25H, #23
           SETB TR0
           JMP SALIR1
COM5:      JNB FOTO4, SALIR
			  MOV R6, #19
           MOV 25H, #19
           SETB TR0
SALIR1:    MOV  23H, 25H
           RETI


END

⌨️ 快捷键说明

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