實(shí)驗(yàn)一 李小東0105

實(shí)驗(yàn)?zāi)康模?/b>為了進(jìn)一步掌握單片機(jī)中點(diǎn)陣的使用,理解單片機(jī)的工作原理,實(shí)現(xiàn)在單片機(jī)上實(shí)現(xiàn)顯示

實(shí)驗(yàn)器材:keil、單片機(jī)(大板)、PZ-ISP普中自動下載軟件。

實(shí)驗(yàn)原理:8*8點(diǎn)陣共由64個發(fā)光二極管組成,且每個發(fā)光二極管是放置在行線和列線上的交叉點(diǎn)上,當(dāng)對應(yīng)的某一行置高電平,某一列置低電平是,相應(yīng)的二極管就會發(fā)亮。設(shè)計(jì)出漢字,將其轉(zhuǎn)化為二進(jìn)制進(jìn)而轉(zhuǎn)化為十六進(jìn)制。

實(shí)驗(yàn)步驟:

1.在keil中新建工程,編寫.c文件。

2.編譯調(diào)試文件,修改錯誤及警告。

3.生成.hex文件。

4.在燒錄軟件中下載生成的.hex軟件。

程序:

#include#includesbit SRCLK=P3^6;

sbit RCLK=P3^5;

sbit SER=P3^4;

//--定義要使用的IO口--//

#define COMMONPORTS P0

//--列選通控制--//

unsigned char code TAB[8]? = {0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};

//--點(diǎn)陣字碼--//

unsigned char code CHARCODE[6][8]=

{

0x00,0x08,0x12,0x01,0xFF,0x00,0x10,0x08,? //小

0x00,0x2a,0x3c,0x2a,0x7f,0xa8,0x2c,0x02,? //東

0x11,0xf2,0xbc,0xf2,0x1f,0x38,0x04,0xff,//別

0x38,0x28,0x38,0x23,0x55,0xd9,0x51,0x47,//吃

0x00,0x80,0x84,0x82,0xbf,0xc0,0x80,0x00,//了

{0xfb,0xfb,0xfb,0x00,0x00,0xfb,0xfb,0xfb} //嘆號

};

void delay(unsigned int time){ unsigned int i,j; for(i=0;i>7;

dat<<=1;

SRCLK=1;

_nop_();

_nop_();

SRCLK=0;

}

RCLK=1;

_nop_();

_nop_();

RCLK=0;

}

/*******************************************************************************

* 函數(shù)名? ? ? ? : main

* 函數(shù)功能 ? : 主函數(shù)

* 輸入? ? ? ? ? : 無

* 輸出? ? ? ? : 無

*******************************************************************************/

void main()

{

unsigned char tab, j;

unsigned int? i;

while(1)

{

for(i= 0; i<50; i++ )? //兩個字之間的掃描間隔時間

{

for(tab=0;tab<8;tab++)

{

Hc595SendByte(0x00); ? ? //消隱

COMMONPORTS = TAB[tab]; //輸出字碼

Hc595SendByte(CHARCODE[j][tab]);

delay(2);

}

}

j++;

if(j == 6)

{

j = 0;

}

}

}

結(jié)果:

錄視頻的時候,不知道為什么,是反的。

心塞。電腦調(diào)不了GIF方向,調(diào)了就只能保存圖片格式。大家將就看吧,文字是 “小東別吃了!!”


調(diào)試與修改:

1.老師的源代碼是顯示四個字的。我把自己的字替換之后,發(fā)現(xiàn)即使不顯示字,它會自動停留顯示字的時間,并且,想要顯示多于四個字就顯示不出來。后來,經(jīng)過我不懈的努力......我發(fā)現(xiàn)需要修改

//--點(diǎn)陣字碼--//

unsigned char code CHARCODE[6][8]= ? ?這里的數(shù)組,和

j++;

if(j == 6) 這里的循環(huán)體,你想顯示幾個字就改成幾個字。

2.中英文標(biāo)點(diǎn)?。〔荒苡没炝?!好幾次出現(xiàn)了這種錯誤怎么也找不到,他下面好像也沒有提示,但是我發(fā)現(xiàn)如果他最后顯示的時間很短,比如0.03,這個程序就有錯誤,如果是0.08,大概就沒問題。(辛酸)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容