标题:
单片机数码管显示想加上可以停留的功能
[打印本页]
作者:
新手上坟
时间:
2021-6-30 16:33
标题:
单片机数码管显示想加上可以停留的功能
在 8 个数码管上显示 0---9 这十个数字,且从左到右动态显示,然后我想加上可以停留的功能,比如显示完1以后,1不会消失,然后显示2
单片机源程序如下:
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code dis_code[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88};//共阳数码
void delay(uint y)
{
uchar i;
while(y--) for(i=0;i<110;i++);
}void main()
{
uchar i,j=0x80;
while(1)
{
for(i=0;i<8;i++)
{
P2=0xff;
j=_crol_(j,1);
P0=dis_code[ i];
P2=j;
delay(500);
}
}}
该加上啥?
作者:
wulin
时间:
2021-6-30 16:33
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar dis_code[17]={//共阳数码管段码"0~f "
0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,
0xc6,0xa1,0x86,0x8e,0x00};
void delay(uint y)
{
uchar i;
while(y--)
for(i=0;i<110;i++);
}
void main()
{
uchar i,j;
uint k;
while(1)
{
P2&=0x00;
P0=dis_code[i];
P2|=(0x01<<i);
delay(1);
i=++i%8;
k++;
if(k>=1000)
{
k=0;
dis_code[16]=dis_code[0];
for(j=0;j<16;j++)
dis_code[j]=dis_code[j+1];
}
}
}
复制代码
作者:
hoodieboi
时间:
2021-6-30 22:30
8个数码管显示10个数 请问显示到7数码管全满后想要达到怎样的效果
作者:
hoodieboi
时间:
2021-6-30 22:48
for循环里应该是<10
作者:
suyang
时间:
2021-6-30 23:03
你不能用移位指令,移位指令只将1移动,移到后又变成0
作者:
lkc8210
时间:
2021-7-1 02:05
有delay(500);这个动作就只能显示一个位或多位同数(即1,22,333...)
作者:
yzwzfyz
时间:
2021-7-1 14:53
1、把8个LED显示当着是一幅画面。分一下组:你的动态显示过程一共有几个画面组成。
2、写好每个画面的显示程序。
3、每间隔一段时间切换一个画面。
这样考虑问题,你可以任意变化显示的内容,题目的问题也就跟着解决了。
作者:
新手上坟
时间:
2021-7-1 19:59
谢谢大家,我已经知道问题所在了,由于第一次问问题,没有组织好语言,对此很抱歉
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1