Red de conocimiento informático - Descarga de software - ¿Cuál es el propósito de la programación de teclados electrónicos?

¿Cuál es el propósito de la programación de teclados electrónicos?

Apéndice 1: Tabla de frecuencias musicales del oscilador de cristal de 12M.

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 23H

ORG 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>

; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *.

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* * * * * * * * * * * * * * * * * * * * * * *

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