数码管流水显示“HELP“

#include<REGX52.h>

unsigned char table[]={0x76,0x79,0x38,0x73};/*定义数码管显示图像,依次为H,E,L,P*/
void Delay(unsigned char xms)/*定义延时函数,输入的数字为多少毫秒*/
{

while(xms--)
{
unsigned char i,j;
i=2;
j=239;
do
{
while(--j);
}while(--i);
}
}

void choosesmg(unsigned char Location,led)
{
switch(Location)/*switch选择点亮哪个数码管*/
{
case 0:
P2_4=1;P2_3=1;P2_2=1;break;
case 1:
P2_4=1;P2_3=1;P2_2=0;break;
case 2:
P2_4=1;P2_3=0;P2_2=1;break;
case 3:
P2_4=1;P2_3=0;P2_2=0;break;
case 4:
P2_4=0;P2_3=1;P2_2=1;break;
case 5:
P2_4=0;P2_3=1;P2_2=0;break;
case 6:
P2_4=0;P2_3=0;P2_2=1;break;
case 7:
P2_4=0;P2_3=0;P2_2=0;break;
}
P0=table[led];/*选择点亮的数码管显示相应图像*/


}

void main()
{
while(1)
{
unsigned char b;
unsigned char a;


for(b=0;b<5;b++)/*共有两个4位数码管,help图像整体向右运动5次为一个总循环,故for 5次*/
{
for(a=0;a<60;a++)/*刷新若干次,使help能够停留足够时间*/
{
choosesmg(b,0);
Delay(1);
choosesmg(b+1,1);
Delay(1);
choosesmg(b+2,2);
Delay(1);
choosesmg(b+3,3);

Delay(1);
}

}

}
}
数码管动态扫描显示原理(多个数码管同时显示,人的视觉上):数码管实际只能一次点亮一个数码管,但是由于人的视觉有暂留效应,故只要
把不同数码管之间延时一定时间,人在视觉上就会认为多个数码管同时显示。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值