快捷搜索:  汽车  科技

51单片机单个数码管滚动显示数字(51单片机学习17-数码管动态显示)

51单片机单个数码管滚动显示数字(51单片机学习17-数码管动态显示)uchar smg_dm[]={0x3f 0x06 0x5B 0x4F 0x66 0x6D 0x7D 0x07 0x7F 0x6F 0x63 0x39 0x00}; //共阴数码管0-9 O C 全灭 段码表#define uchar unsigned char源程序:#include<reg52.h>#define uint unsigned int

这篇讲数码管动态显示 ,四位一体共阴数码管动态显示信息。

要求数码管动态显示1 2 3 4,动态显示就是一个一个显示过去,只是速度比较快,眼睛看上去像一起显示的样子。

仿真图:

51单片机单个数码管滚动显示数字(51单片机学习17-数码管动态显示)(1)

程序:

51单片机单个数码管滚动显示数字(51单片机学习17-数码管动态显示)(2)

源程序:

#include<reg52.h>

#define uint unsigned int

#define uchar unsigned char

uchar smg_dm[]={0x3f 0x06 0x5B 0x4F 0x66 0x6D 0x7D 0x07 0x7F 0x6F 0x63 0x39 0x00}; //共阴数码管0-9 O C 全灭 段码表

uchar smg_wm[]={0Xef 0Xdf 0xbf 0x7f}; //位选

uchar Display_buffer[4]={0 0 0 0}; //数码管显示缓存

void delay_ms(uint z); //延时子程序; //延时子程序

void main()

{

uint temp;

uchar i;

while(1)

{

temp=1234;

Display_buffer[0]=temp/1000;

Display_buffer[1]=temp00/100;

Display_buffer[2]=temp000/10;

Display_buffer[3]=temp;;

for(i=0;i<=3;i )

{

P2=smg_wm[i];//选位码

P1=smg_dm[Display_buffer[i]];//选段码

delay_ms(5);

}

}

}

void delay_ms(uint z) //延时子程序

{

uint x y;

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

for(y=110;y>0;y--);

}

仿真结果:

51单片机单个数码管滚动显示数字(51单片机学习17-数码管动态显示)(3)

猜您喜欢: