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

QQ登錄

只需一步,快速開始

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

16x32點(diǎn)陣使用單片機(jī)74hc595驅(qū)動(dòng)問(wèn)題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:709561 發(fā)表于 2020-12-27 15:37 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
50黑幣
16x32點(diǎn)陣使用74hc595驅(qū)動(dòng)問(wèn)題;
行是陽(yáng)極,列是陰極。。

行是兩個(gè)595驅(qū)動(dòng)、列是4個(gè)595驅(qū)動(dòng),顯示斜杠或亂碼?,研究了好幾天,實(shí)在是不知所錯(cuò),很是無(wú)奈。!跪求大師給予幫助不勝感激!。

程序如下;
#include <STC12C5630AD.H>
#include <intrins.h>

#define uchar unsigned char
#define uint unsigned int

/****************行74HC595****************/
//sbit H141 = P1^4;
//sbit H121 = P1^3;
//sbit H111 = P1^2;
sbit HSER  = P1^4;    //數(shù)據(jù)輸入
sbit HSCK  = P1^3;    //串行移位時(shí)鐘
sbit HRCK  = P1^2;    //鎖存器時(shí)鐘
sbit kk = P2^5;
/****************列74HC595****************/
//sbit U514 = P1^7;
//sbit U512 = P1^6;
//sbit U511 = P1^5;
sbit LSER  = P1^7;    //數(shù)據(jù)輸入
sbit LSCK  = P1^6;    //串行移位時(shí)鐘
sbit LRCK  = P1^5;    //鎖存器時(shí)鐘

uchar code htab[]={
0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80
};


uchar code ltab[]={
/*--  文字:  我  --*/
/*--  宋體12;  此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16   --*/
0x20,0x24,0x24,0x24,0xFE,0x23,0x22,0x20,0x20,0xFF,0x20,0x22,0x2C,0xA0,0x20,0x00,
0x00,0x08,0x48,0x84,0x7F,0x02,0x41,0x40,0x20,0x13,0x0C,0x14,0x22,0x41,0xF8,0x00,

/*--  文字:  愛  --*/
/*--  宋體12;  此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16   --*/
0x80,0x64,0x2C,0x34,0x24,0x24,0xEC,0x32,0x22,0x22,0x32,0x2E,0x23,0xA2,0x60,0x00,
0x00,0x41,0x21,0x91,0x89,0x87,0x4D,0x55,0x25,0x25,0x55,0x4D,0x81,0x80,0x80,0x00,

/*--  文字:  你  --*/
/*--  宋體12;  此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16   --*/
0x00,0x80,0x60,0xF8,0x07,0x40,0x20,0x18,0x0F,0x08,0xC8,0x08,0x08,0x28,0x18,0x00,
0x01,0x00,0x00,0xFF,0x00,0x10,0x0C,0x03,0x40,0x80,0x7F,0x00,0x01,0x06,0x18,0x00,


};
/*****************************************/
/****************延時(shí)函數(shù)*****************/
void delay1ms(uint z)                //@11.0592MHz
{
    uint x,y;
    for(x=z;z>0;x--)
    for(y=848;y>0;y--);
}
void Delay10us()                //@11.0592MHz
{
        unsigned char i;

        _nop_();
        _nop_();
        _nop_();
        i = 24;
        while (--i);
}

/****************主函數(shù)*******************/
/****************行函數(shù)*******************/      
void H74HC595(uchar Data,uchar hData)             //74HC595的數(shù)據(jù)串入并出子程序
{
    uchar i=0,f=0;            
    for(i=0;i<8;i++)                //由高位到低位發(fā)送一個(gè)字節(jié)
    {
        LSER = Data>>7;
        Data=Data<<1;                   //左移一位,最高位溢出到位寄存器CY
                                    //從位寄存器的進(jìn)位標(biāo)志位CY讀取
        HSCK = 0;       //串行移位
        HSCK = 1;
        HSCK = 0;
        }
    for(f=0;f<8;f++)                //由高位到低位發(fā)送一個(gè)字節(jié)
    {
        hData<<=1;                   //左移一位,最高位溢出到位寄存器CY
        HSER=CY;                    //從位寄存器的進(jìn)位標(biāo)志位CY讀取
        HSCK = 0;       //串行移位
        HSCK = 1;
        HSCK = 0;
        }
    HRCK = 0;         //鎖存
    HRCK = 1;
    HRCK = 0;
}
/*****************************************/
/****************列函數(shù)*******************/
void L74HC595(uchar bData,uchar aData,uchar cData,uchar dData)
{
    uchar i=0,k=0,j=0,h=0;   
    for(i=0;i<8;i++)
    {
        LSER = bData>>7;        //送出7位數(shù)據(jù)
        bData= bData<<1;      
        LSCK = 0;        //上升沿,讓串行輸入時(shí)鐘變?yōu)楦唠娖,并延時(shí)2個(gè)時(shí)鐘周期
        LSCK = 1;
        LSCK = 0;        //變?yōu)榈碗娖,為下次?zhǔn)備
    }
for(k=0;k<8;k++)
    {
        LSER = aData>>7;        //送出7位數(shù)據(jù)
        aData= aData<<1;      
        LSCK = 0;        //上升沿,讓串行輸入時(shí)鐘變?yōu)楦唠娖,并延時(shí)2個(gè)時(shí)鐘周期
        LSCK = 1;
        LSCK = 0;        //變?yōu)榈碗娖剑瑸橄麓螠?zhǔn)備
    }
for(j=0;j<8;j++)
    {
        LSER = cData>>7;        //送出7位數(shù)據(jù)
        cData= cData<<1;      
        LSCK = 0;        //上升沿,讓串行輸入時(shí)鐘變?yōu)楦唠娖剑⒀訒r(shí)2個(gè)時(shí)鐘周期
        LSCK = 1;
        LSCK = 0;        //變?yōu)榈碗娖,為下次?zhǔn)備
    }
for(h=0;h<8;h++)
    {
        LSER = dData>>7;        //送出7位數(shù)據(jù)
        dData= dData<<1;      
        LSCK = 0;        //上升沿,讓串行輸入時(shí)鐘變?yōu)楦唠娖剑⒀訒r(shí)2個(gè)時(shí)鐘周期
        LSCK = 1;
        LSCK = 0;        //變?yōu)榈碗娖,為下次?zhǔn)備
    }   
                                  //位移寄存器數(shù)據(jù)準(zhǔn)備完畢,轉(zhuǎn)移到存儲(chǔ)寄存器
   LRCK = 0;     //上升沿,讓存儲(chǔ)寄存器時(shí)鐘變?yōu)楦唠娖剑⒀訒r(shí)2個(gè)時(shí)鐘周期
   LRCK = 1;
   LRCK = 0;

}
/*****************************************/
void main()
{
    uchar t;
    kk=0;
    HSER=0;LSER=0;
    while(1)
    {
        for(t=0;t<16;t++)
        {
            H74HC595(htab[t],htab[t]);
            L74HC595(ltab[t],ltab[t],ltab[t],ltab[t]);
       }
    }
}


最佳答案

查看完整內(nèi)容

我在百度盤分享了點(diǎn)陣的資料 也是595驅(qū)動(dòng)的 你可以先去看看 https://pan.baidu.com/s/1bp4HLl9
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:390416 發(fā)表于 2020-12-27 15:37 | 只看該作者
我在百度盤分享了點(diǎn)陣的資料 也是595驅(qū)動(dòng)的 你可以先去看看 https://pan.baidu.com/s/1bp4HLl9
回復(fù)

使用道具 舉報(bào)

板凳
ID:709561 發(fā)表于 2021-1-6 16:09 | 只看該作者
人人學(xué)會(huì)單片機(jī) 發(fā)表于 2021-1-3 19:58
我在百度盤分享了點(diǎn)陣的資料 也是595驅(qū)動(dòng)的 你可以先去看看 https://pan.baidu.com/s/1bp4HLl9

多謝給予資料幫助
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表