色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 51單片機匯編模擬串口通信程序

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

          作者: 時間:2012-10-16 來源:網(wǎng)絡(luò) 收藏

          編寫的

          T2作為波特率控制
          UART_RXD 是硬中斷0或1口,如果能進入中斷,說明該線有一個起始位產(chǎn)生,進入中斷后調(diào)
          用下面的接收程序。退出硬中斷之前還需要將硬中斷標志重新復(fù)位。
          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,計數(shù)器2啟動,時間計數(shù)啟動。
          MOV A,RCAP2L;計數(shù)器2重新裝載值
          MOV TL2,A ;置計數(shù)器2初值 ;T2需要重新裝載
          MOV A,DPH
          MOV A,RCAP2H
          MOV TH2,A
          MOV A,R0

          SETB TR2 ;TR2置1,計數(shù)器
          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,計數(shù)器2啟動,時間計數(shù)啟動。
          MOV A,RCAP2L;計數(shù)器2重新裝載值
          MOV TL2,A ;置計數(shù)器2初值 ;T2需要重新裝載
          MOV A,DPH
          MOV A,RCAP2H
          MOV TH2,A

          JB UART_RXD,$ ;REC
          SETB TR2 ;TR2置1,計數(shù)器2啟動,時間計數(shù)啟動。
          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,$ ;等待停止位,并重新復(fù)位計數(shù)器
          SETB UART_RXD

          POP DPL
          POP DPH
          POP IE
          RET

          數(shù)字通信相關(guān)文章:數(shù)字通信原理


          通信相關(guān)文章:通信原理


          塵埃粒子計數(shù)器相關(guān)文章:塵埃粒子計數(shù)器原理


          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉