|
1.練習(xí)
(1)單片機(jī)發(fā)給電腦
請(qǐng)?jiān)凇熬毩?xí).txt”文件里的代碼基礎(chǔ)上,填寫(xiě)相應(yīng)的代碼,使得單片機(jī)串口打開(kāi),并工作在方式1,波特率為4800。并利用查詢方式不斷發(fā)送一組字符串給電腦。
電腦端使用串口調(diào)試助手軟件“sscom33.exe”,設(shè)置在波特率4800,數(shù)據(jù)位8位的方式下,并打開(kāi)串口。
可以發(fā)現(xiàn)“sscom33.exe”會(huì)收到單片機(jī)發(fā)過(guò)來(lái)的字符串。
(2)電腦發(fā)送給單片機(jī)
在練習(xí)1的基礎(chǔ)上,設(shè)置不變,增加:打開(kāi)接收功能,并打開(kāi)中斷開(kāi)關(guān)。
并編寫(xiě)串口中斷響應(yīng)函數(shù),在中斷函數(shù)內(nèi)將接收到的字節(jié)通過(guò)P0口輸出,P0口接8個(gè)LED燈。
電腦端使用“sscom33.exe”,設(shè)置不變,勾選“HEX發(fā)送”,然后在“字符串輸入框”輸入“F0”,并點(diǎn)擊發(fā)送。
可以發(fā)現(xiàn)單片機(jī)收到十六進(jìn)制的“F0”字節(jié),會(huì)讓高4個(gè)LED燈亮,低4個(gè)LED燈滅。
2.必做題
使用兩臺(tái)單片機(jī),兩臺(tái)單片機(jī)都可以同時(shí)收發(fā),其中任何一臺(tái)單片機(jī)的8個(gè)按鍵某個(gè)按下去,另一臺(tái)單片機(jī)的8個(gè)LED燈相應(yīng)位置的燈會(huì)亮起,松掉按鍵燈滅。
注意兩臺(tái)單片機(jī)的連線需要三根:TXD,RXD和GND
3.選做題
利用電腦發(fā)一個(gè)數(shù)字給單片機(jī),單片機(jī)將其顯示在數(shù)碼管上。或電腦發(fā)送數(shù)據(jù)給單片機(jī),單片機(jī)根據(jù)不同的內(nèi)容,執(zhí)行不同的工作(亮LED燈,或調(diào)節(jié)燈亮度,或發(fā)出聲音)
(注意:“sscom33.exe”勾選“HEX發(fā)送”后,將輸入框里的內(nèi)容當(dāng)成十六進(jìn)制發(fā)送,如果不勾選,則將輸入框里的內(nèi)容當(dāng)字符串一個(gè)一個(gè)字符地發(fā)送)
#include<reg51.h>
unsigned char code msg[16] = "hello world!\n";
void UsartConfiguration();
void Delay10ms(unsigned int c);
void main()
{
unsigned char i;
UsartConfiguration();
while(1)
{
for(i=0; i<16; i++)
{
//在這里使用查詢發(fā)送方式將msg[16]的字符一個(gè)一個(gè)發(fā)送出去
//put your code here!
}
Delay10ms(50);
}
}
void UsartConfiguration()
{
//在這里設(shè)置串口工作在方式1,波特率4800
//設(shè)置過(guò)程:(1)設(shè)置串口工作方式SCON和PCON
// (2)設(shè)置T1工作方式TMOD,初值TH1/TL1,開(kāi)啟T1定時(shí)器
// (3)因?yàn)槭褂貌樵儼l(fā)送,不用開(kāi)啟中斷
//put your code here!
}
void Delay10ms(unsigned int c)
{
unsigned char a, b;
for (;c>0;c--)
for (b=38;b>0;b--)
for (a=130;a>0;a--);
}
|
-
-
-
實(shí)驗(yàn)九.rar
2018-7-4 10:22 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
813.75 KB, 下載次數(shù): 6, 下載積分: 黑幣 -5
單片機(jī)控制LCD
|