想利用简单循环设计一个秒表,求大神指导

2019-07-15 18:04发布

本帖最后由 YOUWOTA 于 2014-12-7 19:10 编辑

#include<reg51.h>
#define uint unsigned int
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
void delayms(uint);
unsigned char code table[]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
//0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F的显示码
void main()
{
uint i=0;
for(i=0;i<60;i++)

{ if(i<10)
         {         
         LSA=0;LSB=0;LSC=0;P0=table;delayms(1000);
         }
   else
     {
        
         LSA=0;LSB=0;LSC=0;P0=table[i%10];
          LSA=1;LSB=0;LSC=0;P0=table[i/10]; delayms(10);
          delayms(1000);
         }
}
}
                                 
void delayms(uint a)
{ int x,y;
   for(x=a;x>0;x--)
           for(y=110;y>0;y--);

}
这个程序个位和十位显示乱,怎么延时?



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
jheng
1楼-- · 2019-07-15 20:15
unsigned char code table[]这数组怎么没用到么,还能显示???话说延时不是用内部定时器的么。。。
顔丹扉
2楼-- · 2019-07-15 21:09
你的主程序有好几个有问题呢  当i<10的时候你的P0应该等于table[i]吧    我感觉你的思路有点乱   你在好好看看视频     (仅是个人见解)
YOUWOTA
3楼-- · 2019-07-15 23:51
顔丹扉 发表于 2014-12-8 10:09
你的主程序有好几个有问题呢  当i

是table【i】,写错了
YOUWOTA
4楼-- · 2019-07-16 00:49
 精彩回答 2  元偷偷看……

一周热门 更多>