導航:首頁 > 編程語言 > 串口通信編程匯編

串口通信編程匯編

發布時間:2022-05-13 17:32:51

『壹』 求一個 串口通信發送的程序 用匯編的

;程序如下:
MOV SCON, #0x50; //串口工作在方式1.
ANL PCON, #0x7F; //SMOD=0
MOV TMOD, #0x20; //定時器1當做波特率發生器.
MOV TH1, #0xFD; //初值, 9600 @ 11.0592MHz
MOV TL1, #0xFD;
SETB TR1;
LOOP:
MOV A, #0
MOV SBUF, A
JNB TI, $
CLR TI
INC A
CJNE A, #31, LOOP
SJMP $

end

『貳』 匯編 串口通信

參考:

http://hi..com/do_sermon/item/c382edd859cf70d8241f4067

『叄』 單片機串口通信程序怎麼用匯編寫

單片機串口通信程序用匯編寫的模擬實例,可以模擬試試,參考一下吧。
很抱歉,回答者上傳的附件已失效

『肆』 串口通信匯編程序解釋

首先,你這樣的寫法是不對的,
ORG 001BH
AJMP sign0
這兩句應該放到LJMP main後面,以免中間的位元組佔用到001B,那樣就會出亂的。
第二、你的定時器0是用做中斷嗎?沒看見你的中斷入口。
第三、你的中斷處理程序這樣寫是大忌:LJMP $ ;虛擬主程序,等待中斷
中斷處理程序不跳出去,除非是中斷優先順序更高的中斷才能進來,而且這樣做程序的流程更混亂
第四、你的p1.0取反在兩個地方都寫了,最好只在一秒處理裡面寫。

『伍』 匯編串口通信程序

用8250做嗎???
框圖我搞不出來,2台機子之間的數據輸送倒可以
一開始初始化8250,搞成雙工的相同的波特和格式
然後一開始判斷有沒有那4個錯誤,沒有則判斷
數據接受准備好沒有,准備好則就去接受,然後列印到
屏幕,沒准備好則去檢查發送准備好沒有,好了就可以打字傳送了,沒准備好則返回繼續檢查那4個錯誤

『陸』 求單片機高手編寫一個串口通信接受字元程序,用匯編語言. 急急急!!!!

ORG 00H

AJMP MAIN

ORG 23H

AJMP URT;串口中斷

ORG 30H

MAIN:

MOV SP,#60H

MOV R0,#50H

MOV TMOD,#20H;T1工作方式2

SETB EA;開總中斷

ACALL URTINIT;串口初始化

AJMP $ ;等待串口中斷

URT: ;串口中斷每次只收1個位元組,未完繼續進入中斷,接收。

PUSH ACC

JNB RI,URT1

URT0:

CLR ES

CLR RI

MOV A,SBUF

MOV @R0,A;先保存

INC R0

CJNE R0,#60H,URT1

CLR EA

URT1:

SETB ES

POP ACC

RTI: RETI

URTINIT:

MOV SCON,#50H;串口工作方式1,接收

MOV TH1,#0F4H;11.0592M2400BPS

MOV TL1,TH1

SETB TR1;開啟定時器

SETB ES;開啟串口中斷

RET

『柒』 單片機 匯編程序 串口通信

HERE: AJMP HERE
SINT: MOV P1,R0
JB RI,RECV
JB TI,SEND
AJMP HERE

中斷裡面直接用這種方式直接跳到主程序,我以前還是真沒試過,不過估計能行吧。 我一直用RETI 返回堆棧地址位置的。

但下面這地方肯定有錯的,就是執行MOV SBUF,A 後沒有等待!!
正確的順序是: CLR TI ;清發送標記
MOV SBUF,A ;發送
JNB TI,$ ; 這里是如果TI沒有被置1就等待,因為送數可能還沒有完成。。就去執行別的動作,可能會有問題。
接收也一樣要等待:
MOV A,SBUF
JNB RI,$ ;等待接收完成標志。

另外:
CPL P1.7 有問題,我猜你是用P1.7來觀察接收次數,
但由於CPL P1.7取反命令是讀一下P1.7再取反輸出的,如果你的p1.7外接電路不科學,不合理,可能會出現你每次不管發1,還是發0,p1.7都是低電平,比如你將p1.7直接接在npn三管基極就會一直是0V或0.7V , P1.7的讀入值會總為0,CPL 輸出會總是為1
你可以用內部(非P口的位地址過度一下),比如: CPL 01H
MOV C,01H
MOV P1.7,C
你先試驗吧。。。

『捌』 匯編語言編程 串口通信 程序

ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV TMOD,#20H
MOV TH0,#0F4H
MOV TL0,#0F4H
SETB TR1
MOV SCON,#50H
LOOP:
JNB RI,$
CLR RI
MOV A,SBUF
CJNE A,#'A',LOOP1
MOV A,#'O'
LCALL SEND
MOV A,#'K'
LCALL SEND
SJMP LOOP
LOOP1:
CJNE A,#'B',LOOP2
MOV A,#'E'
LCALL SEND
MOV A,#'R'
LCALL SEND
LCALL SEND
SJMP LOOP
LOOP2:
MOV A,#'N'
LCALL SEND
MOV A,#'O'
LCALL SEND
LJMP LOOP
SEND:
MOV SBUF,A
JNB TI,$
CLR TI
RET
END

『玖』 51單片機串口通信(匯編)

HERE: AJMP HERE
SINT: MOV P1,R0
JB RI,RECV
JB TI,SEND
AJMP HERE

中斷裡面直接用這種方式直接跳到主程序,我以前還是真沒試過,不過估計能行吧。 我一直用RETI 返回堆棧地址位置的。

但下面這地方肯定有錯的,就是執行MOV SBUF,A 後沒有等待!!
正確的順序是: CLR TI ;清發送標記
MOV SBUF,A ;發送
JNB TI,$ ; 這里是如果TI沒有被置1就等待,因為送數可能還沒有完成。。就去執行別的動作,可能會有問題。
接收也一樣要等待:
MOV A,SBUF
JNB RI,$ ;等待接收完成標志。

另外:
CPL P1.7 有問題,我猜你是用P1.7來觀察接收次數,
但由於CPL P1.7取反命令是讀一下P1.7再取反輸出的,如果你的p1.7外接電路不科學,不合理,可能會出現你每次不管發1,還是發0,p1.7都是低電平,比如你將p1.7直接接在npn三管基極就會一直是0V或0.7V , P1.7的讀入值會總為0,CPL 輸出會總是為1
你可以用內部(非P口的位地址過度一下),比如: CPL 01H
MOV C,01H
MOV P1.7,C
你先試驗吧。。。

『拾』 匯編語言之串口通信

ORG 0000H
LJMP START
ORG 0023H
LJMP UARTInterrupt
;這段程序沒有意義呀,永遠執行不了
MOV R1,#8EH ;AUXR
MOV A,#40H ;T1
ORL A,@R1
MOV @R1,A ;T1, 1T Mode
START:
MOV SP,#60H
LCALL InitUART

LOOP:
;add your code here!
LJMP LOOP

InitUART:
MOV TMOD,#20H
MOV SCON,#50H
MOV TH1,#0DCH
MOV TL1,TH1
MOV PCON,#00H
SETB EA
SETB ES
SETB TR1
RET

UARTInterrupt:
JB RI,IsUART_Receive
CLR TI
RETI
IsUART_Receive:
CLR RI
PUSH ACC
MOV A,SBUF
;========================
;add your code here!
;========================
POP ACC
RETI

SendOneByte:
CLR ES
CLR TI
MOV SBUF,A
WaitSendFinish:
JNB TI,WaitSendFinish
CLR TI
SETB ES
RET

END
;其餘沒有什麼問題,就是只接受數據,發送沒有調用。

閱讀全文

與串口通信編程匯編相關的資料

熱點內容
加密歐美航線 瀏覽:48
svn怎麼看伺服器的地址 瀏覽:187
騎馬與砍殺1命令部隊用盾牌 瀏覽:595
光纜pdf 瀏覽:350
加密流量實時監測 瀏覽:628
360壓縮和好壓哪個好 瀏覽:61
python判斷變數是否為list 瀏覽:906
雲伺服器1m帶寬表示什麼意思 瀏覽:702
429升冷櫃用多大壓縮機 瀏覽:116
決策樹演算法java實現 瀏覽:376
androidtv開發焦點控制 瀏覽:328
論人的成長pdf 瀏覽:282
python網站源代碼 瀏覽:827
手機文件壓縮器怎麼安裝 瀏覽:112
androidsdk封裝 瀏覽:266
微信加密不知道怎麼取消 瀏覽:705
分析演算法設計程序編寫 瀏覽:843
linux啟動dhcp失敗 瀏覽:356
芙蓉出水選股公式源碼 瀏覽:763
linux更改密碼錯誤 瀏覽:244