|
問(wèn)題求助:使用紅色時(shí)能完整發(fā)送字,但是總有兩列殘影發(fā)亮的問(wèn)題,使用綠色時(shí)下半部分直接亂碼,也還是有兩列殘影發(fā)亮。制作分享:工程分為單片機(jī)驅(qū)動(dòng)板和16X16點(diǎn)陣板,單片機(jī)驅(qū)動(dòng)板上1個(gè)STC單片機(jī)(我用的是STC12C5A60S2)、2個(gè)74LS138進(jìn)行掃描、4個(gè)74HC595發(fā)送數(shù)據(jù)和24C02擴(kuò)展內(nèi)存,除了可以驅(qū)動(dòng)點(diǎn)陣也可以驅(qū)動(dòng)數(shù)碼管,燈之類的,因?yàn)槲议e置的直插件較多所以都用了直插件,板子排得比較密,密集恐懼癥慎入哈哈!點(diǎn)陣板我用的是雙色點(diǎn)陣,如果改成純紅色點(diǎn)陣的可以弄成16X32(因?yàn)榫G色不用可以給紅色用),另外文件里的PCB工程為了給大家方便瀏覽檢查沒有敷銅,如果大家直接打樣PCB的話記得頂層和底層要接地敷銅,避免板上的芯片高速運(yùn)行受到外界干擾,本人單片機(jī)小白一個(gè),不喜勿噴,歡迎多提寶貴意見,共同交流!- //74HC138引腳:P22,P23,P24,P25,P26,P27
- //24C02引腳:P20-SDA,P21-SCL
- //red595:11腳-P10,12腳-P11,14腳-P12,13腳控制腳-P16
- //green595:11腳-P13,12腳-P14,14腳-P15,13腳控制腳-P17
- //74HC595:11腳SH_CP是數(shù)據(jù)輸入時(shí)鐘線,12腳ST_CP是輸出存儲(chǔ)器鎖存時(shí)鐘線,13腳OE是輸出有效(低電平有效),14腳DS是串行數(shù)據(jù)輸入
- #include <intrins.h>
- #include <REGX52.H>
- #define uint unsigned int
- #define uchar unsigned char
- sbit saomiao1=P2^2;
- sbit saomiao2=P2^3;
- sbit saomiao3=P2^4;
- sbit saomiao4=P2^5;
- sbit saomiao5=P2^6;
- sbit saomiao6=P2^7;
- sbit redSH_CP=P1^0;
- sbit redST_CP=P1^1;
- sbit redOE=P1^6;
- sbit redDS=P1^2;
- sbit greenSH_CP=P1^3;
- sbit greenST_CP=P1^4;
- sbit greenOE=P1^7;
- sbit greenDS=P1^5;
- uchar a;
- uchar code display[]=
- {
- 0xF7,0xF6,0x31,0x47,0xF7,0xFF,0xFD,0x85,0xB5,0xB5,0xB5,0xB5,0xB5,0x85,0xFD,0xFF,
- 0xFD,0xFE,0x00,0xFF,0xFC,0xFF,0x00,0xB6,0xB6,0xB6,0x80,0xB6,0xB6,0xB6,0x00,0xFF
- }; //福
- void delay(uint b)//延時(shí)
- {
- while(b--);
- }
- void shuaxin(uchar a)//138譯碼器刷新列
- {
- switch(a)
- {
- case(1):
- saomiao4=1;saomiao5=1;saomiao6=1; break;
- case(2):
- saomiao4=0;saomiao5=1;saomiao6=1; break;
- case(3):
- saomiao4=1;saomiao5=0;saomiao6=1; break;
- case(4):
- saomiao4=0;saomiao5=0;saomiao6=1; break;
- case(5):
- saomiao4=1;saomiao5=1;saomiao6=0; break;
- case(6):
- saomiao4=0;saomiao5=1;saomiao6=0; break;
- case(7):
- saomiao4=1;saomiao5=0;saomiao6=0; break;
- case(8):
- saomiao4=0;saomiao5=0;saomiao6=0; break;
- case(9):
- saomiao1=1;saomiao2=1;saomiao3=1; break;
- case(10):
- saomiao1=0;saomiao2=1;saomiao3=1; break;
- case(11):
- saomiao1=1;saomiao2=0;saomiao3=1; break;
- case(12):
- saomiao1=0;saomiao2=0;saomiao3=1; break;
- case(13):
- saomiao1=1;saomiao2=1;saomiao3=0; break;
- case(14):
- saomiao1=0;saomiao2=1;saomiao3=0; break;
- case(15):
- saomiao1=1;saomiao2=0;saomiao3=0; break;
- case(16):
- saomiao1=0;saomiao2=0;saomiao3=0; break;
- default :break;
- }
- }
- void Init_red595(uchar valueL,uchar valueH)//紅色595發(fā)送函數(shù)初始化
- {
- uchar i;
- for(i=0;i<8;i++)
- {
- redDS=valueL>>7;//把valueL最高位的值賦給redDS
- valueL<<=1;//把valueL原來(lái)的值左移一位,再賦值給valueL,(有賦值操作,所以會(huì)改變?cè)鹊闹?多出來(lái)的最低位自動(dòng)用0來(lái)填充,valueL的最高位發(fā)送出去
- redSH_CP=0;
- _nop_();
- _nop_();
- redSH_CP=1;
- }
- for(i=0;i<8;i++)
- {
- redDS=valueH>>7;
- valueH<<=1;
- redSH_CP=0;
- _nop_();
- _nop_();
- redSH_CP=1;
- }
- redST_CP=0;
- _nop_();
- _nop_();
- redST_CP=1;
- }
- void red_send()//發(fā)送紅色點(diǎn)陣數(shù)據(jù)
- {
- uint index;
- greenOE=1;//綠色595輸出不使能
- for(index=1;index<17;index++)
- {
- redOE=1;//紅色595輸出不使能
- shuaxin(index);//138譯碼器刷新
- Init_red595(display[index+16],display[index]);//帶入紅色點(diǎn)陣要發(fā)送的數(shù)據(jù)
- redOE=0;//紅色595輸出使能
- delay(500);
- }
- }
- void Init_green595(uchar valueL,uchar valueH)//綠色595發(fā)送函數(shù)初始化
- {
- uchar i;
- for(i=0;i<8;i++)
- {
- greenDS=valueL>>7;
- valueL<<=1;
- greenSH_CP=0;
- _nop_();
- _nop_();
- greenSH_CP=1;
- }
- for(i=0;i<8;i++)
- {
- greenDS=valueH>>7;
- valueH<<=1;
- greenSH_CP=0;
- _nop_();
- _nop_();
- greenSH_CP=1;
- }
- greenST_CP=0;
- _nop_();
- _nop_();
- greenST_CP=1;
- }
- void green_send()//發(fā)送綠色點(diǎn)陣數(shù)據(jù)
- {
- uint index;
- redOE=1;//紅色595輸出不使能
- for(index=1;index<17;index++)
- {
- greenOE=1;//綠色595輸出不使能
- shuaxin(index);//138譯碼器刷新
- Init_green595(display[index+16],display[index]);//帶入綠色點(diǎn)陣要發(fā)送的數(shù)據(jù)
- greenOE=0;//綠色595輸出使能
- delay(500);
- }
- }
- void main()
- {
- while(1)
- {
- red_send();//紅色顯示
- //green_send();//綠色顯示
- }
- }
復(fù)制代碼
|
-
原理圖.png
(150.92 KB, 下載次數(shù): 53)
下載附件
2020-2-11 17:58 上傳
16X16點(diǎn)陣原理圖
-
PCB.png
(281.44 KB, 下載次數(shù): 58)
下載附件
2020-2-11 17:58 上傳
16X16點(diǎn)陣PCB
-
2.jpg
(244.86 KB, 下載次數(shù): 63)
下載附件
2020-2-11 17:58 上傳
單片機(jī)驅(qū)動(dòng)板實(shí)物
-
1.jpg
(340.55 KB, 下載次數(shù): 52)
下載附件
2020-2-11 17:59 上傳
組裝好點(diǎn)陣
-
取模.png
(18 KB, 下載次數(shù): 56)
下載附件
2020-2-11 17:59 上傳
取字模設(shè)置
-
紅色顯示.jpg
(1.83 MB, 下載次數(shù): 54)
下載附件
2020-2-11 18:00 上傳
紅色顯示
-
綠色顯示.jpg
(1.55 MB, 下載次數(shù): 54)
下載附件
2020-2-11 18:00 上傳
綠色顯示
-
-
16X16點(diǎn)陣.rar
2020-2-11 18:00 上傳
點(diǎn)擊文件名下載附件
2.64 MB, 下載次數(shù): 6
|