欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2223|回復: 2
收起左側

8051單片機匯編語言 求解串口通信只發不收?

[復制鏈接]
ID:886346 發表于 2021-5-28 15:41 | 顯示全部樓層 |閱讀模式
  1.         ORG                0000H
  2.         LJMP        START
  3.         ORG                0023H
  4.         LJMP        SBR1
  5. START:
  6.         MOV                TMOD, #20H               ;foc=6Mhz   1200bps
  7.         MOV                TL1, #0F3H
  8.         MOV                TH1, #0F3H
  9.         SETB        TR1
  10.         MOV                SCON, #50H
  11.         SETB        ES
  12.         SETB        EA
  13. Loop:
  14.         SJMP        $
  15.         ORG                0200H
  16. SBR1:
  17.         JB                RI,SOUT
  18.         JB                TI,SIN
  19.         LJMP        Loop
  20. SOUT:
  21.         CPL         RI
  22.         MOV                A, SBUF
  23.         RET
  24. SIN:
  25.         CPL         TI
  26.         MOV                SBUF, A
  27.         RET
  28. END
復制代碼
示波器上可以看到有發的波形,但是另一個信道怎么也沒有接受信號,虛擬串口中斷也沒有顯示接受的字符
1.png
回復

使用道具 舉報

ID:741935 發表于 2021-5-30 19:53 | 顯示全部樓層
發送端
ORG 0000H
JMP START
ORG 0100H
START:  
ACALL INIT
MAIN:
MOV P2,#0F0H
MOV A,P2
XRL A,#0F0H
JZ MAIN
ACALL KEYSCAN
MOV A,30H
MOV DPTR,#TABLE2
MOVC A,@A+DPTR
MOV P1,A
SETB P0.5
CLR P0.4
CLR P0.3
ACALL DELAY2
SETB P0.3
ACALL DELAY
ALOOP1:
MOV 40H,A
MOV SBUF,#0E1H
JNB TI,$;發送中斷
CLR TI
JNB RI,$;接收中斷
CLR RI
MOV A,SBUF;二號機應答信號
XRL A,#0E2H;異或判定是否準備完畢(判斷發送消息是否為#0E2)
JNZ ALOOP1;開始發送數據時定義初始地址,這個地址里面存儲要發送的數據
MOV R0,#40H
MOV R6,#00H;校驗和
ALOOP2:
MOV SBUF,@R0
MOV A,R6
ADD A,@R0
MOV R6,A
JNB TI,$
CLR TI
MOV SBUF,R6
JNB TI,$;發送中斷
CLR TI
JNB RI,$;接收應答中斷
CLR RI
MOV A,SBUF
XRL A,#00H
JNZ ALOOP2
JMP MAIN
INIT:
MOV A,#00000001B
MOV P1,A
ACALL ENABLE
MOV A,#00111000B
MOV P1,A
ACALL ENABLE
MOV A,#00001111B
MOV P1,A
ACALL ENABLE
MOV A,#00000110B
MOV P1,A
ACALL ENABLE
MOV A,#00H
MOV P1,A
ACALL ENABLE
CLR EA
MOV TMOD,#20H
MOV TH1,#0F4H
MOV TL1,#0F4H
MOV PCON,#00H
SETB TR1
MOV SCON,#50H
KEYSCAN:MOV P2,#0F0H;先讀列再讀行
        MOV A,P2
        ANL A,#0F0H
                MOV R3,A
                MOV P2,#0FH
                MOV A,P2
                ANL A,#0FH
                ORL A,R3
                CJNE A,#0FFH,KEYPRO;檢測鍵值是否成功讀入
                RET
KEYPRO: MOV R3,A
        MOV DPTR,#KEYVALUE
                MOV R4,#0FFH;存鍵值表到鍵碼表的偏移量
KEY1:   INC R4     ;掃描鍵碼表里面的數值
        MOV A,R4
                MOVC A,@A+DPTR
                CJNE A,03H,KEY1
                MOV A,R4
                MOV 30H,A
DELAY1: MOV R6,#60H;延時程序
DE2:    MOV R7,#90H
        DJNZ R7,$
                DJNZ R6,DE2
                RET
ENABLE: CLR P0.5;寫命令
        CLR P0.4
                CLR P0.3
                ACALL DELAY2
                SETB P0.3
                RET
DELAY2: MOV P1,#0FFH
        CLR P0.5
                SETB P0.4
                CLR P0.3
                NOP
                SETB P0.3
                JB P1.7,DELAY2
                RET
DELAY:
MOV R5,#10H;延時程序
D1:
MOV R6,#30H
D2:   
MOV R7,#90H
DJNZ R7,$
DJNZ R6,D2
DJNZ R5,D1
RET
KEYVALUE:DB 0E7H,0D7H,0B7H,077H,0EBH,0DBH,0BBH,07BH,0EDH,0DDH,0BDH,07DH,0EEH,0DEH,0BEH,07EH;鍵碼矩陣
TABLE2:  DB 30H,31H,33H,38H,64H,69H,61H,6EH,6BH,65H,79H,74H,67H,3CH,5FH,3EH
END
回復

使用道具 舉報

ID:593706 發表于 2021-5-31 11:51 | 顯示全部樓層
串口發送數據完成后,要退出發送子程序,并且要將發送中斷標志位清零,單片機串口通信是單工工作的,發送的時候不能接收,接收的時候不能發送
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表