
8个回答
展开全部
用10个8段数码管动态扫描显示的:
#include
unsigned
char
const
dofly[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//
显示段码值0123456789
unsigned
char
code
seg[]={0,1,2,3,4,5,6,7,8,9};//分别对应相应的数码管点亮,即位码
/*------------------------------------------------
延时子程序
------------------------------------------------*/
void
delay(unsigned
int
cnt)
{
while(--cnt);
}
/*------------------------------------------------
主函数
------------------------------------------------*/
main()
{
unsigned
char
i;
while(1)
{
P0=dofly[i];//取显示数据,段码
P2=seg[i];
//取位码
delay(20000);
//扫描间隙延时,时间太长会闪烁,太短会造成重影,自己调试
i++;
if(10==i)
//检测10位扫描完全?
i=0;
}
}
#include
unsigned
char
const
dofly[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//
显示段码值0123456789
unsigned
char
code
seg[]={0,1,2,3,4,5,6,7,8,9};//分别对应相应的数码管点亮,即位码
/*------------------------------------------------
延时子程序
------------------------------------------------*/
void
delay(unsigned
int
cnt)
{
while(--cnt);
}
/*------------------------------------------------
主函数
------------------------------------------------*/
main()
{
unsigned
char
i;
while(1)
{
P0=dofly[i];//取显示数据,段码
P2=seg[i];
//取位码
delay(20000);
//扫描间隙延时,时间太长会闪烁,太短会造成重影,自己调试
i++;
if(10==i)
//检测10位扫描完全?
i=0;
}
}

2025-08-18 广告
深圳市金创图电子设备有限公司,联系电话:18928465613。金创图是一家集研发、生产、营销、服务为一体的高新技术企业。致力于生产:管装烧录机,编带烧录机,托盘烧录机,通用型烧录机、自动一体化烧录机等;设备产品具有高速率、高刚性、高性能、...
点击进入详情页
本回答由小谢提供
展开全部
用10个8段数码管动态扫描显示的:
#include
unsigned
char
const
dofly[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//
显示段码值0123456789
unsigned
char
code
seg[]={0,1,2,3,4,5,6,7,8,9};//分别对应相应的数码管点亮,即位码
/*------------------------------------------------
延时子程序
------------------------------------------------*/
void
delay(unsigned
int
cnt)
{
while(--cnt);
}
/*------------------------------------------------
主函数
------------------------------------------------*/
main()
{
unsigned
char
i;
while(1)
{
P0=dofly[i];//取显示数据,段码
P2=seg[i];
//取位码
delay(20000);
//扫描间隙延时,时间太长会闪烁,太短会造成重影,自己调试
i++;
if(10==i)
//检测10位扫描完全?
i=0;
}
}
#include
unsigned
char
const
dofly[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//
显示段码值0123456789
unsigned
char
code
seg[]={0,1,2,3,4,5,6,7,8,9};//分别对应相应的数码管点亮,即位码
/*------------------------------------------------
延时子程序
------------------------------------------------*/
void
delay(unsigned
int
cnt)
{
while(--cnt);
}
/*------------------------------------------------
主函数
------------------------------------------------*/
main()
{
unsigned
char
i;
while(1)
{
P0=dofly[i];//取显示数据,段码
P2=seg[i];
//取位码
delay(20000);
//扫描间隙延时,时间太长会闪烁,太短会造成重影,自己调试
i++;
if(10==i)
//检测10位扫描完全?
i=0;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit C1=P2^7;
sbit B1=P2^6;
sbit A1=P2^5;
uchar code wei[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
uchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,
0x82,0xf8,0x80,0x90};//7段数码管段码表共阳
void display(uchar duan,uchar wei);
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=121;y>0;y--);
}
/**************************************************************/
void display(uchar duan,uchar we)
{
P0=tab[duan];
A1=1;B1=1;C1=1; 开锁存器可以,不要的。
A1=0;B1=1;C1=1;
P0=wei[we];
}
/************************************************************************/
void main(void)
{
while(1)
{
unsigned long a;
uchar b;
for(a=0;a<99999999;a++)
for(b=0;b<1;b++)
{
display(a/10000000,0);
delay(200);
display((a%10000000)/1000000,1);
delay(200);
display((a%1000000)/100000,2);
delay(200);
display((a%100000)/10000,3);
delay(200);
display((a%10000)/1000,4);
delay(200);
display((a%1000)/100,5);
delay(200);
display((a%100)/10,6);
delay(200);
display(a%10,7) ;
delay(200) ;
}
}
}
这是动态显示的。
#define uchar unsigned char
#define uint unsigned int
sbit C1=P2^7;
sbit B1=P2^6;
sbit A1=P2^5;
uchar code wei[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
uchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,
0x82,0xf8,0x80,0x90};//7段数码管段码表共阳
void display(uchar duan,uchar wei);
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=121;y>0;y--);
}
/**************************************************************/
void display(uchar duan,uchar we)
{
P0=tab[duan];
A1=1;B1=1;C1=1; 开锁存器可以,不要的。
A1=0;B1=1;C1=1;
P0=wei[we];
}
/************************************************************************/
void main(void)
{
while(1)
{
unsigned long a;
uchar b;
for(a=0;a<99999999;a++)
for(b=0;b<1;b++)
{
display(a/10000000,0);
delay(200);
display((a%10000000)/1000000,1);
delay(200);
display((a%1000000)/100000,2);
delay(200);
display((a%100000)/10000,3);
delay(200);
display((a%10000)/1000,4);
delay(200);
display((a%1000)/100,5);
delay(200);
display((a%100)/10,6);
delay(200);
display(a%10,7) ;
delay(200) ;
}
}
}
这是动态显示的。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include
#define
uchar
unsigned
char
#define
uint
unsigned
int
sbit
C1=P2^7;
sbit
B1=P2^6;
sbit
A1=P2^5;
uchar
code
wei[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
uchar
code
tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,
0x82,0xf8,0x80,0x90};//7段数码管段码表共阳
void
display(uchar
duan,uchar
wei);
void
delay(uint
z)
{
uint
x,y;
for(x=z;x>0;x--)
for(y=121;y>0;y--);
}
/**************************************************************/
void
display(uchar
duan,uchar
we)
{
P0=tab[duan];
A1=1;B1=1;C1=1;
开锁存器可以,不要的。
A1=0;B1=1;C1=1;
P0=wei[we];
}
/************************************************************************/
void
main(void)
{
while(1)
{
unsigned
long
a;
uchar
b;
for(a=0;a<99999999;a++)
for(b=0;b<1;b++)
{
display(a/10000000,0);
delay(200);
display((a%10000000)/1000000,1);
delay(200);
display((a%1000000)/100000,2);
delay(200);
display((a%100000)/10000,3);
delay(200);
display((a%10000)/1000,4);
delay(200);
display((a%1000)/100,5);
delay(200);
display((a%100)/10,6);
delay(200);
display(a%10,7)
;
delay(200)
;
}
}
}
这是动态显示的。
#define
uchar
unsigned
char
#define
uint
unsigned
int
sbit
C1=P2^7;
sbit
B1=P2^6;
sbit
A1=P2^5;
uchar
code
wei[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
uchar
code
tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,
0x82,0xf8,0x80,0x90};//7段数码管段码表共阳
void
display(uchar
duan,uchar
wei);
void
delay(uint
z)
{
uint
x,y;
for(x=z;x>0;x--)
for(y=121;y>0;y--);
}
/**************************************************************/
void
display(uchar
duan,uchar
we)
{
P0=tab[duan];
A1=1;B1=1;C1=1;
开锁存器可以,不要的。
A1=0;B1=1;C1=1;
P0=wei[we];
}
/************************************************************************/
void
main(void)
{
while(1)
{
unsigned
long
a;
uchar
b;
for(a=0;a<99999999;a++)
for(b=0;b<1;b++)
{
display(a/10000000,0);
delay(200);
display((a%10000000)/1000000,1);
delay(200);
display((a%1000000)/100000,2);
delay(200);
display((a%100000)/10000,3);
delay(200);
display((a%10000)/1000,4);
delay(200);
display((a%1000)/100,5);
delay(200);
display((a%100)/10,6);
delay(200);
display(a%10,7)
;
delay(200)
;
}
}
}
这是动态显示的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用10个8段数码管动态扫描显示的:
#include<reg51.h>
unsigned char const dofly[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};// 显示段码值0123456789
unsigned char code seg[]={0,1,2,3,4,5,6,7,8,9};//分别对应相应的数码管点亮,即位码
/*------------------------------------------------
延时子程序
------------------------------------------------*/
void delay(unsigned int cnt)
{
while(--cnt);
}
/*------------------------------------------------
主函数
------------------------------------------------*/
main()
{
unsigned char i;
while(1)
{
P0=dofly[i];//取显示数据,段码
P2=seg[i]; //取位码
delay(20000); //扫描间隙延时,时间太长会闪烁,太短会造成重影,自己调试
i++;
if(10==i) //检测10位扫描完全?
i=0;
}
}
#include<reg51.h>
unsigned char const dofly[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};// 显示段码值0123456789
unsigned char code seg[]={0,1,2,3,4,5,6,7,8,9};//分别对应相应的数码管点亮,即位码
/*------------------------------------------------
延时子程序
------------------------------------------------*/
void delay(unsigned int cnt)
{
while(--cnt);
}
/*------------------------------------------------
主函数
------------------------------------------------*/
main()
{
unsigned char i;
while(1)
{
P0=dofly[i];//取显示数据,段码
P2=seg[i]; //取位码
delay(20000); //扫描间隙延时,时间太长会闪烁,太短会造成重影,自己调试
i++;
if(10==i) //检测10位扫描完全?
i=0;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询