#include <stdio.h>
void main()
{
int a=0,n
clrscr()
for(n=1n<4n++)
{
if(n!=1)
a=5
for(a<=90a=a+5)
{
printf("%d ",a)
if(a==90)
break
}
for(a=85a>=0a=a-5)
{
printf("%d ",a)
if(a==0)
break
}
}
getch()
}
如果不是“天祥”的板子,这程序是不行的。-------------
如果是“天祥”的,那么可以试试下面的显示程序,我增加了两行消隐的语句,经过实验,可以正常显示“按一下键,数字递增”的效果。
void
display(a,
b)
{
num
=
t
a
=
num
/
10
b
=
num
%
10
dula
=
1
p0
=
table[a]
dula
=
0
wela
=
1
p0
=
0xfe
wela
=
0
delay(10)
wela
=
1
p0
=
0xff
wela
=
0
//关闭显示.
dula
=
1
p0
=
table[b]
dula
=
0
wela
=
1
p0
=
0xfd
wela
=
0
delay(10)
wela
=
1
p0
=
0xff
wela
=
0
//关闭显示.
}
硬件怎么接?加1是按键控制还是每秒自动递增#include<reg52.h>
sbit dula=P2^6
sbit wela=P2^7
#define uint unsigned int
#define uchar unsigned char
uchar b1,,b2,b3,b4
uint bb
void delay(uint i)//延时函数
{
uint j,,k
for(j=ij>0j--)
for(k=125k>0k--)
}
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00}//数码管代码表
void display(qian_c,bai_c,shi_c,ge_c)//4位显示程序
{
P0=table[qian_c] //显示千位 P0是数据输出口
dula=1
dula=0
P0=0xfb
wela=1
wela=0
delay(2)
P0=table[bai_c] //显示百位
dula=1
dula=0
P0=0xf7
wela=1
wela=0
delay(2)
P0=table[shi_c] //显示十位
dula=1
dula=0
P0=0xef
wela=1
wela=0
delay(2)
P0=table[ge_c] //显示个位
dula=1
dula=0
P0=0xdf
wela=1
wela=0
delay(2)
P0=0xff //显示完毕后关闭最后一位显示
wela=1
wela=0
}
void main()
{
while(1)
{
delay(10000);若数值变化太快,加大延时值
bb++
if(bb==10000)bb=0
b1=bb/1000%10
b2=bb/100%10
b3=bb/10%10
b4=bb%10
display(b1,b2,b3,b4)//或 display(b4,b3,b2,b1)
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)