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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 703|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

51單片機(jī)點(diǎn)陣無法循環(huán)顯示

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:842026 發(fā)表于 2024-9-27 15:36 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
仿真圖都正確,也能正常顯示,就是想弄成循環(huán)顯示的時(shí)候,OLED_ShowCHinese放if里面就無法正常顯示,放外面能顯示但是時(shí)間延遲較長,無法調(diào)整。有沒有大佬知道怎么回事的!

單片機(jī)源程序如下:
#include<reg51.h>
#include<intrins.h>
typedef unsigned int u16;        //對(duì)系統(tǒng)默認(rèn)數(shù)據(jù)類型進(jìn)行重定義
typedef unsigned char u8;
#define uchar unsigned char
#define uint unsigned int
sbit  ds1 = P2^1;
sbit  sh_cp1 = P2^0;
sbit  st_cp1 = P2^2;
sbit  ds2 = P2^6;
sbit  sh_cp2 = P2^5;
sbit  st_cp2 = P2^7;
sbit  OE = P2^3;
sbit  e = P2^4;
void Delay_ms(u16 ms)
{

        u16 i,j;
        for(i=ms;i>0;i--)
                for(j=110;j>0;j--);

}
uchar code dat[][16] = {
{0x00,0x00,0x0F,0x08,0x08,0x08,0x08,0xFF,0x08,0x08,0x08,0x08,0x0F,0x00,0x00,0x00},
{0x00,0x00,0xF0,0x20,0x20,0x20,0x20,0xFF,0x20,0x20,0x20,0x20,0xF0,0x00,0x00,0x00},
{0x00,0x7F,0x40,0x48,0x49,0x49,0x49,0x4F,0x49,0x49,0x49,0x48,0x40,0x7F,0x00,0x00},
{0x00,0xFF,0x02,0x12,0x12,0x12,0x12,0xF2,0x12,0x52,0x32,0x12,0x02,0xFF,0x00,0x00},
{0x04,0x08,0x32,0xE2,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2B,0x20,0x20,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x0C,0x02,0x0F,0x00},
{0x08,0x10,0x3E,0x52,0xD2,0x53,0x57,0x5A,0x52,0x52,0x72,0x12,0x1E,0x00,0x00,0x00},
{0x02,0x52,0x52,0x94,0xA4,0x28,0x4A,0x91,0x7E,0x20,0x50,0x88,0x04,0x02,0x02,0x00},

{0x10,0x12,0x11,0x10,0x13,0x1C,0x00,0x7F,0x40,0x40,0x4F,0x40,0x40,0x7F,0x00,0x00},
{0x04,0x08,0x30,0xC0,0x20,0x19,0x02,0xC4,0x18,0x60,0x80,0x7E,0x01,0xC1,0x07,0x00},
{0x02,0x02,0x42,0x42,0x42,0x42,0x43,0x42,0x42,0x42,0x42,0x42,0x42,0x02,0x02,0x00},
{0x00,0x04,0x0E,0x14,0x24,0xC4,0x04,0x04,0x04,0x24,0x14,0x0C,0x07,0x00,0x00,0x00},
{0x08,0x06,0x40,0x31,0x00,0x7F,0x40,0x4F,0x40,0x7F,0x00,0x1F,0x00,0xFF,0x00,0x00},
{0x20,0x20,0x7E,0x80,0x01,0xE2,0x0C,0xF0,0x08,0xE4,0x00,0xE2,0x01,0xFE,0x00,0x00},
{0x02,0x02,0x42,0x42,0x42,0x42,0x42,0x7F,0x42,0x42,0x42,0x42,0x42,0x02,0x02,0x00},
{0x01,0x01,0x02,0x04,0x08,0x30,0xC0,0x00,0xC0,0x30,0x08,0x04,0x02,0x01,0x01,0x00},
};
void dat595(uchar as,uchar bs)                                                                                        //向HC595傳入數(shù)據(jù)
{
        uchar i,b;
        e = 1;                                                                                                                                                      
        b = bs;                                                                                                                                //先寫第二個(gè)參數(shù),即取模的時(shí)候漢字字模的第二排數(shù)據(jù)(共16個(gè)),寫到16*16點(diǎn)陣的下面2個(gè)8*8點(diǎn)陣
        for(i = 0; i < 8; i++)
        {                                                         
                ds1 = b & 0x01;                                                                                                        //寫參數(shù)2的最低位      
                sh_cp1 = 0;         
                _nop_();_nop_();_nop_();                                                                                //空操作,
                sh_cp1 = 1;                                                                                                               
                b >>= 1;                                                                                                                //右移一位
        }      
        b = as;
        for(i = 0; i < 8; i++)                                                                                               
        {      
                ds1 = b&0x01;                                                                                                      
                sh_cp1 = 0;         
                _nop_();_nop_();_nop_();
                sh_cp1 = 1;                                                                                                               
                b >>= 1;                                                                                                               
        }
}
void shuchu()                                                                                                                        //HC595輸出數(shù)據(jù)
{
        st_cp2 = 0;      
        st_cp1 = 0;
        st_cp2 = 1;                                                                                                                 //在時(shí)鐘上升沿輸出數(shù)據(jù)
        st_cp1 = 1;                                                                                                                        //在時(shí)鐘上升沿輸出數(shù)據(jù)
}                                                                                                                                               
void suocun()                                                                                                                        //HC595鎖存數(shù)據(jù)
{
        sh_cp2 = 0;                                                                                                                        //在時(shí)鐘上升沿寫入數(shù)據(jù)
        sh_cp2 = 1;      
        ds2 = 1;
}

void OLED_ShowCHinese(uchar f)
{                                 
        uchar j;
        OE = 0 ;
        ds2= 0 ;                                                                                                               

        for(j  =0; j < 16; j++)                                                                                       
        {
                dat595(dat[3*f+f][j],dat[3*f+f+1][j]);
                suocun();                                                                                                      
                shuchu();                                                                                                      
        }         
        for(j = 0; j < 16; j++)                                                                                       
        {
                dat595(dat[3*f+f+2][j],dat[3*f+f+3][j]);
                suocun();
                shuchu();
        }                                       
}
void timer0_isr() interrupt 1
{
               
        static uchar index = 0;
        static uint cp2;
        TH0=0XFC;        //給定時(shí)器賦初值,定時(shí)1ms
        TL0=0X18;
        cp2++;
        if(cp2 == 100)
        {
                cp2 =0;
                index++;      
                if(index >=4)
                        index = 0;
        }OLED_ShowCHinese(index);

}

void init_timer0()
{
        TMOD|=0X01;//選擇為定時(shí)器0模式,工作方式1
        TH0=0XFC;        //給定時(shí)器賦初值,定時(shí)1ms
        TL0=0X18;      
        ET0=1;//打開定時(shí)器0中斷允許
        EA=1;//打開總中斷
        TR0=1;//打開定時(shí)器               
}
void main(void)
{

        init_timer0();
        while(1)
        {
        }
}

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

使用道具 舉報(bào)

沙發(fā)
ID:332444 發(fā)表于 2024-9-27 17:45 | 只看該作者
看我帖子有荔枝
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲视频一 | 色婷婷精品国产一区二区三区 | 天天综合网天天综合 | 午夜寂寞影院列表 | 国产日韩欧美一区 | 91精品亚洲| 日韩中文字幕在线播放 | 精国产品一区二区三区四季综 | 午夜免费精品视频 | 国产一区电影 | 久久国产精品久久久久 | 亚洲福利一区二区 | 亚洲精品v | 国产精品免费一区二区 | 国产欧美在线一区二区 | 黄色网一级片 | 国产色99精品9i | 国产精品视频一区二区三区四蜜臂 | 欧美激情视频一区二区三区在线播放 | 亚洲一区二区三区免费在线观看 | 91国语清晰打电话对白 | 亚洲精品播放 | 手机看片在线播放 | 天天躁日日躁xxxxaaaa | 日韩欧美一区二区三区四区 | 中文字幕精品一区二区三区在线 | 国产日韩欧美 | re久久| 国产一区二区三区久久久久久久久 | a级毛片免费高清视频 | 国产精品美女久久久久 | 亚洲狠狠| 亚洲精品一区二区在线观看 | 亚洲一区二区三区视频 | 91麻豆精品国产91久久久久久 | 亚洲精品一二三 | 欧美在线视频网站 | 亚洲精品视频在线播放 | 日日噜噜噜夜夜爽爽狠狠视频, | 中文字幕一区二区三区不卡 | 欧美亚洲视频在线观看 |