欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 时评 > Proteus + Keil单片机仿真教程(六)多位LED数码管的动态显示

Proteus + Keil单片机仿真教程(六)多位LED数码管的动态显示

2024/10/24 9:29:10 来源:https://blog.csdn.net/c343340657c/article/details/140358906  浏览:    关键词:Proteus + Keil单片机仿真教程(六)多位LED数码管的动态显示

上一节我们通过锁存器和八个八位数码管实现了多个数码管的静态显示,这节主要讲解多位数码管的动态显示,所谓的动态显示就是对两个锁存器的控制。考虑一个问题,现在给WS位锁存器增加一个循环,让它从1111 11100111 1111会发生什么事情?话不多说,先上代码:

#include<reg52.h> #define DataPort P0 
sbit WS   = P2^0;//定义锁存使能端口 段锁存
sbit DS   = P2^1;//                 位锁存
WeiData[] =	{0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01} ;
void Delay1MS(unsigned int t);
main()
{unsigned char a;while(1){DataPort=WeiData[a]; DS=1;     //位锁存DS=0;DataPort=0xC0; WS=1;     //段锁存WS=0;Delay1MS(1000);a++;if(a==8){a=0;}}
}
//1m延时程序
void Delay1MS(unsigned int t){unsigned char i;while(--t != 0){for(i = 0; i < 125; i++);}
}

仿真效果

在这里插入图片描述
神奇的效果出现了,现在数字的位置动起来了,我们继续修改这个程序,把所有的数字数据也全部加进去,对DS段锁存器也进行相同操作,延时时间换成200ms,看看会出现什么效果?

源代码

#include<reg52.h> #define DataPort P0 
sbit WS   = P2^0;//定义锁存使能端口 段锁存
sbit DS   = P2^1;//                 位锁存
unsigned char code WeiData[] 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com