帮忙看下我写这个程序有什么不对的地方
时间:10-02
整理:3721RD
点击:
现在的情况是下载到单片机上就第一个数码管显示一个零,然后就停在那里
单片机原理图在这里http://wenku.baidu.com/view/0fc085f5f90f76c661371a1e.html
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit en=P3^3; //锁存器E口
sbit dula=P3^7;//锁存器dula口
uchar tt,shu,bai,shi,ge;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71
};
void display(bai,shi,ge);//数码管显示程序
void ys(uint z); //延时程序
void init();//程序初始化
void main(){
init();//程序初始化
en=0;
dula=1;
while(1){
if(tt==20){
tt=0;
shu++;
if(shu==100)
shu=0;
bai=shu/100;
shi=shu%100/10;
ge=shu%10;
}
display(bai,shi,ge);//显示变量shu
}
}
void init(){ //程序初始化
shu=0;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
}
void ys(uint z){ //延时程序
uint y,x;
for(x=100;x>0;x++)
for(y=z;y>0;y++);
}
void timer() interrupt 1 //计数中断
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
tt++;
}
void display(bai,shi,ge){ //数码管显示
P2=0xef;
P1=table[bai]; //第一个数码管显示第一位变量bai
ys(5);
P2=0xdf;
P1=table[shi]; //第二个数码管显示第二位变量shi
ys(5);
P2=0xbf;
P1=table[ge]; //第三个数码管显示第三位变量ge
ys(5);
}
你不写注释,我们看是一件很蛋疼的事
谢谢提醒,已经添加注释,如果那里还有不对的地方,请进一步说明
sbuf=led code[i];
while(!=xx);
xx=0;
p=位选;
i++;
void ys(uint z){ //延时程序
uint y,x;
for(x=100;x>0;x++) ?
for(y=z;y>0;y++);?
}
这延时程序怎么写的,上面两句写错了
++--哎,居然放这么低级的错误
非常感谢小编
同时感谢每位回复过的人
void ys(uint z){ //延时程序
uint y,x;
for(x=100;x>0;x++)
for(y=z;y>0;y++); 死循环了。。
}
PCB打样找华强 http://www.hqpcb.com/3 样板2天出货