当前位置:   article > 正文

基于51单片机的LED数码管动态显示_51单片机的p0口送出数码管的段码,p2口进行位控制,编程实现8个动态连接的数码管分

51单片机的p0口送出数码管的段码,p2口进行位控制,编程实现8个动态连接的数码管分

单片机原理及应用》第二版  例5-7

单片机控制8只LED数码管,分别滚动显示单个数字1~8。程序运行后,单片机控制左边第1个LED数码管显示1,其他不显示,延时之后,控制左边第2个LED数码管显示1,其他不显示,直至控制第8个LED数码管显示1,其他不显示,反复循环上述过程。

如下图所示,P0口输出段码,P2口输出位控码,Proteus原理图中数码管型号为7SEG-MPX8-CA-BLUE。

 参考代码:

#include <REGX52.H>
#include<intrins.h>    //包含循环移位函数的头文件

#define uchar unsigned char
#define uint unsigned int
    
uchar code dis_code[]={0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80};   //共阳极LED数码管段码表1~8


void delay(uint t)   //延时函数
{
    uchar i;
    while(t--)for(i=0;i<200;i++);

}

void main()
{
    uchar i,j=0x80;
    while(1)//循环点亮
    {
        for(i=0;i<8;i++)
        {
            j=_crol_(j,1);      //循环移位函数_crol_(j,1)将j循环左移1位
            P0=dis_code[i];     //P0口输出段码
            P2=j;               //P1口输出位控码
            delay(180);         //延时,控制每位显示的时间
        }
    }    
}    

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/408759
推荐阅读
相关标签
  

闽ICP备14008679号