|
|||||||||||
| 技術交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
89c2051串口通信問題請教.. |
| 作者:ynln 欄目:新手園地 |
波特率9600,單片機接受鍵盤輸入的值并回發(fā)給電腦串口,我用串口調(diào)試助手接受到的并不是想發(fā)送的值.還有哪種方式為串口查詢方式,哪種方式為串口中斷方式.我剛學串口通信,不要見笑,請大家指點指點,謝謝.程序如下.. ORG 0000H MOV SCON,#0D8H; MOV TMOD,#20H; MOV PCON,#00H; MOV TH1,#0FDH; MOV TL1,#0FDH; SETB TR1 SETB EA SETB ES WRIT:MOV A,SBUF MOV SBUF,A; ACALL DELAY ACALL DELAY AJMP WRIT DELAY:MOV R1,#10 DEL:MOV R7,#250 DEL1:MOV R6,#100 DEL2:DJNZ R6,DEL2 DJNZ R7,DEL1 DJNZ R1,DEL RET |
| 2樓: | >>參與討論 |
| 作者: maychang 于 2006/4/17 18:53:00 發(fā)布:
Re 1、晶體頻率為多少? 2、PC機發(fā)送什么,接收到的是什么? 3、你這種做法,是查詢方式,沒有使用中斷。 |
|
| 3樓: | >>參與討論 |
| 作者: ynln 于 2006/4/17 21:02:00 發(fā)布:
ok 晶振11.0592,鍵盤輸入(用串口助手),單片機接受后再回發(fā)給電腦串口 |
|
| 4樓: | >>參與討論 |
| 作者: maychang 于 2006/4/17 23:15:00 發(fā)布:
你選擇的串口工作模式是模式3 如果不是用于多機通訊,沒有必要用模式3,選擇模式1即可,所以SCON初始化為70H或50H。 此外,初始化時你開了中斷,但并未設置中斷矢量。所以接收到一幀后或發(fā)送一幀后會產(chǎn)生中斷,程序從0023H處開始執(zhí)行,而你的程序0023H處是DEL1。 一般地說,所有中斷矢量處都應該保留,放上跳轉(zhuǎn)指令或返回指令,不能放程序。例如這樣: ORG 0000H ;初始化入口 AJMP START NOP ORG 0003H ;外中斷0入口 LJMP INTR0 NOP NOP NOP AJMP ERROR ORG 000BH ;定時器0中斷入口 LJMP TMR0 NOP NOP NOP AJMP ERROR ORG 0013H ;外中斷1入口 LJMP INTR1 NOP NOP NOP AJMP ERROR ORG 001BH ;定時器1中斷入口 LJMP TMR1 NOP NOP NOP AJMP ERROR ORG 0023H ;串行中斷入口 LJMP SERL NOP NOP NOP AJMP ERROR NOP NOP NOP NOP ORG 00A0H ;Main programme 主程序 START: MOV SP,#STACK-1 ;Initial SP 初始化棧針 INTR0: RETI TMR0: RETI INTR1: RETI TMR1: RETI SERL: RETI |
|
| 5樓: | >>參與討論 |
| 作者: ynln 于 2006/4/18 10:22:00 發(fā)布:
ok 謝謝樓上各位。向大家多多學習 |
|
| 6樓: | >>參與討論 |
| 作者: ynln 于 2006/4/18 15:49:00 發(fā)布:
ok 謝謝各位,問題解決了,MAX232外接電容漏電引起數(shù)據(jù)接受發(fā)送不對。 |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |