專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

電腦與單片機串口通信—猜數(shù)字

作者:鄭老師   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2010年08月10日   【字體:

  這個課程拖了挺久的,從上學(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”



              按下第二個鍵,產(chǎn)生了隨機數(shù)07



    當(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兄弟告訴我,搞單片機要耐得住寂寞,呵呵,看來是這樣的。
 

關(guān)閉窗口

相關(guān)文章