单片机编程初学者的小问题 帮忙看看吧 在线等

8位数码管共阴极接法本来想让这8个一起显示的但是运行的时候是一个一个显示的应该怎么改啊#include<reg52.h>#include<math.h>voiddelay... 8位数码管共阴极接法 本来想让这8个一起显示的 但是运行的时候是一个一个显示的 应该怎么改啊

#include <reg52.h>
#include <math.h>
void delay(void)
{
unsigned int i,ms=200;
while(ms--)
for(i=0;i<120;i++);
}
void main()
{
unsigned int k;
unsigned a[8];
a[0]=0x7f; //8
a[1]=0x07; //7
a[2]=0x5b; //2
a[3]=0x77; //A
a[4]=0x71; //F
a[5]=0x7D; //6
a[6]=0x4f; //3
a[7]=0x6d; //5
P0=0x00;
P1=0x3f;
delay();
for(k=0;k<8;k++)
{
P0=0xff-pow(2,k);
P1=a[k];
delay();
}
展开
 我来答
论宇之新宇宙观
2015-09-23 · 中国人自己的宇宙观,新世纪新宇宙观!
论宇之新宇宙观
采纳数:514 获赞数:2456

向TA提问 私信TA
展开全部
看程序应该不是延时问题。
先改成这样测试一下看现象如何。
while(1)

{
for(k=0;k<8;k++)
{
P0=0xff-pow(2,k);
P1=a[k];
delay();
}
}
更多追问追答
追问
加上while函数还是会一个一个显示
追答
单片机时钟频率是多少?
void delay(void)
{
unsigned int i,ms=200;
while(ms--)
for(i=0;i<120;i++);
}
按道理,这样的延时应该在毫秒级别,不可能会一个一个显示哦。
显示的数据正常吗?
你是仿真还是在实际电路上跑程序?
加上WHILE(1)后,再将延时也减小些观察现象。
蜻蜓点水bai236
2015-09-23 · TA获得超过2387个赞
知道大有可为答主
回答量:2653
采纳率:66%
帮助的人:1277万
展开全部
延时减小就能看到效果了
追问
延迟减小只会变得看不清了
追答
每一个显示完之后,所有变成黑的消影
代码懒得看了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式