欢迎光临散文网 会员登陆 & 注册

51单片机100例实例之20例

2021-03-01 23:50 作者:技术流阿宅  | 我要投稿

//项目20:数码管显示拨码开关编码

//项目再创作者:科技小宅神

//说明:系统显示拨码开关所设置的编码000~255

//资源来自网络,由小宅神收集,整理,注释,讲解,说明,修正。

仿真图:

代码:

#include <reg51.h>

#include <intrins.h>//c51内部移位函数

#define uchar unsigned char

#define uint unsigned int

//共阴极数码管显示数组

uchar code DSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

//待显示的数据缓冲区,显示3位

uchar DSY_Buffer[3]={0,0,0};

//1毫秒延时函数

void DelayMS(uint x)

{

  uchar i;

  while(x--)

  {

        for(i=0;i<120;i++);

   }

}


//主程序

void main()

{

    uchar i,m,Num;//定义3个局部变量

    P0 = 0xff;//P0初始化

    P2 = 0xff;//P2初始化

    while(1)//死循环

    {

        m = 0xfe;// 1111 1110

        Num = P1;//读取拨码开关的值

        //存放拨码值(16进制数转换成3位表示的十进制数)

        DSY_Buffer[0] = Num/100;

        DSY_Buffer[1] = Num/10%10;

        DSY_Buffer[2] = Num%10;

        for(i=0;i<3;i++)//刷新显示在数码管上

        {

            m = _crol_(m,1);//循环左移

            P2 = m;

            P0 = DSY_CODE[DSY_Buffer[i]];

            DelayMS(10);

        }

    }

}

祝大家学(白)习(嫖)愉快!喜欢可以关注,三连up主一波!

51单片机100例实例之20例的评论 (共 条)

分享到微博请遵守国家法律