标题: 译码器控制数码管 为什么这个程序,无法把ledbuff[]的值赋给P0? [打印本页]

作者: 欧阳小美    时间: 2017-3-23 09:56
标题: 译码器控制数码管 为什么这个程序,无法把ledbuff[]的值赋给P0?

为什么这个程序,无法把ledbuff[]的值赋给P0?

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
uchar ledbuff[8]={
0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00};
sbit SA=P1^0;
sbit SB=P1^1;
sbit SC=P1^2;
uint time=0;
ulong sec=0;
uchar i=0;                                
void main()
{        TMOD=0x01;
    TH0=(65536-1000)/256;
    TL0=(65536-1000)%256;
    TR0=1;
        while(1)
         {
          if(TF0==1)
            {
                         TF0=0;
                        TH0=(65536-2000)/256;
            TL0=(65536-2000)%256;
                        time++;
                        if(time>=1000)
                          {
                                   time=0;
                                sec++;
                                ledbuff[0]=table[sec%10];
                                ledbuff[1]=table[sec/10%10];
                                ledbuff[2]=table[sec/100%10];
                                ledbuff[3]=table[sec/1000%10];
                                ledbuff[4]=table[sec/10000%10];
                                ledbuff[5]=table[sec/100000%10];
                                ledbuff[6]=table[sec/1000000%10];
                                ledbuff[7]=table[sec/10000000%10];
                          }
                         switch(i)
                                {case 0:SC=1;SB=1;SA=1;P0=ledbuff[0];break;
                                 case 1:SC=1;SB=1;SA=0;P0=ledbuff[1];break;
                                 case 2:SC=1;SB=0;SA=1;P0=ledbuff[2];break;
                                 case 3:SC=1;SB=0;SA=0;P0=ledbuff[3];break;
                                 case 4:SC=0;SB=1;SA=1;P0=ledbuff[4];break;
                 case 5:SC=0;SB=1;SA=0;P0=ledbuff[5];break;
                                 case 6:SC=0;SB=0;SA=1;P0=ledbuff[6];break;
                             case 7:SC=0;SB=0;SA=0;P0=ledbuff[7];break;        
                             default :break;           
                        }                             
                }        

         }

}



作者: admin    时间: 2017-3-23 19:00
现在程序运行有什么效果?

作者: zl2168    时间: 2017-3-23 21:05
极简单的功能,极复杂的程序!不知老师是怎么教的,学生是怎么学的?
作者: ouwei663    时间: 2017-3-23 21:07
看到头晕 。有点乱

作者: 欧阳小美    时间: 2017-3-30 16:07
admin 发表于 2017-3-23 19:00
现在程序运行有什么效果?

发现错误了,就是switch里面的的错误,改成外部循环就行了




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1