本帖最后由 雷影少年 于 2012-6-25 19:39 编辑
这是程序:#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code seg[]={
0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,
0xc6,0xa1,0x86,0x8e}; 数码管数字代码
void delay(unsigned char); 延时程序
void main()
{
uint c,i;
while(1)
{
c=0;
i=70; 数码管刷新次数
while(i)
{
P2=0x0f; P2口高四位为高电平,驱动左侧4位数码管显示
delay(1000);
i--;
P0=seg[c]; 调用代码
c++;
if(c==10) 显示到后“9”清零
c=0;
}
}
}
void delay(uchar x)
{
uchar a,b;
for(a=500;a>0;a--)
for(b=x;b>0;b--);
}
下面是仿真结果:
我把程序烧写到开发板上是亮4个,为什么仿真就亮8个呢?
R0~R7是30,R8~R15是2K
是不是有什么参数设置的不正确,求指点
这是数码管默认参数
|