No.90456 作者:qtbk 邮件:qixih@hotmail.com ID:49618 登陆:2次 文章数:2篇 最后登陆IP:219.82.143.175 最后登陆:2006/3/27 21:54:53 注册:2006/3/22 10:51:54 财富:107 发帖时间:2006/3/22 10:54:55 发贴者IP:60.176.171.53 标题:qtbk:大家帮我看一下下面一段代码有什么问题?谢谢 摘要:No.90456大家帮我看一下下面一段代码有什么问题?谢谢 #include "reg51.h" #define char unsigned char // char code dis_7[11]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xFF}; /*共阳LED段码表“0”“1”“2”“3”“4”“5”“6”“7”“8”“9”“不亮”*/ char code scan_con[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//列扫描控制字 char data timedata[6]={0x00,0x00,0x00,0x00,0x00,0x00}; //计时单元数据初值,共6个 char data dis[8]={0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x00};//显示单元数据,共6个数据 char data con1s=0x00,con04s=0x00,con=0x00; //秒定时用 sbit key0=P1^0; sbit key1=P1^1; sbit key2=P2^2; // /***********************/ //1ms 延时// /***********************/ delay1ms(int t) { int i,j; for(i=0;i <t;i++) for(j=0;j <120;j++) ; } /***********************/ //键盘扫描子// /***********************/ keyscan() { EA=0; if(key0==0) { delay1ms(10); while(key0==0); if(dis[con]==10) {dis[7]=dis[con];dis[con]=dis[6];dis[6]=dis[7];} con++;TR0=0;ET0=0;TR1=1;ET1=1; if(con> =6) {con=0;TR1=0;ET1=0;TR0=1;ET1=1;} // if(con!=0) { if(key1==0) { delay1ms(10); while(key1==0); timedata[con]++; if(timedata[con]> =10) {timedata[con]=0;} dis[con]=timedata[con];dis[6]=0x0a; } } // if(con!=0) { if(key2==0) { delay1ms(10); while(key2==0); if(timedata[con]==0) {timedata[con]=0x09;} else{timedata[con]--;} dis[con]=timedata[con];dis[6]=0x0a; } } EA=1; } // /****************/ //显示// /****************/ scan() { char k; for(k=0;k <6;k++) { P0=dis_7[dis[k]];P2=scan_con[k];delay1ms(1);P2=0xff; } } /******************/ //初始化// /******************/ clearmen(); { int i; for(i=0;i <6;i++) { dis[i]=timedata[i];} TH0=0x3C;TL0=0xB0; //50ms定时初值(T0计时用) TH1=0x3C;TL1=0xB0; //50ms定时初值(T1计时用) TMOD=0x11;ET0=1;ET1=1;TR1=0;TR0=1;EA=1; } /******************/ //主函数// /******************/ ......
>>返回讨论的主题
|