久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

單片機串口通信

作者:佚名   來源:本站原創   點擊數:  更新時間:2007年07月07日   【字體:

串口通訊對單片機而言意義重大,不但可以實現將單片機的數據傳輸到電腦端,而且也能實現電腦對單片機的控制,比如你可以把寫入單片機的數據碼顯示在電腦上,如可以使用一個按鍵,當按下它時使某一個字母如:AA,通過單片機的串口將它發送到電腦上顯示,起到仿真器的某些功效,站長在開發數據采集設備時就是通過串口來檢查數據正確與否的。

MCS-51內部含有一個可編程全雙工串行通信接口,具有UART的全部功能。該接口電路不僅能同時進行數據的發送和接收,也可作為一個同步移位寄存器使用。

   在進行異步通信時,數據的發送和接收分別在各自的時鐘(TCLK和RCLK)控制下進行的,但都必須與字符位數的波特率保持一致。MCS-51串行口的發送和接收時鐘可由兩種方式產生,一種是由主機頻率fosc經分頻后產生,另一種方式是由內部定時器T1或T2的溢出率經16分頻后提供。

 

    51單片機有一個全雙工的串行通訊口,所以單片機和電腦之間可以方便地進行串口通訊。進行串行通訊時要滿足一定的條件,比如電腦的串口是RS232電平的,而單片機的串口是TTL電平的,兩者之間必須有一個電平轉換電路,我們采用了專用芯片MAX232進行轉換,雖然也可以用幾個三極管進行模擬轉換,但是還是用專用芯片更簡單可靠。我們采用了三線制連接串口,也就是說和電腦的9針串口只連接其中的3根線:第5腳的GND、第2腳的RXD、第3腳的TXD。這是最簡單的連接方法,但是對我們來說已經足夠使用了,電路如下圖所示,MAX232的第10腳和單片機的11腳連接,第9腳和單片機的10腳連接,第15腳和單片機的20腳連接。本網站的提供的實驗板上已經裝配好了全部硬件。

串口通訊的硬件電路如上圖所示

    為了能夠在電腦端看到單片機發出的數據,我們必須借助一個WINDOWS軟件進行觀察單片機串口通信,這里我們利用一個免費的電腦串口調試軟件。

  

    點擊這里可以下載并運行這個chuankou.exe串口調試軟件 這是一個綠色的軟件,無需安裝,可以直接在當前位置運行這個軟件。軟件界面如上圖,我們先要設置一下串口通訊的參數,將波特率調整為4800,勾選十六進制顯示。串口選擇為COM1,當然將網站提供的51單片機實驗板的串口也要和電腦的COM1連接,將燒寫有以下程序的單片機插入單片機實驗板的萬能插座中,并接通51單片機實驗板的電源,這時只要按下K1一次,在串口調試助手軟件的接收區界面中就會增加一個“AF”字符,表示單片機向電腦發送“AF”字符成功。串口實驗的源程序如下所示:

;這是一個AT89C51單片機實驗開發板向PC機的串口單向發送數據AF的演示程序
;采用MAX232專用芯片作RS232/TTL電平轉換.
;通訊波特率為4800KBPS,只要按下一次K1(就是P3.6引腳變成低電平)
;就發送一個16進制的AF字符

ORG 0000H
MOV SCON,#50H;設置成串口1方式
MOV TMOD,#20H;波特率發生器T1工作在模式2上
MOV PCON,#80H;波特率翻倍為2400x2=4800BPS
MOV TH1,#0F3H;預置初值(按照波特率2400BPS預置初值)
MOV TL1,#0F3H;預置初值(按照波特率2400BPS預置初值)
SETB TR1;啟動定時器T1
;以上完成通訊初始化設置

WRIT:JB P3.6,$;判斷K1是否按下,如果沒有按下就等待
ACALL DELAY10;延時10毫秒消觸點抖動
JB P3.6,WRIT;去除干擾信號
JNB P3.6,$;等待按鍵松開

MOV A,#0AFH;將16進制的字符AF發送到串口去
MOV SBUF,A;將AF通過串口發送出去

AJMP WRIT

;10毫秒延時子程序
DELAY10:MOV R4,#20
D2:MOV R5,#248
DJNZ R5,$
DJNZ R4,D2
RET

END

===============單片機串口通信=========================

一、發送和接收的過程如下:

    串行口的發送過程由指令MOV  SBUF,A啟動,即CPU由一條寫發送緩沖器的指令把數據(字符)寫入串行口的發送緩沖器SBUF(發)中,再由硬件電路自動在字符的始、末加上起始位(低電平)、停止位(高電平)及其它控制位(如奇偶位等),然后在移位脈沖SHIFT的控制下,低位在前,高位在后,從TXD端(方式0除外)一位位地向外發送。

    串行口的接收與否受制于允許接收位REN的狀態,當REN被軟件置“1”后,允許接收器接收。接收端RXD一位位地接收數據,直到收到一個完整的字符數據后,控制電路進行最后一次移位,自動去掉啟始位,使接收中斷標志RI置“1”,并向CPU申請中斷。CPU響應中斷,用一條指令(MOV  A,SBUF)把接收緩沖器SBUF(收)的內容讀入累加器。
 
   TI和RI是由硬件置位的,但需要用軟件復位。
 
二、相關的寄存器
   1、SBUF是兩個在物理上獨立的接收、發送緩沖器,可同時發送、接收數據。兩個緩沖器只用一個字節地址99H,可通過指令對SBUF的讀寫來區別是對接收緩沖器的操作還是對發送緩沖器的操作。串行口對外有兩條獨立的收發信號線RXD(P3.0)、TXD(P3.1),因此可以同時發送、接收數據,實現全雙工。
   2、SCON寄存器用來控制串行口的工作方式和狀態,可按位尋址,其字節地址為98H。
   3、PCON中的SMOD用來控制波特率加倍。
   4、TMOD設置定時器1的工作方式,用來產生波特率
   5、如果用到中斷,則還需要用到中斷相關的寄存器IE,IP等

三、四種工作方式:
方式0:
      同步移位寄存器方式,其波特率是固定為振蕩頻率fosc的1/12。在這種工作方式下,發送和接收串行數據都通過RXD(P3.0)進行,從TXD(P3.1)輸出移位脈沖,控制外部的移位寄存器移位。1幀信息為8位,沒有起始位,停止位。
方式1:
       8位UART,1幀信息為10位,其中一位起始位“0”、八位數據位(先低位后高位)和一個停止位“1”,波特率可變,根據定時器1的溢出率計算。
方式2:
       9位UART,1幀信息為11位,其中一位起始位“0”、八位數據位(先低位后高位),一位控制位(第九位)和一個停止位“1”。波特率為振蕩頻率的1/64或1/32
方式3:
       9位UART,幀信息為11位,其中一位起始位“0”、八位數據位(先低位后高位),一位控制位(第九位)和一個停止位“1”。波特率可變,根據定時器1的溢出率計算。
     附加的第9位數據為SCON中的TB8的值,它由軟件置位或清零,可作為多機通信中地址/數據信息的標志位,也可作為數據的奇偶校驗位。

四、連接     
      由于串口用的是TTL電平,和RS232電平不同,因此,單片機和PC通信時需要進行電平轉換,常用的IC是MAX232,連接圖如圖所示,其中MAX232供電腳為+5V,中間連接的電解電容取50V 1UF。

 
MAX232內部框圖
       
單片機和PC通信連接圖

即所謂的三線連接法。

===================================================

用VC來做個上位機軟件,用單片機來做下位機顯示,數據從PC機發送過來,經過單片機處理顯示。

首先你想把它學好,就一定要下苦功夫,因為這個不是一下子就能學好的,要經過不斷的實踐努力。

學習也有一段時間了,用的書是(《Visual C /Turbo C串口通信編程實踐》 龔建偉)但是發現自己可能毅力不夠,經常被一些困難所嚇倒。碰到問題時不能夠想方設法去解決。可能是可以學習例子太少了,網上的資源也不是很多。。。。。。

發現假如用MSCOMM控件來編的話,就是那個變量VARIANT,這個不好弄懂。學VC首先要有一定的C語言基礎,和C 基礎,可能是C 還沒學完,基礎不扎實,導致繼續下去有點困難。

先實現一個簡單的功能吧,用VC做個界面,當按下相應的鍵時,發送相應的數據到單片機中,然后將數據送到P0口來顯示。

呵呵,一定要把那個變量給弄懂了,這樣一切都好辦了

在后面的學習中,我將把學習的心得寫出來,與大家交流交流

有在學VC的朋友可以和我交流交流 ,大家一起進步

關閉窗口

相關文章

主站蜘蛛池模板: 久久综合狠狠综合久久 | 国产在线一区二区 | 99久久中文字幕三级久久日本 | 欧美一级免费黄色片 | 欧美v在线 | 午夜视频免费在线观看 | 久久久久久久久久久久亚洲 | 国产性网 | 久久综合久 | 亚洲免费在线播放 | 亚洲成人福利在线观看 | 在线视频一区二区 | 天堂亚洲 | 精品二区 | 国产成人精品一区二区三区四区 | 国产精彩视频一区 | 亚洲欧美激情网 | 午夜视频在线免费观看 | 91热在线| 国产亚洲第一页 | 91精品久久久久久久久中文字幕 | 国产免费视频 | 欧美日韩在线免费 | 久久人人爽人人爽人人片av免费 | 免费h视频 | 麻豆亚洲 | 国产精品国产精品国产专区不片 | 中文字幕亚洲一区二区三区 | 亚洲成av人片在线观看无码 | 久久99久久99精品免视看婷婷 | 福利网址 | 成人高清在线视频 | 亚洲国产视频一区二区 | 青青久久久 | 国产一区二区三区在线视频 | 日日欧美 | 国产成人高清在线观看 | 人人看人人爽 | 精品国产一区二区三区久久 | 天堂中文资源在线 | 免费视频99|