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

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

單片機雙機串口通信程序設計

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

     利用方式1實現單片機雙機通信,主頻為6M,波特率為2400bps,電路見圖5-10。當兩個單片機距離較近時,甲、乙兩機的發送端與接收端分別直接相聯,兩機共地。執行程序,甲機將亮燈信號發送給乙機,若通信正常,乙機接收到信號后點亮20個發光二極管。乙機采用查詢與中斷兩種工作方式。當然20個LED乙機可單獨控制,也可接受甲機的控制,并執行甲機指令,還需要進一步完善程序.
甲機發送程序:
org 0000h          
sta:  mov tmod,#20h      ;設置波特率 
        mov tl1,#0FAh 
        mov th1,#0FAh       
        setb tr1
mov scon,#40h      ;置工作方式1
clr ti
mov a,#00h
mov sbuf,a         ;發送亮燈信號
wait: jbc ti,cont          ;發送成功清標志
  ajmp wait           ;等待發送完畢
cont: sjmp sta            ;重復發送
       end

乙機查詢工作方式接收:

org 0000h          
       mov tmod,#20h     ;設置通信波特率
       mov tl1,#0FAh
       mov th1,#0FAh      
       setb tr1
mov scon,#40h
clr ri
setb ren           ;允許接收
wait: jbc ri,read          ;接收成功清標志
ajmp wait           ;接收未完等待
read: mov a ,sbuf
mov p1,a            ;接收亮燈信號送P1口
sjmp $
       end

乙機中斷工作方式接收
org 0000h          
ajmp main
org 0023h
ajmp zd           ;轉串口中斷程序
START:   MOV TMOD,#20h      
                mov tl1,#0FAh
                mov th1,#0FAh      
                setb tr1
   mov scon,#50h
   clr ri
   mov ie,#90h        ;開中斷

   MAIN:sjmp $     主程序      
zd:    clr ri               ;清接收標志
;==============中斷程序還要再完善==============
  mov a ,sbuf         ;讀接收信號
mov p1,a
MOV R1,A           ;將收到的信號送緩存  
reti              ;中斷返回
end 
           
<單片機雙機串口通訊原理圖>

采用方式2 通信,數據幀格式是11位的,TB8為奇偶校驗位,接收過程要求判斷RB8,若出錯置F0標志為1,正確則置F0標志為0,然后返回。發送波特率375kbps,晶振為12MHz,所以SMOD=l。由于傳送數據的波特率與定時器無關,所以程序中無需對定時器編程. 以下程序出自http://m.zg4o1577.cn一位單片機大俠之手,借來用用,如果什么什么錯誤或者需要改進的地方請大家指出,不過我這里基本測試通過了。
send:
          MOV    SCON,#80H    ;設置串行口為方式2 
          MOV    PCON,#80H    ;SMOD=l 
          MOV     R0,#50H      ;設數據塊指針 
          MOV     R7,#20       ;設數據塊長度
  STA:  MOV    A,@R0        ;取數據給A 
                MOV     C,P 
                MOV     TB8,C       ;奇偶位P送給TB8,              
                MOV     SBUF,A     ;啟動發送
;====================================================
WAIT: JBC      TI,CONT     ;若發完一幀數據,清標志后發下一幀數據
                 AJMP     WAIT         ;未完等待
;=======================================================
CONT:INC      R0           ;修改數據指針 
                DJNZ     R7,STA      ;循環發送至結束
               RET
;========================================================                                                                                                    
;乙機接收程序如下:
;    在進行雙機通信時,兩機應采用相同的工作方式和波特率。          
;=============================================================
            MOV  SCON,#90H          ;設置串行口為方式2,REN為1,允許接收
            MOV  PCON,#80H          ;SMOD=1
            MOV  R0,#50H                ;設置數據塊首址
            MOV  R7,#20                   ;置數據塊長度
;=========================================================
     WAIT:JBC    RI,READ        ;接收完一幀數據則RI清零并讀入數據
            AJMP   WAIT                      ;未完等待
;==========================================
READ:MOV   A,SBUF         ;讀入數據
        JNB     PSW.0,PZ          ;收到數為偶數則轉
        JNB     RB8,ERR           ;收到數為奇數,發端為偶數則通信出錯
        SJMP    RIGHT                  ;相符則正確
PZ:JB     RB8,ERR         ;收到數為偶數,發端為奇數則出錯
;========================================
RlGHT:MOV    @R0,A         ;通信正確,存放數據
        INC     R0                            ;更改地址指針
        DJNZ    R7,WAIT            ;數據塊接收完否,未完繼續
        CLR     PSW.5                    ;通信正確,置F0為0
        RET                     ;返回
ERROR:SETB    PSW.5          ;通信出錯,置F0為l
        RET                     ;返回


現在我最關心的是傳輸距離,我要做的產品傳輸距離為5M,選用STC51系列不知能不能解決,高手請指點。

關閉窗口
主站蜘蛛池模板: 琪琪午夜伦伦电影福利片 | 午夜精品久久久久久久 | 少妇黄色 | 精品国产乱码久久久久久丨区2区 | 男人的天堂中文字幕 | jizz18国产| 成人精品国产一区二区4080 | va在线 | 九九视频在线观看 | 精品久久久久久久久久久久久久 | 日韩精品在线观看一区二区三区 | 亚洲情侣视频 | 99这里只有精品视频 | 国产一区二区久久久 | 国产精品久久久久久久久久免费看 | 欧美视频在线播放 | 国产日韩欧美一区 | 久久午夜精品 | 国产乱码久久久久久一区二区 | 亚洲男人网 | 色综合色综合色综合 | 亚洲国产成人av好男人在线观看 | 成人无遮挡毛片免费看 | 日日骚网 | 亚洲综合在线播放 | 成人在线亚洲 | 一区在线观看 | 久久久久久久国产 | 国产精品视频一二三区 | 日韩精品一区二区三区在线观看 | 久久国产精品一区二区三区 | 久久久国产一区二区三区 | 99国产精品99久久久久久 | 网色| 久久机热| 国产中文在线观看 | 国产精品久久久久影院色老大 | 精品久久久久久久久久久久久 | 精品国产精品三级精品av网址 | 水蜜桃亚洲一二三四在线 | 国产真实精品久久二三区 |