用AVR單片機(jī)模擬的串口程序
發(fā)布時(shí)間:2008/8/12 0:00:00 訪問(wèn)次數(shù):666
主程序中,單片機(jī)將標(biāo)準(zhǔn)串口設(shè)置為115200bps,將模擬串口設(shè)置為19200bps。單片機(jī)將標(biāo)準(zhǔn)串口收到的數(shù)據(jù)從模擬串口發(fā)送出去,將模擬串口接收到的數(shù)據(jù)從標(biāo)準(zhǔn)串口發(fā)送回來(lái)。
txd0_data:
ldi status,(1<
push temp
in temp,gimsk
cbr temp,(1< out gimsk,temp ;disable gimsk/int0
pop temp
ser bit_cnt ;bit_cnt=0xff
mov sbuf0,temp ;send data
ldi temp,(256-n)
out tcnt0,temp ;wait 1 bit timer0 interrupt
in temp,tifr
sbr temp,(1< out tifr,temp ;clr tifr/tov0
in temp,timsk
sbr temp,(1< out timsk,temp ;enable timsk/toie0
cbi portb,txd0 ;uart start
ret
;******************************************
rxd0_data:
sbrs status,fe0 ;if fe0=0 then exit
rjmp rxd0_data_end
cbr status,(1< mov temp,sbuf0
rxd0_data_end:
ret
;******************************************
;uart received a byts from uart and then return it from uart0:
;uart received a byts from uart0 and then return it from uart :
main:
sbic usr,rxc
rjmp send_115200
sbrs status,rdr
rjmp uart_end
send_19200:
rcall rxd0_data ;get uart data from 19200bps uart0
wait2: sbis usr,udrie
rjmp wait2
out udr,temp ;send data to 115200bps uart
rjmp uart_end
send_115200:
in temp,udr ;get uart data from 115200bps uart
sbic usr,fe
rjmp uart_end ;if fe err then end
wait3: sbrc status,td ;wait send flag
rjmp wait3
rcall txd0_data ;send data to 19200bps uart0
uart_end:
rjmp main
主程序中,單片機(jī)將標(biāo)準(zhǔn)串口設(shè)置為115200bps,將模擬串口設(shè)置為19200bps。單片機(jī)將標(biāo)準(zhǔn)串口收到的數(shù)據(jù)從模擬串口發(fā)送出去,將模擬串口接收到的數(shù)據(jù)從標(biāo)準(zhǔn)串口發(fā)送回來(lái)。
txd0_data:
ldi status,(1<
push temp
in temp,gimsk
cbr temp,(1< out gimsk,temp ;disable gimsk/int0
pop temp
ser bit_cnt ;bit_cnt=0xff
mov sbuf0,temp ;send data
ldi temp,(256-n)
out tcnt0,temp ;wait 1 bit timer0 interrupt
in temp,tifr
sbr temp,(1< out tifr,temp ;clr tifr/tov0
in temp,timsk
sbr temp,(1< out timsk,temp ;enable timsk/toie0
cbi portb,txd0 ;uart start
ret
;******************************************
rxd0_data:
sbrs status,fe0 ;if fe0=0 then exit
rjmp rxd0_data_end
cbr status,(1< mov temp,sbuf0
rxd0_data_end:
ret
;******************************************
;uart received a byts from uart and then return it from uart0:
;uart received a byts from uart0 and then return it from uart :
main:
sbic usr,rxc
rjmp send_115200
sbrs status,rdr
rjmp uart_end
send_19200:
rcall rxd0_data ;get uart data from 19200bps uart0
wait2: sbis usr,udrie
rjmp wait2
out udr,temp ;send data to 115200bps uart
rjmp uart_end
send_115200:
in temp,udr ;get uart data from 115200bps uart
sbic usr,fe
rjmp uart_end ;if fe err then end
wait3: sbrc status,td ;wait send flag
rjmp wait3
rcall txd0_data ;send data to 19200bps uart0
uart_end:
rjmp main
熱門(mén)點(diǎn)擊
- 用AT89S51單片機(jī)來(lái)制作的手動(dòng)計(jì)數(shù)器
- 意法半導(dǎo)體發(fā)布全集成NFC系統(tǒng)芯片ST21N
- ST推出基于STM8內(nèi)核的STM8S系列8位
- 單片機(jī)相關(guān)常用名詞解釋
- 愛(ài)特梅爾AVR XMEGA為8位微控制器重新
- 美國(guó)微芯推出低成本8位PIC單片機(jī)
- HOLTEK新推出HT46RS03/HT46
- 用AT89S51單片機(jī)多路開(kāi)關(guān)狀態(tài)指示
- 用AVR單片機(jī)模擬的串口程序
- IDT推出基于CPRI的新型功能互連芯片解決
推薦技術(shù)資料
- 硬盤(pán)式MP3播放器終級(jí)改
- 一次偶然的機(jī)會(huì)我結(jié)識(shí)了NE0 2511,那是一個(gè)遠(yuǎn)方的... [詳細(xì)]
- MOSFET 電感單片降壓開(kāi)關(guān)模式變換器優(yōu)勢(shì)
- SiC MOSFET 和 IG
- 新型 電隔離無(wú)芯線性霍爾效應(yīng)電
- 業(yè)界超小絕對(duì)位置編碼器技術(shù)參數(shù)設(shè)計(jì)
- 高帶寬、更高分辨率磁角度傳感技術(shù)應(yīng)用探究
- MagAlpha 角度位置傳感
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究