51单片机流水灯编程


本文旨在为初入单片机领域的新手提供基础知识的入门指导,帮助他们更好地理解和掌握单片机技术。我们将以ATMEL公司的AT89C52单片机为例,使用PROTEUS和KEIL软件进行讲解。本文将提供原理图和在KEIL环境下的注释,以期为即将接触单片机的人提供帮助。若有任何错误或疑问,欢迎在评论区留言,与我们交流。

单片机轻松入门之二:流水灯的实现

由于AT89C52的P0口内部没有上拉电阻,因此在作为输入或输出使用时,需要外接上拉电阻,一般推荐阻值为10k左右。

以下是相关程序代码:

  1. include<reg52.h> ——引入头文件

  2. define uchar unsigned char

  3. define uint unsigned int ——定义宏

  4. uchar code table[]={0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7f}; ——定义数据表

  5. void delay(uchar x) ——延时子程序

    {

    for(x; x > 0; x--)

    for(uchar i = 110; i > 0; i--);

    }

  6. void main() ——主程序

    {

    while(1)

    {

  7. for(uchar a = 0; a < 8; a++) //控制八个LED灯依次亮起

  8. {

  9. P0 = table[a]; //P0口输出数据表中的数据,点亮对应的LED灯

  10. delay(100); //延时约100ms

  11. }

  12. }

  13. }

仿真结果如附图所示,具体操作请参照实际环境。

往期回顾:

  1. (点击查看) 前几期的精彩内容回顾。

  2. (点击查看并附上动态操作图) 更多实用教程等你来发现。