|
點陣花樣顯示
采用HC6800-EM3 V3.0開發(fā)板,使用STC89C52RC單片機(jī),四片74HC595串行移位寄存器驅(qū)動16*16led點陣,軟件通過指針查表實現(xiàn)點陣的花樣顯示。輕松用點陣實現(xiàn)光立方效果,但跟光立方相比弱爆了
1.點陣效果如下圖:
見附件
//控制點陣花樣顯示函數(shù)
- #include <REG52.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);
- void main(void)
- {
- int k, i, ms;
- //--定義一個指針數(shù)據(jù)指向畫面--//
- uchar *p[] = {
- tab1, tab2, tab3, tab4, tab5, tab6, tab7, tab8,tab9, tab10,
- tab11, tab12, tab13, tab14, tab15,tab16, tab17, tab18,tab19, tab20,
- tab21, tab22, tab23, tab24, tab25,tab26, tab27, tab28,tab29, tab30,
- tab31, tab32, tab33, tab34, tab35,tab36, tab37, tab38,tab39, tab40,
- tab41, tab42, tab43, tab44, tab45,tab46, tab47, tab48,tab49, tab50,
- tab51, tab52, tab53, tab54, tab55,tab56, tab57, tab58,tab59, tab60,
- tab61, tab62, tab63, tab64, tab65,tab66, tab67, tab68,tab69, tab70,
- tab71, tab72, tab73, tab74, tab75,tab76, tab77, tab78,tab79, tab80,
- tab81};
- //顯示GO,停留時間較長
- i=0;
- for(ms = 80; ms > 0; ms--) //停留時間較長
- {
- for(k = 0; k < 16; k++) //顯示G0圖案
- {
- //--因為字模軟件取的數(shù)組是高電平有效,所以列要取反--//
- HC595SendData(~(*(p[i] + 2*k + 1)),~(*(p[i] + 2*k )),
- tab0[2*k],tab0[2*k + 1]);
- }
- }
-
- while(1)
- {
- for(i = 1; i < 80; i++) //總共80個畫面
- {
- for(ms = 10; ms > 0; ms--) //停留時間較短
- {
- for(k = 0; k < 16; k++) //顯示一個畫面
- {
-
- HC595SendData(~(*(p[i] + 2*k + 1)),~(*(p[i] + 2*k )),
- tab0[2*k],tab0[2*k + 1]);
- }
- HC595SendData(0xff,0xff,0,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; //置低電平
- R_CLK = 1; //片選
- R_CLK = 0; //置低電平
- }
復(fù)制代碼 (2)點陣圖案顯示數(shù)組
見附件
花樣點陣.zip
(33.28 KB, 下載次數(shù): 14)
2016-11-29 17:04 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|
評分
-
查看全部評分
|