|
|||||||||||
| 技術交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
I/O模擬UART,還有很多人想要,用多年了,貢獻出來給大家! |
| 作者:汽車電子 欄目:單片機 |
標準51單片機用,可供C語言調(diào)用 ;/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ;@@@ 模擬串口通訊函數(shù) @@@ ;@@@ 晶振:11059200Hz 波特率2400 4800 9600 19200 @@@ ;@@@ 幀格式:11位數(shù)據(jù),1位啟起位,8位數(shù)據(jù)位,1位識別碼,1位停止位 @@@ ;@@@ 發(fā)送一字節(jié)函數(shù):_PutByte 入口參數(shù):1字節(jié)數(shù)據(jù),1字節(jié)識別碼 @@@ ;@@@ 接收一字節(jié)函數(shù):_GetByte 出口參數(shù):1字節(jié)數(shù)據(jù) ,1字節(jié)成功標志 @@@ ;@@@ (此函數(shù)只作主機用) @@@ ;@@@ 影響資源: r4,r5,r6,r7,a,b ,ucBaudrate 波特率選擇 @@@ ;@@@ r5,r6,r7 entrance and exit parameter @@@ ;@@@ 發(fā)送程序中,入口參數(shù)r5為0xff時是尋址,為0時是數(shù)據(jù),R7為待送數(shù)據(jù) ;@@@ 接收程序中,出口參數(shù)R6為0時檢測不到起始位或停止位,數(shù)據(jù)在R7中。 ; $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ public _GetByte,_PutByte; SimuSerialCodeSeg segment code mBaud equ 2 bTransmit bit P1.3; bReceive bit P1.2; ;// (INT1); bEnableSimu485 bit P1.1; ;;////////////////////////////////////////////////////////////// rseg SimuSerialCodeSeg _PutByte: nop; setb bEnableSimu485; ;; // 允許發(fā)送 clr bTransmit; mov a,#mBaud; ;; 9600bps rl a; ;; 存貯在ucBaudrate單元 mov dptr,#Blanch jmp @a+dptr; Blanch: ajmp UAT2400 Blanch1: ajmp UAT4800 Blanch2: ajmp UAT9600 Blanch3: ajmp UAT19200 nop; ret; ;; //////////////////////////////////////////////////// ;; // 416.67uS/bit UAT2400: nop; mov a,r5; mov c,acc.0; mov a,r7; mov r4,#9; mov r6,#183; djnz r6,$; nop; NextBit2400: rrc a; mov bTransmit,c; mov bTransmit,c; mov r6,#188; djnz r6,$; djnz r4,NextBit2400; nop; setb bTransmit; / |
| 2樓: | >>參與討論 |
| 作者: hebeijiang 于 2005/1/27 1:11:00 發(fā)布:
支持。 雖然我不用51。 |
|
| 3樓: | >>參與討論 |
| 作者: winloop 于 2005/1/27 8:02:00 發(fā)布:
用過3年了 早就不用了,占用資源太多,而且數(shù)據(jù)量大的時候有一定的出錯率,現(xiàn)在全用550\552\554來擴展,要做就做穩(wěn)定的東西 |
|
| 4樓: | >>參與討論 |
| 作者: coke 于 2005/1/27 8:12:00 發(fā)布:
不錯.鼓勵一下. |
|
| 5樓: | >>參與討論 |
| 作者: 汽車電子 于 2005/1/28 0:10:00 發(fā)布:
要求不高的場合用,很爽呀,便宜!。 做主機用的效率也不低呀。 其實有些人寫串口程序不用中斷,而用查詢,效率跟我的模擬串口一樣!!! |
|
| 6樓: | >>參與討論 |
| 作者: 12864 于 2005/1/28 2:09:00 發(fā)布:
軟串口也應該鼓勵用中斷 容易融入程序結構中。 |
|
| 7樓: | >>參與討論 |
| 作者: piero 于 2005/1/28 7:28:00 發(fā)布:
頂一下吧! |
|
| 8樓: | >>參與討論 |
| 作者: abc2001 于 2005/1/28 7:49:00 發(fā)布:
不錯,頂一下. |
|
| 9樓: | >>參與討論 |
| 作者: 汽車電子 于 2005/1/28 21:01:00 發(fā)布:
軟串口用中斷?發(fā)送?接收?用定時器中斷?? 軟串口用定時器中斷的效率很低,也許低過查詢 最好不要用軟串口做從機使用, 不得已要做從機時,接收腳可用中斷引腳 |
|
| 10樓: | >>參與討論 |
| 作者: 12864 于 2005/1/29 1:29:00 發(fā)布:
對呀,收發(fā)都用中斷 接收占用一個外中斷和定時器中斷,發(fā)送只占用定時器中斷。如果要全雙工,占用一個中斷+2個定時器中斷,哈哈,有些破費啊。 * - 本貼最后修改時間:2005-1-29 1:35:56 修改者:12864
|
|
| 11樓: | >>參與討論 |
| 作者: hotpower 于 2005/1/29 1:33:00 發(fā)布:
同意4行8字LCD意見 |
|
| 12樓: | >>參與討論 |
| 作者: j_lailei 于 2005/1/29 11:01:00 發(fā)布:
頂一下! |
|
| 13樓: | >>參與討論 |
| 作者: pheavecn 于 2005/1/29 12:28:00 發(fā)布:
用軟件delay,效率太低。 應該只用一個定時器中斷。 |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |