日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]51單片機(jī)的串口,有4種方式,分別為方式0,方式1,方式2,方式3.由于我的目的,使用串口主要是為了和電腦進(jìn)行通信,所以主要使用方式1

51單片機(jī)的串口,有4種方式,分別為方式0,方式1,方式2,方式3.由于我的目的,使用串口主要是為了和電腦進(jìn)行通信,所以主要使用方式1

串口的方式1,其波特率與定時(shí)器T1相關(guān),公式如下:

方式1波特率 = (2SMOD×32)/(T1溢出率)

SMOD是一個(gè)寄存器,一般我們就取0了

T1的溢出率,即每秒T1計(jì)數(shù)滿幾次(相關(guān)知識(shí)可以看看前面筆記的記錄)

正是因?yàn)槿缟系墓?,所以設(shè)置TH1和TL1的初值,就能控制方式1的波特率了。不過(guò)一般波特率是固定的那么幾種,像2400,4800和9600等,要用的時(shí)候查一下初值就成了。

由于用的是Proteus來(lái)模擬串口(我的筆記本電腦根本沒(méi)串口),所以需要一個(gè)虛擬串口的軟件。推薦使用的是Visual Serial Port Driver,用起來(lái)非常的簡(jiǎn)單,直接點(diǎn)擊Add Pair就成了,會(huì)自動(dòng)增加一對(duì)串口,模擬的時(shí)候,分別連接這兩個(gè)端口就成。添加好后,可以把這個(gè)程序關(guān)閉,端口仍舊可以使用。

 

 

要說(shuō)一下的是,這軟件是一個(gè)收費(fèi)軟件(能免費(fèi)使用14天),所以,如果只想學(xué)習(xí)一下串口的話,我們就自私一下吧,不購(gòu)買(mǎi)了,直接使用一個(gè)控制軟件時(shí)間的軟件(比如Run As Date),讓程序以為時(shí)間一直沒(méi)變,就能一直試用了……

要試驗(yàn)一下Proteus是否可以進(jìn)行串口連接,可以直接打開(kāi)安裝目錄下的\SAMPLES\Interactive Simulation\COMPIM Demo,設(shè)置好波特率等參數(shù)后,使用“串口調(diào)試助手”,向Proteus發(fā)送數(shù)據(jù),看看能否接收到。

 

 

運(yùn)行后的效果:

 

 

如果像上圖一樣,在“助手”中輸入數(shù)據(jù),可以在Proteus的虛擬終端中接收到,說(shuō)明可以進(jìn)行串口的仿真了。如果不能接收,則需要檢查一下,波特率等參數(shù)是否設(shè)置的一致,特別是串口,要設(shè)置的“成雙成對(duì)”,如從“串口助手”的COM1發(fā)送到Proteus的COM2

------------------------------------------------------------------

開(kāi)始進(jìn)入實(shí)際編碼,我希望寫(xiě)一個(gè)上位機(jī)程序,來(lái)控制單片機(jī),單片機(jī)很簡(jiǎn)單,就是從P2口,接8個(gè)LED燈,而上位機(jī)程序則可以控制燈的亮或者暗,原理圖如下:

 

 

實(shí)物做的時(shí)候,由于電腦的串口和單片機(jī)的串口電平不同,需要使用MAX232芯片做電平轉(zhuǎn)換,但是這里是模擬,就不加芯片了,同樣能正常運(yùn)行。加上虛擬終端,是為了直接看到接收到的數(shù)據(jù),方便調(diào)試。

上位機(jī)程序如下圖,使用C#編寫(xiě),編程工具是VS 2008,因?yàn)橛玫氖亲詈?jiǎn)單的語(yǔ)法,所以是基于.NET 2.0寫(xiě)的。

 

 

上位機(jī)寫(xiě)的特別簡(jiǎn)單,選擇好端口后連接,然后控制單片機(jī)。可以做到控制任意燈的開(kāi)和關(guān),下面的控制則可以做到全開(kāi)或全關(guān),流水燈則是讓單片機(jī)演示一次流水燈(演示期間不再接受上位機(jī)控制)。上位機(jī)的控制代碼特別簡(jiǎn)單,就是給單片機(jī)發(fā)送一個(gè)8位的byte(這個(gè)花了我很多時(shí)間,因?yàn)閱纹瑱C(jī)上的char是8位的,我自然而然的把C#上的char也當(dāng)成是8位了,結(jié)果就是發(fā)給單片機(jī)的時(shí)候會(huì)出現(xiàn)錯(cuò)誤,感謝群里大蝦的熱情幫助)。控制格式如下(最低位為第0位):

位數(shù)作用

0表示選擇第幾個(gè)燈,0001表示選擇第1個(gè)燈,0101表示選擇第5個(gè)燈,當(dāng)?shù)?,6,7位任意位為1時(shí),則無(wú)效

1

2

3

4表示選擇的燈是開(kāi)還是關(guān),1表示開(kāi)

51表示流水燈

61表示全滅

71表示全開(kāi)

數(shù)據(jù)位從高位檢查起,所以如果第7位為1 ,則后面幾位不管設(shè)置成什么,都會(huì)是燈全開(kāi)的效果。

單片機(jī)程序和上位機(jī)程序都寫(xiě)得很簡(jiǎn)單,里面有詳細(xì)注釋,應(yīng)該一看就能明白了。演示效果如下(錄制的不是很流暢……):

 

『本文轉(zhuǎn)載自網(wǎng)絡(luò),版權(quán)歸原作者所有,如有侵權(quán)請(qǐng)聯(lián)系刪除』

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉