51 aprendizaje de microordenador de un solo chip (1) Realización de iluminación LED, luz intermitente y lámpara de agua corriente

Uno, Keil crea el proyecto

1. Abra el software keil, haga clic en la opción Proyecto en la barra de herramientas y seleccione nuevo Proyecto uVision para crear un nuevo proyecto y guardarlo.Los pasos se muestran en la siguiente figura:

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

2. Cree un nuevo archivo, presione la tecla de atajo "Ctrl + S" para nombrarlo led.cy guárdelo, los pasos son los siguientes:

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí
3. Escriba el programa en lenguaje C en un archivo .c

#include "reg51.h"    

sbit led=P2^0; 

void main()
{
    
    
	while(1)	
		{
    
    
			led=0; 
		}       
}

Inserte la descripción de la imagen aquí
4. Haga clic en "salida" en el cuadro de selección "Opción para el destino" en la barra de herramientas y marque "Crear archivo hexadecimal" para asegurarse de que el programa fuente que escribe se convierta en un archivo .hex para operaciones posteriores.

Inserte la descripción de la imagen aquí
5. Haga clic en los botones de la barra de herramientas para generar el archivo de destino.
Inserte la descripción de la imagen aquí

El programa se ejecuta correctamente y el archivo learning_002.hex se generará en la carpeta Objeto de la ruta relativa.

2. Proteus construye un circuito de simulación virtual

Inserte la descripción de la imagen aquí

Tres, el LED se enciende

Después de construir el circuito, haga clic en el control principal AT89C51 e importe el archivo learning_002.hex generado por el programa de lenguaje C en keil arriba

Inserte la descripción de la imagen aquí

Haga clic en el botón Ejecutar en la esquina inferior derecha del software, el LED rojo se encenderá
Inserte la descripción de la imagen aquí

Cuarto, el LED parpadea

El código de lenguaje C se cambia de la siguiente manera:

#include "reg51.h"    

unsigned int x;
sbit led=P2^0; 

void main()
{
    
    
	x=50000;
	while(1)	
		{
    
    
			led=0; //亮
			while(x--);  //延时
			led=1; //灭
			while(x--);	 //延时
		}       
}

Inserte la descripción de la imagen aquí

Cinco, realización de la lámpara de agua

1. Lámpara de agua (método de función de biblioteca)

#include <reg51.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char

uchar temp;
int x;

void main()
{
    
    
	x=50000;
	temp = 0x01;
	P1 = temp;
	while(x--);   //延时
	while(1)
	{
    
    
		temp = _crol_(temp,1);  //调用库函数
		P1=temp;
		while(x--);
	}
}

2. Lámpara de agua corriente (método de desplazamiento a la izquierda)

#include <reg51.h>

unsigned int x;
//shift to the left water lamp
void main()
{
    
    
	x=50000;
	P1=0x01;
	while(1)
	{
    
    
		while(x--);    //delay time
		P1=P1<<1;      //左移
		if(P1==0x00)
			P1=0x01;   //回到起始位置
	}
}

Inserte la descripción de la imagen aquí

3. Lámpara de agua corriente (método de desplazamiento a la derecha)

#include <reg51.h>

unsigned int x;
//shift to the right water lamp
void main()
{
    
    
	x=50000;
	P1=0x80;
	while(1)
	{
    
    
		while(x--);
		P1=P1>>1;
		if(P1==0x00)
			P1=0x80;
	}

}

Inserte la descripción de la imagen aquí

4. Luces de marcha (método de índice de matriz)

#include <reg51.h>
#define uint unsigned int 
#define uchar unsigned char
	
uchar table[]={
    
    0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
uchar p;
int x;

void main()
{
    
    
	x=50000;
	while(1)
		{
    
    
		  for(p=0;p<8;p++)
		  {
    
    
		  	P1=table[p];
		   	while(x--);
		  }
		  for(p=6;p>=1;p--)
		  {
    
    
			P1=table[p];
			while(x--);
		  }
		}
}

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/fyfugoyfa/article/details/108595180
Recomendado
Clasificación