[求助] 为什么用proteus8仿真,数码管第一位不显示??

谭钢   2014-7-15 15:20 楼主
#include

#define CPU_F ((double)8000000)
#define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))      //延时1毫秒

const char tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0X40};
char time[3];
char dis_buff[8];
char time_counter;//1s计数器


void display(void)//显示扫描函数,执行时间16ms
{
        static char i;
        P3OUT=0xFF;
        P1OUT=tab[dis_buff[i+1]];//字段码送数码管
        P3OUT=~(1<         if(++i==8)
                i=0;
        delay_ms(0.1);
}


void time_to_disbuffer(void)//时间值送显示缓冲函数
{
        dis_buff[0]=time[2]/10;//小时
        dis_buff[1]=time[2]%10;
        dis_buff[3]=time[1]/10;
        dis_buff[4]=time[1]%10;//分钟
        dis_buff[6]=time[0]/10;
        dis_buff[7]=time[0]%10;//秒
}

void main(void)
{
        P1DIR=0xFF;//P1初始化为输出端口
        P3DIR=0xFF;//P2初始化为输出端口
        time[2]=23;
        time[1]=58;
        time[0]=55;//时间初值23:58:55
        time_to_disbuffer();
        dis_buff[2]=dis_buff[5]=10;
        while(1)
        {
                display();//显示扫描
                if(++time_counter>=250)//更新时间
                {
                        time_counter=0;
                        if(++time[0]>=60)
                        {
                                time[0]=0;
                                if(++time[1]>=60)
                                {
                                        time[1]=0;
                                        if(++time[2]>=24)
                                                time[2]=0;
                                }
                        }
                        time_to_disbuffer();//修改显示缓冲区
                }

        }
}






回复评论 (5)

过来看看~~~~~~~~~~~~
点赞  2014-7-15 16:00
点赞  2014-7-16 19:56
相关仿真
点赞  2014-7-16 20:22

帮忙多看一下,弄了好几天了
点赞  2014-7-16 20:24
引用: kemasz 发表于 2014-7-15 16:00
过来看看~~~~~~~~~~~~

帮帮忙啊
点赞  2014-7-16 20:24
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复