Directorio de artículos
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:
2. Cree un nuevo archivo, presione la tecla de atajo "Ctrl + S" para nombrarlo led.cy guárdelo, los pasos son los siguientes:
3. Escriba el programa en lenguaje C en un archivo .c
#include "reg51.h"
sbit led=P2^0;
void main()
{
while(1)
{
led=0;
}
}
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.
5. Haga clic en los botones de la barra de herramientas para generar el archivo de destino.
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
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
Haga clic en el botón Ejecutar en la esquina inferior derecha del software, el LED rojo se encenderá
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--); //延时
}
}
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; //回到起始位置
}
}
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;
}
}
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--);
}
}
}