電子開發網

電子開發網電子設計 | 電子開發網Rss 2.0 會員中心 會員注冊
搜索: 您現在的位置: 電子開發網 >> 電子開發 >> 單片機 >> 正文

51單片機匯編模擬串口通信程序

作者:佚名    文章來源:本站原創    點擊數:    更新時間:2011/8/25

匯編編寫的模擬串口通信程序

T2作為波特率控制
UART_RXD 是硬中斷0或1口,如果能進入中斷,說明該線有一個起始位產生,進入中斷后調
用下面的接收程序。退出硬中斷之前還需要將硬中斷標志重新復位。
UART_TXD 是任何其它IO即可。

UART_SEND:
    PUSH IE
    PUSH DPH
    PUSH DPL
    PUSH PSW
    PUSH 00H
    PUSH ACC
    CLR EA
    SETB UART_TXD        ;START BIT
   
    MOV R0,A
    CLR TR2    ;TR2置1,計數器2啟動,時間計數啟動。
    MOV A,RCAP2L;計數器2重新裝載值
    MOV TL2,A    ;置計數器2初值  ;T2需要重新裝載
    MOV A,DPH
    MOV A,RCAP2H
    MOV TH2,A
    MOV A,R0
   
    SETB TR2    ;TR2置1,計數器
    JNB TF2,$
    CLR TF2
    JNB TF2,$
    CLR TF2
   
    CLR UART_TXD        ;START BIT
    JNB TF2,$
    CLR TF2
    JNB TF2,$
    CLR TF2
   
    MOV R0,#08H
UART_SEND_LOOP:
    RRC A
    MOV UART_TXD,C        ;8 BIT
    JNB TF2,$
    CLR TF2
    JNB TF2,$
    CLR TF2
    DJNZ R0,UART_SEND_LOOP
   
    SETB UART_TXD        ;END BIT
    JNB TF2,$
    CLR TF2
    JNB TF2,$
    CLR TF2
   
    POP ACC
    POP 00H
    POP PSW
    POP DPL
    POP DPH
    POP IE
    RET
   
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
UART_REC:
    PUSH IE
    PUSH DPH
    PUSH DPL
    CLR EA
   
    CLR TR2    ;TR2置1,計數器2啟動,時間計數啟動。
    MOV A,RCAP2L;計數器2重新裝載值
    MOV TL2,A    ;置計數器2初值  ;T2需要重新裝載
    MOV A,DPH
    MOV A,RCAP2H
    MOV TH2,A
   
    JB UART_RXD,$    ;REC
    SETB TR2    ;TR2置1,計數器2啟動,時間計數啟動。
    JNB TF2,$
    CLR TF2        ;0.5 BIT
   
    JNB TF2,$
    CLR TF2        ;1 BIT
   
    JNB TF2,$
    CLR TF2        ;1.5 BIT
    MOV C,UART_RXD
    MOV ACC.0,C
   
    JNB TF2,$
    CLR TF2
   
    JNB TF2,$
    CLR TF2        ;2.5
    MOV C,UART_RXD
    MOV ACC.1,C
   
    JNB TF2,$
    CLR TF2
   
    JNB TF2,$
    CLR TF2        ;3.5
    MOV C,UART_RXD
    MOV ACC.2,C
   
    JNB TF2,$
    CLR TF2
   
    JNB TF2,$
    CLR TF2        ;4.5
    MOV C,UART_RXD
    MOV ACC.3,C
   
    JNB TF2,$
    CLR TF2
   
    JNB TF2,$
    CLR TF2        ;5.5
    MOV C,UART_RXD
    MOV ACC.4,C
   
    JNB TF2,$
    CLR TF2
   
    JNB TF2,$
    CLR TF2        ;6.5
    MOV C,UART_RXD
    MOV ACC.5,C
   
    JNB TF2,$
    CLR TF2
   
    JNB TF2,$
    CLR TF2        ;7.5
    MOV C,UART_RXD
    MOV ACC.6,C
   
    JNB TF2,$
    CLR TF2
   
    JNB TF2,$
    CLR TF2        ;8.5
    MOV C,UART_RXD
    MOV ACC.7,C
   
    JNB TF2,$
    CLR TF2        ;9.5
    JNB UART_RXD,$    ;等待停止位,并重新復位計數器
    SETB UART_RXD
   
    POP DPL
    POP DPH
    POP IE
    RET

Tags:51單片機,匯編,串口通信程序  
責任編輯:admin
請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個字
[ 查看全部 ] 網友評論
關于我們 - 聯系我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁面
下到頁底
晶體管查詢
日本丰满岳乱妇在线观看| 中文字幕人成乱码熟女| 黄页网址在线观看| 欧美精品久久久久久久自慰| 在车里被撞了八次高c| 伊人久久精品亚洲午夜| 中文字幕网在线| 精品国产_亚洲人成在线| 成年美女黄网站小视频| 国产人碰人摸人爱视频| 久久综合色综合| 高清一级淫片a级中文字幕| 欧美姓爱第一页| 国内精品久久久久影院一蜜桃| 从镜子里看我怎么c你| 亚洲a∨无码男人的天堂| 高清欧美性暴力猛交| 日韩在线不卡视频| 国产人成视频在线视频| 三级小说第一页| 欧美一级做一a做片性视频 | 国产精品免费_区二区三区观看| 亚洲最大中文字幕无码网站| 269tv四季直播苹果下载| 欧美在线视频二区| 国产综合久久久久鬼色| 亚洲国产精品专区| 西西人体午夜视频| 怡红院在线视频精品观看| 你是我的女人中文字幕高清| 888亚洲欧美国产VA在线播放| 日本高清免费中文字幕不卡| 国产亚AV手机在线观看| 久久99精品久久水蜜桃| 欧美精品久久一区二区三区| 国产精品免费看香蕉| 久久国产精品亚洲一区二区| 美女主播免费观看| 成人av在线一区二区三区| 俺去啦在线观看| aa级毛片毛片免费观看久|