標(biāo)題:
16x16點(diǎn)陣屏—單片機(jī)為何不輸出數(shù)據(jù)?
[打印本頁(yè)]
作者:
xiaochong6985
時(shí)間:
2022-9-13 19:14
標(biāo)題:
16x16點(diǎn)陣屏—單片機(jī)為何不輸出數(shù)據(jù)?
#include <reg51.h>
#define u8 unsigned char
#define u16 unsigned short int
//定義HC595使用的IO口
sbit HC595_DATA=P1^2;
sbit HC595_RCK=P1^3;
sbit HC595_SCK=P1^4;
void HC595_Send_Byte(u8 byte)
{
u8 i;
for(i=0;i<8;i++)
{
if(byte&0x80)HC595_DATA=1;
else HC595_DATA=0;
HC595_SCK=0;
HC595_SCK=1;
byte<<=1;
}
}
/*
將HC595存儲(chǔ)器里的數(shù)據(jù)輸出到總線(xiàn)上
*/
void HC595_DataOut()
{
HC595_RCK=0;
HC595_RCK=1;
HC595_RCK=0;
}
/*
延時(shí)函數(shù)
*/
void DelayMs(u8 p)
{
u8 z,e;
for(z=p;z>=0;z--);
for(e=110;e>=0;e--);
}
/*
HC595的3、4級(jí)是控制點(diǎn)陣的列(低電平)
HC595的1、2級(jí)是控制點(diǎn)陣的行(高電平)
給HC595第1級(jí)發(fā)送的數(shù)據(jù)會(huì)移動(dòng)到最后一個(gè)HC595。
*/
int main()
{
u8 i,j;
u16 Row;
u16 col;
while(1)
{
for(i=0;i<16;i++)
{
Row=0x0000;
Row|=1<<i;
for(j=0;j<16;j++)
{
col=0xFFFF;
col&=~(1<<j);
HC595_Send_Byte(col>>8);
HC595_Send_Byte(col);
HC595_Send_Byte(Row>>8);
HC595_Send_Byte(Row);
HC595_DataOut();
DelayMs(100);
HC595_Send_Byte(0xFF);
HC595_Send_Byte(0xFF);
HC595_Send_Byte(0x00);
HC595_Send_Byte(0x00);
HC595_DataOut();
}
}
}
}
復(fù)制代碼
屏幕截圖 2022-09-13 173304.png
(1.63 KB, 下載次數(shù): 103)
下載附件
2022-9-13 19:10 上傳
一直保持這樣不變!
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1