×
单片机 > 单片机程序设计 > 详情

C51入门1,跑马灯和LED实验

发布时间:2020-06-02 发布时间:
|
刚开始接触的是C51,自己以前写的程序,在自己的实验板上实现的,现在整理一下留做纪念哈!!!

实验一:一个LED灯闪烁

//一个LED灯闪烁实验
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
//头文件
#include
//端口设置
sbit P10=P1^0;

char code dx516[3] _at_ 0x003b;
//主函数
void main(void)
{   uint i;
    P10=0;
    while(1)
  {
  P10=~P10;    //取反
  for (i=0;i<20000;i++);//延时 
   }
}

实验二:跑马灯实验

//跑马灯实验
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long

#include
//端口设置
sbit P10=P1^0;
sbit P11=P1^1;
sbit P12=P1^2;
sbit P13=P1^3;
char code dx516[3] _at_ 0x003b;
//主函数
void main(void)
{   uint i;  
    while(1)
  {
  P13=1;P10=0;    //相邻端口取反
  for (i=0;i<40000;i++); //延时
  P10=1;P11=0;
  for (i=0;i<40000;i++);
  P11=1;P12=0;
  for (i=0;i<40000;i++);
  P12=1;P13=0;
  for (i=0;i<40000;i++);
   }
}

实验三:一个按键控制一个LED的亮和灭

//一个按键控制LED
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long

#include
//端口设置
sbit P10=P1^0;
sbit K1=P3^2;
sbit K2=P3^5;
char code dx516[3] _at_ 0x003b;
//主函数
void main(void)
{    
    while(1)
  {
    if (!K1) //按一下
  {
  P10=0;  //亮
  }
   if (!K2)  //再按一下
  {
  P10=1;  //灭
  }
   }
}

带有去抖动的程序:

//去抖动的按键控制LED灯实验
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long

#include
//端口设置
sbit P10=P1^0; //LED灯

sbit K1=P3^2; //按键
char code dx516[3] _at_ 0x003b;
//主函数
void main(void)
{   
   bit light; 
   uint i; 
   while(1)
  {
   if (!K1)     //确认按键按下
   {
  for (i=0;i<1000;i++);  //延时
   light=~light;   //灯取反
   while(!K1);    //去抖动的作用
   for (i=0;i<1000;i++); 
  }
  P10=light;
  }
 }

关键字:C51入门  跑马灯  LED实验 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
51单片机CO2检测显示程序解析