一个专注于计算机编程和硬件学习的博客主
2/12
2018

51学习之流水灯

这次我们讲解如何编写流水灯程序。

首先我们需要了解一下流水灯模块的电路图。
流水灯模块.png
通过电路图可以看到,流水灯是由8个LED灯组成

且每个小灯的正极都接在了vcc上(vcc为单片机上的5v供电口),负极一端都接在了P1的IO口上了

由此可以知道当IO口输出低电平时(输出为0)LED灯点亮
就比如 P1^0 = 0;

下面开始编写代码,代码尽量自己去敲而不是一味的去复制粘贴,这样可以给自己一个思考的时间,去理解每一句的意思

#include<reg52.h>
#include<intrins.h>                     //循环左移函数的头文件
void delayms(unsigned int k);           //对子函数的声明
void main()
{
    P1 = 0xfe;                     //也可以是二进制的11111110
    while(1)                       //把内部程序写成死循环,让它一直执行
    {
      delayms(500);               //延时500毫秒
      P1 = _crol_(P1,1);          //循环左移一位
    }
}
void delayms(unsigned int k)          //延时函数
{
    unsigned int i , j;
    for(i = 0;i < k;i++)
    for(j = 0;j < 125;j++)
}

这里需要补充一个内容,用Keil4编写完,需要编译生成一个hex文件。在主界面编译图标呢一行找到一个名为Target Options的图标点进去后找到Output呢一页,然后找到Create HEX file这个选项并打勾。

在代码中有一个子函数void delayms();这个函数会经常用到,一般称之为延时函数就是让51芯片做无用的加法操作来拖延时间,起到一个延时的作用。