標(biāo)題: 元器件:用AVR單片機模擬的串口程序 [打印本頁]

作者: qqzbd    時間: 2012-5-5 11:46
標(biāo)題: 元器件:用AVR單片機模擬的串口程序
主程序中,單片機將標(biāo)準(zhǔn)串口設(shè)置為115200bps,將模擬串口設(shè)置為19200bps。單片機將標(biāo)準(zhǔn)串口收到的數(shù)據(jù)從模擬串口發(fā)送出去,將模擬串口接收到的數(shù)據(jù)從標(biāo)準(zhǔn)串口發(fā)送回來。 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 www.qqzbd.com send_115200: in temp,udr ;get uart data from 115200bps uart sbic usr,fe www.senvqq.com 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




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1