這個課程拖了挺久的,從上學(xué)期的十幾周開始的,F(xiàn)在的成功也是建立在一款現(xiàn)成的電腦軟件——串口調(diào)試助手,本來想自己用C++的MFC編寫的,不過之后的突襲學(xué)習(xí)C++并沒有達(dá)到想要的結(jié)果,加上后來考試就拖了下來。不過在單片機方面也系統(tǒng)的學(xué)習(xí)了串口通信(異步,UART)和程序的編寫方式,實現(xiàn)了兩個單片機之間的通信,至于隨機數(shù)的產(chǎn)生,這個是用了定時器,很簡單。
昨天看站長用到串口調(diào)試助手,覺得不錯,想下一個,沒想到原來我以前就下過,所以順便就做完了這個猜數(shù)字游戲,具體來說,除了電腦上的編程還是很簡單的,應(yīng)該說是最基礎(chǔ)的,在方式一9600波特率下通信,9位含停止位傳輸,學(xué)單片機的是必學(xué)的。
對于筆記的話九針串口(即RS232串口)轉(zhuǎn)USB需要驅(qū)動程序,不過在我觀察USB和串口除了電平不同,其他都一樣(串口是12V電平,單片機下載程序需要用MAX232芯片來轉(zhuǎn)化串口電平到TTL電平),都是VCC,GND,TX,RX,雖然RS232是九針即九個接觸線,但是真正用到單片機的就四根線。
對于C51的用法已經(jīng)比以前成熟多了,還是要學(xué)習(xí),接下來要完成我的16*8點陣俄羅斯方塊,繼續(xù)努力吧
不費話了,大家看看效果吧。
制作要求:單片機產(chǎn)生隨機數(shù),在電腦上猜數(shù)字,猜三次,如果猜的數(shù)比產(chǎn)生的隨機數(shù)大,那么在電腦上顯示大,猜的數(shù)小的話在電腦上顯示小,猜出來和失敗都有提示、
圖1 程序(局部)
圖中軟件為單片機程序強力編譯器Keil uVision2,這是為微處理器打造的。Keil uVision3是為ARM打造
按下第一個鍵后單片機發(fā)送字符串,電腦接收到字符串“ready”
當(dāng)隨機數(shù)產(chǎn)生的時候,電腦接收到單片機的字符串“go”,意為可以猜數(shù)字了
有點遺憾,發(fā)送數(shù)據(jù)的時候這個軟件只能十六進(jìn)制發(fā),也就是說等等看到0a就是十進(jìn)制10,0b是11,0c是12,0d是13,0e是14,0f是15。如果把左下角的“十六進(jìn)制發(fā)送”勾去掉,就是用ASCII碼發(fā),會出錯的。而我從單片機發(fā)到電腦上的當(dāng)然是ASCII碼。
圖中是02,因為隨機數(shù)是07,所以小了,電腦就接收到“small”,讓你繼續(xù)猜。
09 大了
再猜一個錯的。
后記:沒什么好說的,我想希望有人對這個感興趣吧,因為串口對于單片機控制很重要,如果我現(xiàn)在不是用串口線而是用無線發(fā)射模塊,那么我就可以用來控制我上次做的小車,這個是很有趣的一件事情吧,但是要等到我學(xué)好C++,因為51hei站長曾經(jīng)用計算機來控制無人飛機讓飛機按照固定的軌道飛行,還有單片機控制GSM和GPS的,就可以用來發(fā)短信和全球定位,所以單片機是很有趣的東西,希望有更多人來玩單片機吧。
曾經(jīng)RAM兄弟告訴我,搞單片機要耐得住寂寞,呵呵,看來是這樣的。