标题: 元器件:用AVR单片机模拟的串口程序 [打印本页]

作者: qqzbd    时间: 2012-5-5 11:46
标题: 元器件:用AVR单片机模拟的串口程序
主程序中,单片机将标准串口设置为115200bps,将模拟串口设置为19200bps。单片机将标准串口收到的数据从模拟串口发送出去,将模拟串口接收到的数据从标准串口发送回来。 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.51hei.com/bbs/) Powered by Discuz! X3.1