RT,我是初学者,学到数码管动态显示,我写了如下程序,按理说应该分辨不清楚的吧,而现在还是一个数一个数的蹦,蹦的也还不算慢,哪儿写错了嘛,虚心求教
#include<reg52.h>
#define uchar unsigned char
sbit duan=P2^6;
sbit wei=P2^7;
uchar code du[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07};
uchar code we[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
uchar num,num1;
void main()
{
TMOD=1;
TH0=(65536-1)/256;
TL0=(65536-1)%256;
TR0=1;
while(1)
{
if(TF0==1)
{
TF0=0;
num++;
}
if(num==1)
{
num=0;
wei=1;
P0=we[num1];
wei=0;
duan=1;
P0=du[num1];
duan=0;
num1++;
if(num1==8)
{num1=0;}
}
}
}
“ TH0=(65536-1)/256;
TL0=(65536-1)%256;”
这两句是多余的,65536和65535就差1有啥意义。而且除第一次以外,以后的都还是65536.
其余的没仔细看。
欢迎光临 (http://www.51hei.com/bbs/) | Powered by Discuz! X3.1 |