|
ATMEG8515串行接收数据程序
/************************************************** ; 平凡单片机工作室 ; http://www.mcustudio.com ; Copyright 2004 pingfan's McuStudio ; All rights Reserved ;作者:周坚 ;uart_rec.c ;串行通信的接收程序,接收数据并用PORTB口上的8位LED显示出来 ;用于AT89S8515或者ATMEG8515,在DSB-1A型实验板上实现 ;波特率19200 8位数据位,1位停止位 **************************************************/
#include "avr/io.h" static void io_init(void) { PORTA = 0x0; DDRA = 0x0; // PortB PORTB = 0xff; DDRB = 0xff; // PortC PORTC = 0x0; DDRC = 0x0; // PortD PORTD = 0x0; DDRD = 0x0; } void uart_init(void) { // Baud Rate: 19200 // Character Size: 8-bit // Mode: Asynchronous // Parity: Disabled // Stop Bit: 1-bit UBRRL = 0x23; UBRRH = 0x00; UCSRA = 0x00; UCSRC = 0x86; UCSRB = 0x10; }
unsigned char USART_Receive( void ) { /* 等待接收数据*/ while ( !(UCSRA & (1<<RXC)) ) ; /* 从缓冲器中获取并返回数据*/ return UDR; }
int main(void) { uint8_t tmp; io_init(); uart_init(); while(1) { tmp=USART_Receive(); PORTB=tmp; //收到的数据送到PORTB } } |
|