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

標(biāo)題: 怎么把74hc595驅(qū)動16*16點陣縱向移動改為左移 [打印本頁]

作者: 蘇鵬飛    時間: 2016-7-25 18:18
標(biāo)題: 怎么把74hc595驅(qū)動16*16點陣縱向移動改為左移

#include <REG51.H>
#include <intrins.h>
#include "array.h"

//--重定義函數(shù)變量--//
#define uchar unsigned char
#define uint  unsigned int
#define ulong unsigned long

//--定義SPI要使用的 IO--//
sbit MOSIO = P3^4;
sbit R_CLK = P3^5;
sbit S_CLK = P3^6;

//--全局函數(shù)聲明--//
void HC595SendData(  uchar BT3, uchar BT2,uchar BT1,uchar BT0);
                                                                                                                                                                                       
/*******************************************************************************
* 函 數(shù) 名         : main
* 函數(shù)功能                   : 主函數(shù)
* 輸    入         : 無
* 輸    出         : 無
*******************************************************************************/

void main(void)
{   
        int k, j, ms;
        
        //--定義一個指針數(shù)組指向每個漢字--//
        uchar *p[] ={tab17, tab1, tab2, tab3, tab4, tab5, tab6, tab7, tab8,
                     tab9, tab10, tab11, tab12, tab13, tab14, tab15, tab16};                                                
        while(1)
        {

                for(ms = 20; ms > 0; ms--)        //移動定格時間設(shè)置
                {
                        for(k = 0; k < 16; k++)        //顯示一個字
                        {                                                         
                                HC595SendData(~(*(p[0] + 2*(k+j) + 1)),~(*(p[0] + 2*(k+j) )),tab0[2*k],tab0[2*k + 1]); //因為字模軟件取的數(shù)組是高電平有效,所以列要取反                    
                        }
                        
                        //--清屏--//
                        HC595SendData(0xff,0xff,0,0);                                                                                   //清屏                 
                }

               
                j++;
                if(j == (17*15) )
                {
                        j = 0;
                }
               
        }                                                                              
}



/*******************************************************************************
* 函 數(shù) 名         : HC595SendData
* 函數(shù)功能                   : 通過595發(fā)送四個字節(jié)的數(shù)據(jù)
* 輸    入         : BT3:第四個595輸出數(shù)值
*                  * BT2: 第三個595輸出數(shù)值
*                  * BT1:第二個595輸出數(shù)值
*                  * BT0:第一個595輸出數(shù)值
* 輸    出         : 無
*******************************************************************************/

void HC595SendData(  uchar BT3, uchar BT2,uchar BT1,uchar BT0)
{  
        uchar i;
        
        //--發(fā)送第一個字節(jié)--//
        for(i=0;i<8;i++)
        {
                MOSIO = BT3 >> 7 ;        //從高位到低位
                BT3 <<= 1;

                S_CLK = 0;
                S_CLK = 1;               
        }

        //--發(fā)送第一個字節(jié)--//
        for(i=0;i<8;i++)
        {
                MOSIO = BT2 >>7;                //從高位到低位
                BT2 <<= 1;

                S_CLK = 0;
                S_CLK = 1;        
        }

        //--發(fā)送第一個字節(jié)--//
        for(i=0;i<8;i++)
        {
                MOSIO = BT1 >> 7;                //從高位到低位
                BT1 <<= 1;
                S_CLK = 0;
                S_CLK = 1;        
        }

        //--發(fā)送第一個字節(jié)--//
        for(i=0;i<8;i++)
        {
                MOSIO = BT0 >> 7;                //從高位到低位
                BT0 <<= 1;
                S_CLK = 0;
                S_CLK = 1;
        }

        //--輸出--//
        R_CLK = 0; //set dataline low
        R_CLK = 1; //片選
        R_CLK = 0; //set dataline low
}


作者: ahshmj    時間: 2016-7-26 16:28
首先你的字模必須是從左至右按列取模(上半部和下半部 各從左至右16列),左起第一列上,左起第一列下、左起第二列上,左起第二列下、左起第三列上,左起第三列下......的順序取模。
其次你要將16*16點陣轉(zhuǎn)90度用,如不能轉(zhuǎn),就必須改電路了。
作者: 蘇鵬飛    時間: 2016-7-27 08:57
ahshmj 發(fā)表于 2016-7-26 16:28
首先你的字模必須是從左至右按列取模(上半部和下半部 各從左至右16列),左起第一列上,左起第一列下、左 ...

可以改顯示的位置嗎?顯示的位置讓它轉(zhuǎn)90度
作者: ahshmj    時間: 2016-7-27 21:36
“可以改顯示的位置嗎”是什么意思?
作者: 蘇鵬飛    時間: 2016-7-28 08:47
ahshmj 發(fā)表于 2016-7-27 21:36
“可以改顯示的位置嗎”是什么意思?

HC595SendData(~(*(p[0] + 2*(k+j) + 1)),~(*(p[0] + 2*(k+j) )),tab0[2*k],tab0[2*k + 1])   *(p[0] 這個是取字模, 2*(k+j) + 1)這個應(yīng)該是點陣顯示的位置吧
作者: asfunman    時間: 2019-11-13 21:34
能不能問一下各位大神,為什么用74HC595芯片讀入芯片的時候用這個
SER=dat>>7
dat<<=1   先右移7位,再左移1位,8*8的點陣顯示出來的字剛好在中間?誰能解釋一下嗎




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 毛片a区| 国产精品揄拍一区二区 | h片在线免费观看 | 午夜激情在线 | 欧美亚州 | 精品免费国产一区二区三区 | 成人高清在线 | 一二区视频 | 国产精品不卡一区二区三区 | 国产精品久久久久久吹潮日韩动画 | 国产自产21区 | 国产精品视频网址 | 日韩精品一区在线 | 国产综合久久 | 亚洲精品一区二区三区蜜桃久 | 精品国产色 | 国产精品永久免费视频 | 欧美一区中文字幕 | 秋霞精品 | 91亚洲精品久久久电影 | www日本在线观看 | 国产视频精品免费 | 一区二区小视频 | 久久久久久国产精品久久 | 亚洲永久精品国产 | 日本精品视频在线 | 日产久久| 亚洲精品久久久久久久久久久久久 | 日韩久久久久 | 国产精品视频久久久 | 亚洲精品一二三区 | 国产欧美视频一区二区三区 | 成人免费观看网站 | 色就干 | 成人在线黄色 | 亚洲国产成人精 | 国产高清在线精品 | 国产高清免费视频 | 一区二区三区av夏目彩春 | 爱爱综合网 | 久久日韩粉嫩一区二区三区 |