久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: lcd1602,數碼管,點陣 [打印本頁]

作者: 晚年安好    時間: 2017-3-31 20:26
標題: lcd1602,數碼管,點陣
亞龍操作,lcd和數碼管點陣顯示時間,但是lcd和數碼管點陣時間不同步,總是慢1秒。求解、
#include<reg52.h>

#define uc unsigned char
#define ui unsigned int
#define it interrupt

sbit cs1=P2^0;
sbit cs2=P2^1;
sbit wr=P2^2;

sbit rs=P2^3;
sbit rw=P2^4;
sbit e=P2^5;

sbit dz_row0=P3^0;
sbit dz_row1=P3^1;
sbit dz_col0=P3^2;
sbit dz_col1=P3^3;
sbit dz_col2=P3^4;
sbit dz_col3=P3^5;

uc duan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff};
uc smg_buf[8];
uc smg_i=0;

uc code sj[][16]={
0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x24,0x18,0x00,0x00,

0x00,0x00,0x00,0x08,0x0E,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x3E,0x00,0x00,

0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x20,0x20,0x10,0x08,0x04,0x42,0x7E,0x00,0x00,

0x00,0x00,0x00,0x3C,0x42,0x42,0x20,0x18,0x20,0x40,0x40,0x42,0x22,0x1C,0x00,0x00,

0x00,0x00,0x00,0x20,0x30,0x28,0x24,0x24,0x22,0x22,0x7E,0x20,0x20,0x78,0x00,0x00,

0x00,0x00,0x00,0x7E,0x02,0x02,0x02,0x1A,0x26,0x40,0x40,0x42,0x22,0x1C,0x00,0x00,

0x00,0x00,0x00,0x38,0x24,0x02,0x02,0x1A,0x26,0x42,0x42,0x42,0x24,0x18,0x00,0x00,

0x00,0x00,0x00,0x7E,0x22,0x22,0x10,0x10,0x08,0x08,0x08,0x08,0x08,0x08,0x00,0x00,

0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x24,0x18,0x24,0x42,0x42,0x42,0x3C,0x00,0x00,

0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x64,0x58,0x40,0x40,0x24,0x1C,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
uc dz_buf[4];
uc dz_i=0;
ui san_i=0;
uc xsr[]={0x32,0x30,0x31,0x37,0x2d,0x30,0x33,0x2d,0x33,0x31};
uc xss[]={0x30,0x30,0x2d,0x30,0x30,0x2d,0x30,0x30};
uc shi=0,fen=0,miao=0;

void delay(ui x){while(x--);}

void mang()
{
        rs=0;
        rw=1;
        e=1;
        P1=0xff;
        while(P1&0x80);
        e=0;
}

void xml(uc dat)
{
        mang();
        rs=0;
        rw=0;
        P1=dat;
        e=1;
        e=0;
}

void xsj(uc dat)
{
        mang();
        rs=1;
        rw=0;
        P1=dat;
        e=1;
        e=0;
}

void lcd1602_zfc(uc row,col,num,uc *buf)
{
        uc i=0;
        xml(row+col);
        for(i=0;i<num;i++)
                xsj(buf[i]);       
}

void lcd1602_init()
{
        xml(0x38);
        xml(0x0c);
        xml(0x06);
        xml(0x01);
}

void lcd1602()
{
        lcd1602_zfc(128,3,10,xsr);
        lcd1602_zfc(192,4,8,xss);

        xss[0]=shi/10+48;
        xss[1]=shi%10+48;
        xss[3]=fen/10+48;
        xss[4]=fen%10+48;
        xss[6]=miao/10+48;
        xss[7]=miao%10+48;               
}

void dz_tobuf()
{
        dz_buf[0]=sj[shi/10][dz_i];
        dz_buf[1]=sj[shi%10][dz_i];
        if(dz_i==4||dz_i==5||dz_i==12||dz_i==13)
        {
                if(san_i>1000)       
                        dz_buf[1]=dz_buf[1]|0x80;
       
        }
        dz_buf[2]=sj[fen/10][dz_i];
        if(dz_i==4||dz_i==5||dz_i==12||dz_i==13)
        {
                if(san_i>1000)
                        dz_buf[2]=dz_buf[2]|0x01;
       
        }
        dz_buf[3]=sj[fen%10][dz_i];
}

void DZ()
{
        dz_tobuf();

        P0=0x00;
        dz_row0=dz_row1=dz_col0=dz_col1=dz_col2=dz_col3=1;
        dz_row0=dz_row1=dz_col0=dz_col1=dz_col2=dz_col3=0;  

        P0=(0x0001<<dz_i)%256;dz_row0=1;dz_row0=0;
        P0=(0x0001<<dz_i)/256;dz_row1=1;dz_row1=0;

        P0=dz_buf[0];dz_col0=1;dz_col0=0;
        P0=dz_buf[1];dz_col1=1;dz_col1=0;
        P0=dz_buf[2];dz_col2=1;dz_col2=0;
        P0=dz_buf[3];dz_col3=1;dz_col3=0;
                                                                                                                                                                                                                  
        dz_i++;
        if(dz_i>=16)
                dz_i=0;
}

void smg_tobuf()
{
        smg_buf[7]=shi/10;
        smg_buf[6]=shi%10;
        smg_buf[5]=10;
        smg_buf[4]=fen/10;
        smg_buf[3]=fen%10;
        smg_buf[2]=10;
        smg_buf[1]=miao/10;
        smg_buf[0]=miao%10;
}

void SMG()
{
        smg_tobuf();

        cs1=cs2=0;
        P0=0xff;
        wr=1;wr=0;

        cs1=1;cs2=0;
        P0=~(0x01<<smg_i);
        wr=1;wr=0;

        cs1=0;cs2=1;
        P0=duan[smg_buf[smg_i]];
        wr=1;wr=0;

        smg_i++;
        if(smg_i>=8)
                smg_i=0;
}

void init()
{
        TMOD=0x01;
       
        TH0=65036/256;
        TL0=65036%256;

        ET0=TR0=EA=1;
}

void main()
{       
        delay(2000);
        init();
        lcd1602_init();
        while(1)
        {
                lcd1602();                               
        }
}

ui t0i=0,t01i=0;
void t0() it 1
{
        TH0=65036/256;
        TL0=65036%256;

        SMG();
        DZ();
       
        t0i++;
        if(t0i>=2000)
        {
                t0i=0;
                miao++;
                if(miao>=60)
                {
                        miao=0;
                        fen++;
                        if(fen>=60)
                        {
                                fen=0;
                                shi++;
                                if(shi>=24)
                                        shi=0;
                        }
                }
        }  


        san_i++;
        if(san_i>=2000)
                san_i=0;
}


作者: 低調的犀利    時間: 2017-11-18 15:43
樓主  你能告訴我數碼管WR寫入使能怎么寫嗎  謝謝




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 免费看a| 国产精品视频一二三区 | 久久99精品久久 | 午夜av免费| 一区二区三区日本 | 亚洲精品一区在线观看 | 一区二区在线不卡 | 国产高潮好爽受不了了夜夜做 | 看a级黄色毛片 | 欧美日本一区 | 日韩欧美亚洲综合 | 精品久久久久久 | 欧美日韩一卡二卡 | 久久久久久国产免费视网址 | 在线毛片网 | 毛片国产 | 精品视频一区二区三区在线观看 | 日韩电影一区二区三区 | 午夜视频免费在线观看 | 精品网| 国产精品高潮呻吟久久 | 久久久久久久久久一区二区 | 成人中文字幕在线 | 国产成人一区二区 | 国产一区 | 操夜夜| 在线看av网址 | 欧美日产国产成人免费图片 | 青春草在线 | 亚洲成人黄色 | 欧美激情国产日韩精品一区18 | 亚洲一区二区三区免费在线观看 | 国产中文| 欧美一级高潮片免费的 | 久久久久亚洲 | 99国内精品 | 二区欧美 | a在线视频 | 玖玖玖在线| 欧美一级欧美三级在线观看 | 91精品中文字幕一区二区三区 |