¿Cuál es el propósito de la programación de teclados electrónicos?
Tenga en cuenta la frecuencia (Hz) del código espectral simple (valor T)
Baja 1do 262 63628 th 0 = F7 HTL 0 = 24h.
# 1DO # 277 63731 TH0 = F8H TL0 = F3H
Baja 2RE 294 63835 TH0=F9H TL0=5BH.
# 2RE # 311 63928 TH0 = F9H TL0 = B8H
●3m 330 64021th 0 = faht l0 = 15h.
Baja 4fa 349 64103 t0 = faht l0 = 67h.
# 4FA # 370 64185 TH0 = FAH TL0 = B9H
Baja 5SO 392 64260 TH0=FBH TL0=04H.
# 5SO # 415 64331 TH0 = FBH TL0 = 4BH
Baja 6LA 440 64400 TH0=FBH TL0=90H.
#6 466 64463 TH0=FBH TL0=CFH
Bajo 7SI 494 64524 TH0=FCH TL0=0CH.
中1do 523 64580 th 0 = fchtl 0 = 44h.
# 1DO # 554 64633 TH0 = FCH TL0 = 79H
TH0=FCH TL0=ACH.
#2RE# 622 64732 TH0=FCH TL0=DCH
En 3M 659 64777 TH0=FDH TL0=09H.
Medio 4FA 698 64820 TH0=FDH TL0=34H.
#4FA# 740 64860 TH0=FDH TL0=5CH
M 5SO 784 64898 TH0=FDH TL0=82H.
#5SO#831 64934 TH0=FDH TL0=A6H
6LA 880 64968 TH0=FDH TL0=C8H.
#6 932 64994 TH0=FDH TL0=E2H
7SI 988 65030 TH0=FEH TL0=06H.
Altura 1do 1046 65058 th 0 = fehtl 0 = 22h.
# 1DO # 1109 65085 TH0 = FEH TL0 = 3DH
Altura 2re 1175110a 0 = fehtl 0 = 56h.
# 2RE # 1245 65134 TH0 = FEH TL0 = 6EH
Altura 3m 131865157 th 0 = fehtl 0 = 85h.
Altura 4fa 1397178 th 0 = fehtl 0 = 9ah.
# 4FA # 1480 65198 TH0 = FEH TL0 = AEH
Altura 5so 156865217a 0 = fehtl 0 = c 1h.
# 5SO # 1661 65235 TH0 = FEH TL0 = D3H
Altura 6la 176065252 th 0 = fehtl 0 = e4h
# 6 1865 65268 TH0 = FEH TL0 = F4H
高7si 196765283 t0 = ffhtl 0 = 03h.
El resto están representados por TH0=FFH y TL0=FFH.
Apéndice 2: Información relacionada con la pantalla LCD
Dos filas de direcciones de la pantalla LCD: (Ambas son cuentas de 16 bits)
0 1 2 3 4 5 6 7 8 9 A B C D E F
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
Cuando el formato del comando requiere configurar el puntero de dirección, el octavo bit es 1, seguido de la dirección, es decir AC0~AC6, que son las direcciones correspondientes a la tabla anterior.
Apéndice 3: Procedimiento experimental:
El bit RS P2.0 define la etiqueta del puerto LCD.
bit P2.1 RW
bit P2.2
;****************** **************************
El 0º EQU·24H T0 dos variables temporales
<; p>T0TL EQU 23HORG 0000H
Inicio LJMP
ORG 000BH
LJMP T0INT
ORG 0100H
****************************************** * *
;* * * * * * * * * * * * * * * * * * * * Inicialización de LCD* * * * * * * * * * * *
Inicial:
MOV SP, #70H
MOV P0, #01H; cls
Llamada habilitada
MOV P0, #38H8 bit , se muestran 2 líneas
Llamada habilitada
MOV P0, #0CH en pantalla, cerrar cursor
Llamada habilitada
MOV P0, # 06H la dirección de conteo aumenta en 1, se desplaza automáticamente hacia la derecha.
Llamada habilitada
************************************ ** *********
;Guía de consejos
;********************* ******* *******************
MOV P0, #80H
Llamada habilitada
MOV·DPTR , Tabla 0; Escribe la primera fila de datos
Llamar WRITE1
MOV P0, # 00010000 b; Mueve el cursor dos posiciones hacia la izquierda.
Habilitar llamada
MOV P0, #00010000B
Habilitar llamada
Llamar DEL0
Administrador LJMP p>
p>
; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *.
Activar:
CLR RS
CLR RW
SETB·E
Llame DEL0
CLR E
Remojado en agua para suavizar
; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *.
ESCRIBIR1:
MOV R1, #00H Buscador de tablas, desde encabezado a pie de página
A1:
MOV A, R1
MOVC A, @A+DPTR
Llamar registro 2
p>INC R1
CJNE A, #00H, A 1; continuar antes del final de la cuerda
Remojar en agua para suavizar
Escribir 2:
MOV P0, A; escribe datos directamente en la pantalla LCD.
SETB
CLR RW
SETB·E
Llamar DEL0
CLR E
Remojado en agua para suavizar
MOV·R4
C0: MOV R5, #020H
C1: DJNZ R5, C1
C0 DJNZ R4
Remojado en agua para suavizar
;************************ ********** *************
Tabla 0: DB "Bienvenido aquí", 00H
; * * * * * * * * * * * * * * * * * *Inicialización de memoria* * * * * * * * * * * * * * * *
Letra inicial:
MOV R3, #08H
MOV R0, #30H
M1:
MOV @R0, #00H
INC R0
DJNZ R3, M1
Remojado en agua para suavizar
* * * * * * * * * * * * * * * * * * * * * * * Botón de selección para reproducir ocho tonos* * * * * * * * * * * *
Principal: MOV SP, pila de inicialización # 80H
MOV TMOD, # 11H; temporizador 0 modo de trabajo 0, temporizador 1 modo de trabajo 0.
SETB Electronic Arts
SETB ET0; Contador 0 permitido
SETB et 1; Contador 1 permitido
Inicio: SETB p 3.7 ; Apagar timbre
Temporizador CLR TR0 no permitido
Escaneo:;Escaneo de teclado
MOV A, P1
CJNE A, #0FFH , SU_KEY determina que el teclado está presionado, salta a SU_KEY, si no, continúa escaneando.
no se proporciona de otro modo (para) a menos que se especifique lo contrario
Escaneo LJMP
SU_KEY:
SU_KEY1:
JB P1 .0, SU_KEY2 Ir a si no se presiona la tecla 1.
MOV DPH, #0FCH
MOV·DPL, No. 44H
SJMP Drama
SU_KEY2:
JB P1.1, SU_KEY3 Si no se pulsa la segunda tecla, girar.
MOV DPH, #0FCH
MOV·DPL
SJMP Drama
SU_KEY3:
JB P1. 2. SU_KEY4 Si no se pulsa la tercera tecla, girar.
MOV DPH, #0FDH
MOV DPL, #09H
SJMP Drama
SU_KEY4:
JB P1.3, SU_KEY5 Si no se pulsa la cuarta tecla girar.
MOV DPH, #0FDH
MOV·DPL, No. 34H
Drama SJMP
SU_KEY5:
JB P1.4, SU_KEY6 Si no se pulsa la quinta tecla girar.
MOV DPH, #0FDH
MOV DPL, No. 82H
Drama SJMP
SU_KEY6:
JB P1.5, SU_KEY7 Si no se pulsa la sexta tecla, girar.
MOV DPH, #0FDH
MOV DPL, #0C8H
SJMP Drama
SU_KEY7:
JB P1.6, SU_KEY8 Si no se pulsa la séptima tecla girar.
MOV DPH, #0FEH
MOV·DPL, #06H
SJMP Drama
SU_KEY8:
JB P1.7, tecla 1; si no se pulsa la octava tecla, girar.
MOV DPH, #0FEH
MOV DPL, #22H
SJMP Drama
Reproducir:
MOV T0TH, DPH; caracteres de alto orden
DPL MOV T0TL; caracteres de bajo almacenamiento
MOV TH0, t0
MOV TL0, T0TL
SETB TR0; temporizador de inicio 0
MOV R2, # 01B; 1/4 de tiempo
DJNZ R2, reproducción
Retraso de LCALL
Juez SJMP
Juez:
JB P2.4, inicie; si no hay ningún botón, continúe escaneando; de lo contrario, comience a reproducir música.
; * * * * * * * * * * * * * * * * * * * * * * Seleccionar botón para reproducir música * * * * * * * * * * * * * * * *
TECLA1:
JB P2.5, TECLA2 presione la primera tecla (P2.5) para reproducir música 1.
MOV R2, #00H
LCALL MODD; visualización del número de canción
MOV DPTR, #MU_TAB1
AJMP Music
Tecla 2:
JB P2.6, TECLA 3 presione la segunda tecla (P2.6) para reproducir música 2.
MOV R2, #01H
LCALL MODD; visualización del número de canción
MOV DPTR, #MU_TAB2
AJMP Music
Tecla 3:
JB P2.7, NEXT_2; presione la tercera tecla (P2.7) para reproducir música 3.
MOV R2, #02H
LCALL MODD; visualización del número de canción
MOV DPTR, #MU_TAB3
AJMP Music
NEXT _ 2: LJMP START; Regresar
Música:
MOV TMOD, #01H
MOV IE, #82H permite interrupción T0
MOV R7, #00H
Bucle:
CLR A
MOVC A, @A+DPTR tabla de búsqueda de código
MOV R1, A; los ocho bits superiores del temporizador se almacenan en R1.
Empresa DPTR
Push DPH; proteger el sitio
Push DPL
GECI1:
JB P2. 5, GECI2 muestra la letra 1 cuando se presiona la primera tecla (P2.5).
MOV DPTR, #GE1
AJMP GECI
GECI2:
JB P2.6, GECI3 presione la segunda tecla (P2 . 6) Mostrar letras 2.
MOV DPTR, #GE2
AJMP GECI
GECI3:
JB P2.7, salta Chu presiona tercera tecla (P2; .7) Mostrar letras 3.
MOV DPTR, #GE3
AJMP GECI
Salir: Inicio LJMP
GECI:
Mi nombre es Chuqing
MOV P0, posición de visualización # 0C0H
Llamada habilitada
Xianshi 1: MOV A, R7 Música Tabla de búsqueda de visualización de Pinyin chino
MOVC A, @A+DPTR
Registro de llamada 2
INC R7
CJNE A, #00H, XIANSHI1
MOV P0, #00010000 b; Mueve el cursor una posición hacia la izquierda.
Habilitar llamada
MOV P0, #00010000 b; Mueve el cursor una posición hacia la izquierda.
Llamada habilitada
Pop·DPL
Pop·DPH
CLR A
MOVC A, @A +DPTR
MOV R0, A; los ocho bits inferiores de la memoria del temporizador R0.
ORL A, R1
JZ siguiente 0; todos los ceros de fase o resultado son restos.
MOV A, R0
ANL A, R1
CJNE A, #0FFH, siguiente; el resultado de la fase es 0FFH, lo que significa que la música termina.
MOV P0, #01H; cls
Llamada habilitada
LJMP habilitado; reproducción desde el principio
Siguiente: MOV T0TH, r 1 ; valor inicial del tiempo de carga
MOV TH0, t0
MOV T0TL, R0
MOV TL0, T0TL
SETB TR0; temporizador
SJMP NEXT1
siguiente 0: CLR TR0; apagar el temporizador
NEXT1: CLR A
DPTR
MOVC A, @ A+DPTR; comprobar constante de retardo
MOV·R2
LOOP1:
Llamar a D200
DJNZ R2 , bucle 1; tiempo de retardo de control
Empresa DPTR
bucle AJMP
D200: MOV R3, programa de retardo # 81H
D200B; : MOV A, #0FFH
D200A: 1 de diciembre
JNZ D200A
Diciembre R3
CJNE R3, #00H, D200B
Remojar en agua para suavizar
Chu Qing: MOV A, #00100000B
MOV P0, # 0C0H será la segunda fila de La primera posición está configurada a 0.
LCALL enable
LCALL WRITE2
MOV A, #00100000 b; Establezca la segunda posición de la segunda fila en 0.
MOV P0, #0C1H
LCALL enable
LCALL WRITE2
MOV A, #00100000 b; cambiar la segunda línea La tercera La posición se establece en 0.
MOV P0, #0C2H
LCALL enable
LCALL WRITE2
MOV A, #00100000 b; cambiar la segunda línea La cuarta La posición se establece en 0.
MOV P0, #0C3H
LCALL enable
LCALL WRITE2
MOV A, #00100000 b; cambiar la segunda línea La quinta La posición se establece en 0.
MOV P0, #0C4H
LCALL enable
LCALL WRITE2
MOV A, #00100000 b; cambiar la segunda línea La sexta La posición se establece en 0.
MOV P0, #0C5H
LCALL enable
LCALL WRITE2
MOV A, #00100000 b; cambiar la segunda línea La séptima La posición se establece en 0.
MOV P0, #0C6H
LCALL habilitado
LCALL WRITE2 establece la tercera posición de la segunda fila en 0.
; El proceso equivalente anterior es el siguiente
; GECI: MOV R3, número de ciclo de control # 00H
; ; MOV A, #00100000 b; Establecer espacio
; Empujar uno
; > ;MOV P0,A
;Bang
;R4 Corporation
;DEC R3 Número de ciclo de control
;CJNE R3, # 00H, primero claro; después de contar diez veces, se producirá la transferencia.
****************************************** * ********
;Temporizador 0 interrumpir subrutina, música temporizada
;****************** * ********************************
T0INT:;Interrumpir subrutina de servicio
MOV TH0, t0
MOV TL0, T0TL
Salida inversa CPL P3.7, música de demostración
Reti
******************************************
Pantalla
************************************ ******
MODD:
MOV P0, #8EH
LCALL habilitado
R2 MOV
MOV·DPTR #Tabla 2
MOVC A, @A+DPTR
LCALL WRITE2
Remojar en agua para suavizarlo
Tabla 2:DB 31H , 32H, 33H
GE1: db 'nuevo', 00h, 'año', 00h, 'bueno', 00h, 'ya', 00h, 'nuevo', 00h, 'año', 00h, 'Bueno', 00h, 'Ya', 00h
db 'Zhu', 00h, '福', 00h, '大', 00h, 'A', 00h, '信', 00h, ' año', 00h, 'bueno', 00h
GE2: DB 'Liang', 00H, 'Zhi', 00H, 'Viejo', 00H, 'Hu', 00H, 'Liang'', 00H , 'recto', 00H, 'viejo', 00H, 'Hu', 00H, 'pistola', 00H, 'tengo', 00H, 'rápido', 00H
DB 'pao ' , 00H, 'obtener', 00H, 'rápido', 00H, 'fácil', 00H, 'heterosexual', 00H, 'hermoso', 00H, 'tener', 00H, 'cara', 00H, 'bien', 00H, 'fácil ', 00H, 'recto', 00H
DB '美', 00h, 'tener', 00h, 'dos', 00h, 'muchos', 00h, 'verdadero', 00h, 'impar' , 00h, 'extraño', 00h, 'verdadero', 00h, 'impar', 00H, 'extraño', 00H
GE3: DB 'wo', 00h, 'ai', 00h,'bei ',00h,'京',00h,'tian',00h,'an',00h,'men',00h,'tian',00h,'an',00h
; * * * * * * * * * * * * * * * * * * *Subrutina de retardo* * * * * * * * * * * * * *
Retraso: MOV 30H , # 100; Si espera mucho tiempo, el teclado temblará.
D1: MOV R5, #200
D2: DJNZ R5, D2
DJNZ 30H, D1
Remojar en agua para hacer es suave
p>
;* * * * * * * * * * * * * * * *Feliz año nuevo* * * * * * * * * * * * * * * * * * * * * * * p>
MU_TAB1: DB 0FEH, 25H, 04H, 0FEH, 25H, 04H
DB 0FEH, 25H, 06H, 0FDH, 80H, 06H
DB 0FEH, 84H, 04H, 0FEH, 84H, 04H
DB 0FEH, 84H, 06H, 0FEH, 25H, 06H
DB 0FEH, 25H, 04H, 0FEH , 84H, 04H
DB 0FEH, 0C0H, 04H, 0FEH, 84H, 04H
DB 0FEH, 98H, 04H, 0FEH, 84H, 04H
DB 0FEH, 57H, 06H
DB 0FFH, 0FFH
; * * * * * * * * * * * * * * *Erhu* * * * * * * * * * * * * * * * * * * * * * * * * *
MU_TAB2: DB 0FCH, 44H, 06H, 0FCH, 0ACH, 06H, 0FDH, 09H, 06H, 0FCH, 44H, 06H
DB 0FCH, 44H, 06H, 0FCH, 0ACH, 06H, 0FDH, 09H, 06H, 0FCH, 44H, 06H
DB 0FDH, 09H, 06H, 0FDH, 34H, 06H , 0FDH, 0A6H, 06H
p>DB 0FDH, 09H, 06H, 0FDH, 34H, 06H, 0FDH, 0A6H, 06H
DB 0FBH, 04H, 04H, 0FDH, 0C8H , 04H, 0FBH, 04H, 04H, 0FDH , 34H, 04H
DB 0FDH, 09H, 04H, 0FCH, 44H, 04H, 0FBH, 04H, 04H, 0FDH, 0C8H, 04H
DB 0FBH, 04H, 04H, 0FDH , 34H, 04H, 0FDH, 09H, 04H, 0FCH, 44H, 04H
DB 0FCH, 44H, 06H, 0FDH, 0A6H, 06H, 0FCH, 44H, 06H
DB 0FCH , 44H, 06H, 0FDH, 0A6H, 06H, 0FCH, 44H, 06H
DB 0FFH, 0FFH
; * * * * * * * * * * *Me encanta la Plaza de Tiananmen en Beijing* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
MU_TAB3: DB 0FDH, 82H, 06H, 0FEH, 22H, 04H, 0FDH, 82H, 04H, 0FDH, 34H, 04H
DB 0FDH, 09H, 04H, 0FCH, 0ACH, 04H, 0FCH, 44H, 06H
DB 0FFH, 0FFH, 0FFH, 0FFH
Fin