Programa de ensamblaje de LED de control de botón MCU
Tecnología de reconocimiento de botones multifunción de un solo botón 1. El interruptor de tarea experimental K1 está conectado al pin P3.2 y un diodo emisor de luz está conectado al puerto P0.0 del microcontrolador AT89S51. Cuando se enciende, el diodo emisor de luz está conectado al pin P1.0 de. L1 está encendido Cuando se presiona el interruptor K1, la luz se apaga, y cuando se presiona nuevamente, la luz se enciende, y así sucesivamente. 2. La conexión de hardware en la placa del sistema conecta el puerto P3.2 en el área "Sistema MCU" al puerto K1 en el área "Teclado independiente"; conecta P0.0 a L1. es que en nuestras vidas, es fácil para nosotros pasar el nombre de una persona como Zhang San, esa como Li Si y la otra como Wang Wu, eso es porque cada persona tiene un nombre diferente, y podemos reconocerlo rápidamente; De manera similar, para alguien que necesita pasar un nombre, los botones se utilizan para identificar cada función diferente. Identificamos cada módulo de función diferente con un número de identificación diferente. De esta manera, cada vez que se presiona un botón, el valor de identificación es diferente. , para que el microcontrolador pueda identificar fácilmente las identidades de diferentes funciones (2. Método de diseño De los requisitos anteriores, podemos ver que el encendido y apagado de L1 está controlado por el interruptor K1. Definimos diferentes números de identificación para el encendido y apagado de. Cuando L1 está encendido, ID = 0; cuando L1 está apagado, ID = 1; al dar diferentes números de ID respectivamente, podemos completar la tarea anterior 4. Programa de ensamblaje: ID EQU 30H K1 BIT P3.2 L1 BIT P0. 0 ORG 0000H CLR P1.7 MOV ID, #00H START: JB K1, REL; K1 no está cerrado, gire a LCALL DELAY10MS K1 está cerrado, retardo para eliminar la fluctuación JB K1, REL: luego juzgue INC ID MOV A, ID; CJNE A, #02, REL MOV ID, #00H REL: JNB K1, $ Espere a que aparezca el interruptor MOV A, ID CJNE A, #00H, IS0 Determine el ID correspondiente CLR L1: ID=0, el la luz se enciende la luz LCALL DELAY; retardo SJMP START IS0: CJNE A, #01H, STARTB L1 LCALL DELAY SJMP START DELAY10MS: MOV R6, #20 subrutina de retardo LOOP1: MOV R7, #248 DJNZ R7, $ DJNZ R6 , LOOP1 RET DELAY: MOV R5, #20; subrutina de retardo de 20 MS LOOP2: LCALL DELAY10MS DJNZ R5, LOOP2 RET END
Por favor acepte la respuesta y apóyeme