Red de conocimientos turísticos - Información de alquiler - El lenguaje MCU C utiliza dos botones para controlar la lámpara de agua con patrón de 8 bits. P1.0 está conectado al botón k1, P1.1 está conectado al botón k2 y el puerto P0 de 8 bits está conectado a 8 luces. diodos emisores.

El lenguaje MCU C utiliza dos botones para controlar la lámpara de agua con patrón de 8 bits. P1.0 está conectado al botón k1, P1.1 está conectado al botón k2 y el puerto P0 de 8 bits está conectado a 8 luces. diodos emisores.

El programa de montaje es el siguiente:

; Patrón de luces de marcha (8 LED se encienden cíclicamente en varias formas)

; Función: luces de marcha (8 El El diodo emisor de luz se enciende cíclicamente en varias formas a intervalos de 1S)

ORG H ;Pseudoinstrucción, que especifica que el programa se almacenará a partir de H

LJMP MAIN ;Instrucción de salto , salto de programa Ejecutar a MAIN

ORG H ;Pseudo instrucción, especifica el programa para comenzar a almacenar desde H

MAIN: MO SP, #60H ;Asignar un valor inicial al puntero de pila

MO P1,#0FFH ;Asignar valor al puerto P1

MO DPTR,#TABLE;Consultar tabla

LIGHT: MO R4,#42 ;Establecer el número de ciclos

LOOP: MO A,#42 ;Asigna un valor inicial a A

SUBB A,R4 ;Resta el valor de A del valor de R4 y almacena el resulta en A

MOC A ,@A+DPTR ;Asigna el valor en TABLA correspondiente al valor de A+DPTR a A

MO P1,A ;Asigna el valor de A al puerto P1

LCALL DEL1S ; Llamar a la subrutina de retardo 1S

DJNZ R4,LOOP Determinar si R4 es 0, saltar si no es 0, ejecutar secuencialmente si es 0

LJMP LIGHT ;Saltar instrucción, Saltar a LIGHT y continuar ejecución

;Subrutina de retardo 1S (oscilador de cristal de 11.MHz, error 0 microsegundos)

DEL1S: MO R5, # H

DL1S0: MO R6, #0A4H

DL1S1: MO R7, #H

DJNZ R7, $

DJNZ R6, DL1S1

DJNZ R5, DL1S0

RET

TABLE: ;Definir datos de la tabla

DB 0FFH ;Destruir todo

DB 0FEH 0FDH 0FBH

DB 07EH 0BDH 0DBH 0E7H 0E7H 0DBH 0BDH 07EH ; Ambos lados se juntan y luego se separan

DB 07EH 03CH H H H H 03CH 07EH ;

DB H ;Completamente brillante

END ;Comando de finalización del programa

El programa en lenguaje C es el siguiente:

/* Este experimento es una lámpara de flujo de patrón (8 diodos emisores de luz circulan a través de los puntos de varias maneras), la función es una luz de agua corriente de patrón (8 diodos emisores de luz se iluminan de varias maneras en intervalos de 1S) */

#include//Contiene el archivo reg.52

# define uint

unsigned int//Definición de macro

#define uchar unsigned char//Definición de macro

void delay(uint z);//Declaración de la función de retardo

uint a;//Definir variables para el bucle

tabla de códigos uchar[]={

0xff,//Destruir todo

0xfe,0xfd,0xfb,0xf7, 0xef,0xdf,0xbf,0x7f,//iluminar uno por uno

0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,//superponer uno por uno

0x80 ,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff,//Disminuye uno por uno

0x7e,0xbd,0xdb,0xe7,0xe7,0xdb,0xbd,0x7e,//Los dos los lados se juntan y luego se separan

0x7e,0x3c,0x18,0x00,0x00,0x18,0x3c,0x7e,//Disminuye después de superponer en ambos lados

0x00,//Totalmente brillante

;/ /?

/*A?

a?*/

void in()//in

{

a=0;//

mientras(1)//mientras

{

P1=tabla [a];//?aable

demora();//1S a ;//a?

if(a==42)//?a2

a=0;/ /

}

}

retraso nulo(uint z)//1ms?F{

uint x,y;

for(x=z;x