while flag_谁知道这个程序哪错了提示while(!flag)那里有错误

原问题:谁知道这个程序哪错了提示while(!flag)那里有错误
分类:编程开发 > 最后更新时间:【2016-12-12 13:12:08】
问题补充:

#include <reg51.h>#define uchar unsigned char#define uint unsigned intsbit dula1=P2^6;sbit dula2=P2^7;sbit keyboard=P2^5;sbit key=P2^4;sbit key1=P3^6;sbit ledctrl=P2^1;sbit led=P2^0;sbit music=P1^2;sbit DS=P3^7;uint temp;uchar flag1,spiderman,flag,xman,antman;uchar x,y,j,k,i;uchar tem,time,pp;unsigned char code table[]={~0x3f,~0x06,~0x5b,~0x4f,~0x66,~0x6d,~0x7d,~0x07,~0x7f, ~0x6f,~0x77,~0x7c,~0x39,~0x5e,~0x79,~0x71};void delay(uint count);void Initial();void show(uchar a,uchar b);void displaytim(uchar tim);void readrom();void dsreset(void);bit tmpreadbit(void);void display(uint temp);uchar tmpread(void);void tmpwritebyte(uchar dat);void tmpchange(void);uint tmp();void delayx(unsigned char i);void delayy(unsigned int k);void dsreset(void){ uint i; DS=0; i=103; while(i>0)i--; DS=1; i=4; while(i>0)i--;}void tmpwritebyte(uchar dat){ uint i; uchar j; bit testb; for(j=1;j<=8;j++) { testb=dat&0x01; dat=dat>>1; if(testb) { DS=0; i++;i++; DS=1; i=8;while(i>0)i--; } else { DS=0; i=8;while(i>0)i--; DS=1; i++;i++; } }}

void tmpchange(void){ dsreset(); delay(1); tmpwritebyte(0xcc); tmpwritebyte(0x44);}uint tmp(){ float tt; uchar a,b; dsreset(); delay(1); tmpwritebyte(0xcc); tmpwritebyte(0xbe); a=tmpread(); b=tmpread(); temp=b; temp<<=8; temp=temp|a; tt=temp*0.0625; temp=tt*10+0.5; return temp;}bit tmpreadbit(void){ uint i; bit dat; DS=0;i++; DS=1;i++;i++; dat=DS; i=8;while(i>0)i--; return (dat);}uchar tmpdead(void){ uchar i,j,dat; dat=0; for(i=1;i<=8;i++) { j=tmpreadbit(); dat=(j<<7)|(dat>>1); } return(dat); }while(!flag) {

if(key==0) { delayx(10); if(key==0) { if(tem==20) { tem=30; } else if(tem==30) { tem=50; } else if(tem==50) { tem=20; } } } x=tem/10; y=tem%10; show(x,y); if(key1==0) { flag=1; }}

while(flag){ A: tmpchange(); for(a=10;a>0;a--) { display(tmp()); } if(xman==0) { delayy(50); xman=1; goto A; } if(temp>=tem*10) { led=0; spiderman=1; } else { led=1; }}

while(spiderman){ if(key==0) { delayx(10); if(key==0); { if(time==10) { time=30; } else if(time==30) { time=60; } else if(time==60) { time=10; } } } displaytim(time);}

if(key1==0){antman=1;}while(antman){ displaytim(time); if(pp==20) { pp=0; time--; } if(time==0) { music=0; displaytim(0); while(1) { if(pp==20) { pp=0; led=~led; } } }}

最佳答案

你的程序应该是少了主函数了,在

while(!flag)

前面加

void main()
{
uchar a; //你程序中用到了,但没有定义

然后在程序最后加

}

就可以编译了

最佳答案由网友  whoami1978  提供
公告: 为响应国家净网行动,部分内容已经删除,感谢网友理解。
1

分享到:

其他回答

暂无其它回答!

    推荐