找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 6505|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

當(dāng)單片機(jī)與計(jì)算機(jī)串行通訊時(shí)無MAX232電平轉(zhuǎn)換芯片時(shí)怎么辦?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:70976 發(fā)表于 2014-12-27 14:57 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式



  • 用分立元件搭建的串口電平轉(zhuǎn)換電路:特點(diǎn)是電路簡單實(shí)用,具時(shí)效性!使用時(shí)只需將TO_MCU的接口接到目標(biāo)單片機(jī)板中與相應(yīng)的串口引腳相連!DB通過串口線直接與計(jì)算機(jī)串口相連接即能完成單片機(jī)與計(jì)算機(jī)之間的通訊!
    以下是模塊化之后的PCB版圖:

    同時(shí),當(dāng)與計(jì)算機(jī)通訊之時(shí)接利用計(jì)算機(jī)超級(jí)終端軟件或串口調(diào)試助手與單片機(jī)進(jìn)行通訊!
    注意計(jì)串行通訊學(xué)習(xí)的幾個(gè)要點(diǎn):
    1、數(shù)據(jù)流方式:并行和串行,并行特點(diǎn)是傳輸速度快,適合短距離傳輸,同時(shí)占用的IO資源多,造價(jià)高。串行特點(diǎn)是傳輸速度不及并行,但是能夠完成遠(yuǎn)距離的數(shù)據(jù)傳輸,同時(shí)占用的資源少。
    2、通訊方式:同步和異步,同步是指兩個(gè)或多個(gè)實(shí)體模塊之間采用同一個(gè)系統(tǒng)時(shí)鐘作為系統(tǒng)驅(qū)動(dòng)源,異步是指兩個(gè)或多個(gè)實(shí)體模塊之間采用各自的時(shí)鐘信號(hào)作為自己的驅(qū)動(dòng)源信號(hào)。當(dāng)多個(gè)模塊并存時(shí),在同一個(gè)系統(tǒng)中可同時(shí)存在異步和同步的混合通訊方式。結(jié)合1說法就有了同步并行和異步并行,同步串行和異步串行四種數(shù)據(jù)傳輸通訊方式。
    3、重點(diǎn)了解異步串行通訊:
    A、通訊方式:單工、半雙工、全雙工!重點(diǎn)學(xué)習(xí)全雙工…
    B、通訊方式中掌握波特率的計(jì)算方法
    C、定時(shí)器的在串行通訊中的運(yùn)用(重點(diǎn))
    D、串行特殊功能寄存器和控制寄存器的運(yùn)用
    E、收發(fā)寄存器SBUF在收與發(fā)過程中的含義 例如:(重點(diǎn))
       SBUF=R;//(發(fā)送) 此時(shí)會(huì)將并行數(shù)據(jù)+加上幀信息位(起始位,校驗(yàn)位,停止位)數(shù)據(jù)轉(zhuǎn)化成串行數(shù)據(jù)送出
       R=SBUF;//(接收)此時(shí)會(huì)將發(fā)收到到的串行數(shù)據(jù)(由數(shù)據(jù)位和幀信息位)提取其中的數(shù)據(jù)位并將提取到的數(shù)據(jù)轉(zhuǎn)化成并行數(shù)據(jù)在單片機(jī)中進(jìn)行需要的處理
       其中R可以為char R型變量或多重char型指針數(shù)組R
       必須重點(diǎn)掌握:可完成通過計(jì)算對(duì)單片機(jī)在工業(yè)控制、數(shù)據(jù)采集、實(shí)時(shí)監(jiān)測(cè)、智能模塊等等的運(yùn)用!
    舉例:




  1. //==========================================================================
  2. //功能:系統(tǒng)將計(jì)算機(jī)發(fā)送來的數(shù)據(jù)送給P1口進(jìn)行顯示或作用到外部設(shè)備,同時(shí)系統(tǒng)將
  3. //      接收到的數(shù)據(jù)返回到計(jì)算機(jī)中
  4. //調(diào)試工具:kiel_C 串口調(diào)試助手
  5. //程序制作人:張建剛
  6. //時(shí)間 :2009年04月26日
  7. //==========================================================================
  8. #include<reg52.h>
  9. #include<stdio.h>
  10. #define uchar unsigned char
  11. #define uint  unsigned int
  12. bit flag;
  13. uchar r;
  14. void main()
  15. {
  16. r=0;   //初始化
  17. TMOD=0x20;//設(shè)置定時(shí)器1為工作方式2
  18. TH1=0xfd; //定時(shí)器裝入初值
  19. TL1=0xfd;
  20. TR1=1;   //啟動(dòng)定時(shí)器
  21. REN=1;   //串行使能
  22. SM0=0;
  23. SM1=1;   //通訊方式1,可變波特率
  24. EA=1;   //開總中斷
  25. ES=1;   //開串行中斷
  26. while(1)
  27. {
  28.   if(flag==1) //等待收到完成標(biāo)志位
  29.   {
  30.    ES=0; //禁止串行中斷
  31.    flag=0; //接收完成標(biāo)志位置0
  32.    SBUF=r; //將輸入的值返回給計(jì)算機(jī)
  33.    while(!TI); //等待發(fā)送標(biāo)中斷志位置1
  34.    TI=0; //清除發(fā)送標(biāo)中斷志位
  35.    ES=1;// 開啟串行中斷
  36.   }
  37. }
  38. }
  39. void ser() interrupt 4   //串行中斷服務(wù)子程序 當(dāng)接收中斷標(biāo)志被置1
  40. {    //此時(shí)程序?qū)?huì)執(zhí)行中斷服務(wù)程序
  41. RI=0;   //清除接收中斷標(biāo)志
  42. P1=SBUF;         //將接收到的數(shù)據(jù)送到P1口進(jìn)行顯示或者作用給外部設(shè)備
  43. r=SBUF;   //將接收到的數(shù)據(jù)送給r定義寄存器
  44. flag=1;   //接收完成標(biāo)志置1
  45. }
復(fù)制代碼



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表