你這個是hub08接口 點陣屏
我給你來個資料可以參考一下
http://www.zg4o1577.cn/bbs/dpj-100285-1.html
http://www.zg4o1577.cn/bbs/dpj-31394-1.html
http://www.zg4o1577.cn/bbs/dpj-38426-1.html
- /*
- 08接口簡單說明
- A 、B 、 C、 D:兩片74HC138的輸入信號
- EN: 74HC138的輸出使能,低電平有效
- R1: 是74HC595的數據線,串行數據輸入
- R2: 用不上
- G1: 用不上
- G2: 用不上
- LT:74HC595時鐘
- SK:74HC595的存儲控制線
- */
- //單片機:STC89C52
- //晶振:22.1184M,下載選擇雙倍時鐘,否則會有閃爍!
- //顯示屏:HUB08接口16X64單紅點陣
- //顯示方式:左移
- #include
- #include"zimo.h"
- #define uchar unsigned char
- #define uint unsigned int
- #define SPEED 5 //定義速度與數字成反比 數字小,速度快
- #define NUMBER 11 //定義要移動顯示總16X16漢字個數,計算方法:NUMBER=漢字顯示個數+4個空格
- uchar word=0,col=0,col1=0,disrow=0,move=0;//wor為要顯字變量,col為位移變量,col1為字節偏移量,disrow為行變量
- uchar BUFF__UP[17]; //緩沖字節數取值=[2*板點陣寬度/8]+1比較保險,即兩倍板的點陣字節數.
- uchar BUFF__UP0[12]; //上半屏顯示緩沖
- sbit R1=P0^4;//紅色數據1
- sbit R2=P3^3;//紅色數據2
- sbit G1=P3^4;//綠色數據1
- sbit G2=P3^5;//綠色數據
- sbit CLK=P0^7; //595時鐘端口
- sbit STB=P0^6; //595鎖存端口
- sbit OE =P0^5;//74HC138使能:低有效
- //根據列指針由雙字節合并為單字節的子程序模塊
- //和點陣的取模方式有關:低位在前,高位在后,但是實際顯示,高位在前,低位在后!
- uchar Combine_2byte(uchar h1,uchar h2)
- {
- uchar T_date,tempcol;
- tempcol=col1;
- T_date=(h1>>tempcol)|(h2<<(8-tempcol));
- return T_date;
- }
- //分別裝屏點陣數據
- void Load_one_line(void) //多加4個16X16漢字的緩沖
- {
- BUFF__UP[0]=Table[word][disrow*2+0];//裝載點陣數據
- BUFF__UP[1]=Table[word][disrow*2+1];
- BUFF__UP[2]=Table[word+1][disrow*2+0];
- BUFF__UP[3]=Table[word+1][disrow*2+1];
- BUFF__UP[4]=Table[word+2][disrow*2+0];
- BUFF__UP[5]=Table[word+2][disrow*2+1];
- BUFF__UP[6]=Table[word+3][disrow*2+0];
- BUFF__UP[7]=Table[word+3][disrow*2+1];
- BUFF__UP[8]=Table[word+4][disrow*2+0];
- BUFF__UP[9]=Table[word+4][disrow*2+1];
- BUFF__UP[10]=Table[word+5][disrow*2+0];
- BUFF__UP[11]=Table[word+5][disrow*2+1];
- BUFF__UP[12]=Table[word+6][disrow*2+0];
- BUFF__UP[13]=Table[word+6][disrow*2+1];
- BUFF__UP[14]=Table[word+7][disrow*2+0];
- BUFF__UP[15]=Table[word+7][disrow*2+1];
- }
- //發送屏一線點陣數據
- void Send_one_line(void)
- {
- char s;
- uchar temp,i,inc;
- if(col<8) inc=0;
- if(8<=col&&col<16) inc=1;
- for(s=0+inc;s<=8+inc;s++)
- {
- temp=Combine_2byte(BUFF__UP[s],BUFF__UP[s+1]);
- for(i=0;i<8;i++)
- {
- R1=~(temp>>i)&0x01;//取出最低位
- R2=0xff; //不顯示
- G1=0xff;
- G2=0xff;
- CLK=0;
- CLK=1; //移位時鐘
- }
- }
- }
- //左移函數
- void LEFT_MOVE()
- {
- uchar i;
- for(col=0;col<16;col++)//循環16次,點亮并移動一個漢字,步進是一位
- {
- col1=col%8;//一個字節移動位數
- for(i=0;i
- {
- for(disrow=0;disrow<16;disrow++)//掃描16行
- {
- Load_one_line();//裝載一行點陣數據
- Send_one_line();//發送一行點陣數據
- OE=1;
- STB=1; // 輸出鎖存
- STB=0;
- P0=disrow; // 行掃描
- OE=0;
- }
- }
- }
- word=word+1;// 一個漢字移動后,指向下一個漢字
- if(word>=NUMBER)
- {
- word=0;//移動完NUMBER個漢字后重新開始
- }
- }
- //主函數入口
- void main(void)
- {
- R1=0;//數據初始化
- R2=0;
- G1=0;
- G2=0;
- while(1)
- {
- LEFT_MOVE(); //左移
- }
- }
- zimo.h
- unsigned char code Table[][32]=
- {
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //空白
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x08,0x00,0xC8,0x7F,0x48,0x00,0x7F,0x00,0x48,0x3F,0x68,0x00,0xD8,0x7F,0x48,0x03,
- 0x4C,0x25,0x4B,0x65,0x48,0x19,0x48,0x11,0x28,0x11,0x28,0x65,0x1A,0x23,0x04,0x01,
- 0xFC,0x1F,0x00,0x0C,0x60,0x03,0x80,0x00,0xFC,0x1F,0x84,0x10,0x84,0x10,0xFC,0x1F,
- 0x84,0x10,0x84,0x10,0xFC,0x1F,0x84,0x10,0x84,0x10,0x84,0x10,0x84,0x14,0x04,0x08,
- 0x80,0x00,0x80,0x00,0x80,0x00,0xFC,0x1F,0x84,0x10,0x84,0x10,0xFC,0x1F,
- 0x84,0x10,0x84,0x10,0x84,0x10,0xFC,0x1F,0x84,0x10,0x80,0x40,0x80,0x40,
- 0x00,0x7F,0x00,0x00,
- 0x00,0x00,0xFC,0x0F,0x00,0x04,0x00,0x02,0x00,0x01,0x80,0x00,0x80,0x00,
- 0x80,0x20,0xFF,0x7F,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,
- 0xA0,0x00,0x40,0x00,
- 0x00,0x01,0x00,0x01,0x3F,0x01,0xA0,0x7F,0xA1,0x20,0x52,0x12,0x14,0x02,
- 0x08,0x02,0x18,0x02,0x18,0x06,0x24,0x05,0x24,0x09,0x82,0x18,0x61,0x70,
- 0x1C,0x20,0x00,0x00,
- 0x02,0x00,0x84,0x01,0x6C,0x3E,0x24,0x22,0x20,0x22,0x20,0x22,0x27,0x22,
- 0x24,0x22,0xA4,0x22,0x64,0x2A,0x24,0x12,0x04,0x02,0x04,0x02,0x0A,0x00,
- 0xF1,0x7F,0x00,0x00,
- 0x90,0x00,0x90,0x01,0x88,0x20,0xC8,0x7F,0x44,0x20,0x2C,0x12,0x16,0x02,
- 0x45,0x0A,0xC4,0x12,0x44,0x12,0x24,0x22,0x24,0x62,0x14,0x22,0x84,0x02,
- 0x04,0x01,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //空白
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //空白
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- };
復制代碼 |