1024手机基地看电影,午夜福利视频导航,国产精品福利在线一区,亚洲欧美日韩另类成人,在线观看午夜日本理论片,成年超爽免费网站,国产精品成人免费,精品动作一级毛片,成人免费观看网站,97精品伊人久久大香蕉

標(biāo)題: 雙色LED點(diǎn)陣顯屏設(shè)計(jì)與制作 [打印本頁]

作者: 1368511831    時(shí)間: 2018-9-20 13:40
標(biāo)題: 雙色LED點(diǎn)陣顯屏設(shè)計(jì)與制作
#include<reg52.h>   
#include <intrins.h>
/***********************************************************************************************/
unsigned char  segout[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; //8列掃描代碼,高電平有效
unsigned char code tab[]={0xff,0xcf,0xb7,0xbb,0xdd,0xbb,0xb7,0xcf};        //數(shù)據(jù)代碼,低電平有效
sbit LATCH = P1^0;                            //點(diǎn)屏數(shù)的數(shù)據(jù)端口定義
sbit SRCLK = P1^1;
sbit SER   = P1^2;
sbit LATCH_B = P2^0;                     //點(diǎn)陣屏的公共端口定義
sbit SRCLK_B = P2^1;
sbit SER_B   = P2^2;
/************************************************************************************************
**函數(shù)名:delay(unsigned char i)       
**功  能:延時(shí)程序
************************************************************************************************/
void delay(unsigned char i)
{        unsigned char j,k;
                for(k=0;k<i;k++)
                {        for(j=0;j<255;j++);
                }
}
/************************************************************************************************
**函數(shù)名:sendbyte(unsigned char dat)       
**功  能:發(fā)送字節(jié)程序
************************************************************************************************/
void sendbyte(unsigned char dat)
{        unsigned char i;      
        for(i=0;i<8;i++)            //發(fā)送1個(gè)字節(jié)數(shù)據(jù)
        {        SRCLK=0;                        //為數(shù)據(jù)移位準(zhǔn)備
                if(dat&0x80)                //發(fā)送1位數(shù)據(jù)
                        SER = 1;                //發(fā)送1
                else
                        SER = 0;            //發(fā)送0       
         dat<<=1;                          //左移數(shù)據(jù),為下次發(fā)送數(shù)據(jù)準(zhǔn)備
         SRCLK=1;                        //數(shù)據(jù)寄存器中的數(shù)據(jù)移位,不影響輸出
    }      
}
/************************************************************************************************
**函數(shù)名:sendbyte2(unsigned char dat1,unsigned char dat2)
**功  能:發(fā)送2個(gè)字節(jié)程序,595級(jí)聯(lián),n個(gè)595,就需要發(fā)送n字節(jié)后鎖存
************************************************************************************************/
void sendbyte2(unsigned char dat1,unsigned char dat2)
{        sendbyte(dat1);
        sendbyte(dat2);      
}
/************************************************************************************************
**函數(shù)名:out595(void)
**功  能:595級(jí)聯(lián)發(fā)送數(shù)據(jù)后,鎖存有效
************************************************************************************************/
void out595(void)
{        LATCH=0;                   //鎖存輸出
        _nop_();
        LATCH=1;
}
/************************************************************************************************
**函數(shù)名:send_com(unsigned char dat)
**功  能:發(fā)送點(diǎn)陣屏公共端控制碼
************************************************************************************************/
void send_com(unsigned char dat)
{        unsigned char i;      
        for(i=0;i<8;i++)                  //發(fā)送1個(gè)字節(jié)
        {        SRCLK_B=0;                        //為數(shù)據(jù)移位準(zhǔn)備
                if(dat&0x80)                //發(fā)送1位數(shù)據(jù)
                        SER_B = 1;                 //發(fā)送1
                else
                        SER_B = 0;                //發(fā)送0
        dat<<=1;
        SRCLK_B=1;                        //數(shù)據(jù)寄存器中的數(shù)據(jù)移位,不影響輸出
    }
        LATCH_B=0;                            //輸出鎖存
        _nop_();
        LATCH_B=1;        
}
/************************************************************************************************
                                                                mian()
************************************************************************************************/
void main()
{        unsigned char i;
        while(1)
        {        for(i=0;i<8;i++)                                 //8列數(shù)據(jù)顯示
                {        send_com(segout[i]);                //送公共端數(shù)據(jù),即列掃描代碼
                        sendbyte2(tab[i],0xff);                //送列數(shù)據(jù),第1參數(shù)是綠色數(shù)據(jù),第2參數(shù)是紅色數(shù)據(jù)
                        out595();                                        //595鎖存輸出
                        delay(2);
                        sendbyte2(0xff,0xff);                //防止重影
                        out595();                                        //595鎖存輸出
                }
        }
}



作者: admin    時(shí)間: 2018-9-20 16:43
補(bǔ)全原理圖或者詳細(xì)說明一下電路連接即可獲得100+黑幣




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1