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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2277|回復: 1
打印 上一主題 下一主題
收起左側

lcd1602,數碼管,點陣

[復制鏈接]
跳轉到指定樓層
樓主
ID:185194 發表于 2017-3-31 20:26 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
亞龍操作,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;
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:250096 發表于 2017-11-18 15:43 來自觸屏版 | 只看該作者
樓主  你能告訴我數碼管WR寫入使能怎么寫嗎  謝謝
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 色婷婷综合久久久久中文一区二区 | 91麻豆精品国产91久久久久久久久 | 精品欧美一区二区在线观看 | 国产精品爱久久久久久久 | 亚洲aⅴ | 国产精品福利视频 | 特黄视频 | 国产欧美精品一区二区 | 丝袜美腿一区二区三区 | 天天综合成人网 | 久久伊人精品 | 青青操av| 天堂在线91 | 久久综合久久久 | 911精品美国片911久久久 | 午夜久久久 | 国产精品国产精品国产专区不片 | 久色| av在线免费观看网站 | 亚洲自拍偷拍视频 | 日韩欧美一级 | 亚洲国产中文在线 | 国产精品视频播放 | 国产草草视频 | 欧美一区二区成人 | 视频在线h| 日韩在线播放中文字幕 | 五月婷婷婷 | 在线视频亚洲 | 亚洲成人一区二区 | 国产在线资源 | 一区二区三区欧美在线 | 亚洲小视频在线播放 | 日韩一区在线播放 | 自拍偷拍av| 华人黄网站大全 | 国产一区二区在线播放 | 亚洲综合在线一区二区 | 国产精品久久久久久久久免费桃花 | 久久国产精品亚洲 | 亚洲午夜视频在线观看 |