📄 数码管移动.c
字号:
//数码管移动,动态移动显示dofly
#include <reg52.h>
unsigned char const dofly[]={0,0,0,0,0,0,0,0, //不显示
0x6E,0x38,0x71,0x5C,0x5E, //DOFLY共阴值,显示时候取反
0,0,0,0,0,0,0,0,}; //dofly 码值
code unsigned char table[]={0,1,2,3,4,5,6,7}; //8位动态扫描值
//延时子程序
void delay(unsigned int cnt)
{
while(--cnt);
}
//主程序
void main()
{
unsigned char i,j; //定义内部变量
unsigned char a;
a=13; //移动13次,数码管个数8+显示字符个数5=13
while(1)
{
for(j=0;j<8;j++) //移动字符时间
{
for(i=0;i<8;i++) //动态扫描8位数码管
{
P0=dofly[i+a]; //取显示的码值
P2=table[7-i]; //取显示的位置
delay(300); //扫描延时大时会闪烁,小时会降低亮度并重影。
}
P2=0xFF; //有效的消除重影
}
a--;
if(a==0)
a=13; //重新循环
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -