test_usart.c

来自「ad7135的avr16的源程序」· C语言 代码 · 共 97 行

C
97
字号
//************************************************* 
//测试功能:下位机往上位机发送数据
//测试方法:串口调试助手
//测试结果:OK
//时钟频率:外部8m
//管脚分配:
//注意事项: 
//完成时间:2009.03.15 
//**************************************************

//************************************************** 
//头文件
//************************************************** 
#include <iom16v.h>
#include <macros.h>
//**************************************************

 
//********************************************************** 
//函数名称:void DELAY_1MS(void)
//函数功能:延时1ms
//注意事项:i=143*n-2
//********************************************************** 
void DELAY_1MS(void)
{    
	 unsigned int i;
	 for(i=1142;i>0;i--)    
     ;
}
//********************************************************** 
//函数名称:void DELAY_1MS(void)
//函数功能:延时1ms
//注意事项:i=143*n-2
//********************************************************** 
void DELAY_NMS(unsigned int n)
{	 
	 for(;n>0;n--)
	      DELAY_1MS();
}
//***************************************************** 
//函数名称:void USART_INIT(void) 
//函数功能:8M,波特率9600
//注意事项:
//*****************************************************
void USART_INIT(void)
{	 
	 UBRR=0X33;//fosc=8mhz,波特率9600
	 UCSRA=0X20;
	 UCSRC=0X86;
	 UCSRB=0X98;
}
//***************************************************** 
//函数名称:void USART_INIT(void) 
//函数功能:8M,波特率9600
//注意事项:
//*****************************************************
void USART_TX(unsigned char data)
{	 
	 UDR=data;
	 while(!(UCSRA&(1<<TXC)))
	 ;
	 DELAY_NMS(1);
}
//***************************************************** 
//函数名称:void USART_INIT(void) 
//函数功能:8M,波特率9600
//注意事项:
//*****************************************************
void DATA_DISPLAY(unsigned long int data)
{	 
	 unsigned char temp[10],i;
	 temp[0]=(data/1000000000);
	 temp[1]=(data/100000000)%10;
	 temp[2]=(data/10000000)%10;
	 temp[3]=(data/1000000)%10;
	 temp[4]=(data/100000)%10;
	 temp[5]=(data/10000)%10;
	 temp[6]=(data/1000)%10;
	 temp[7]=(data/100)%10;
	 temp[8]=(data/10)%10;
	 temp[9]=data%10;
	 for(i=0;i<10;i++)
	 {
	      USART_TX(temp[i]);
		  DELAY_NMS(1);
	 }
}
//************************************************** 
//主函数
//**************************************************
void main(void)
{	 
	 USART_INIT();
	 DATA_DISPLAY(4294967295);
	 while(1)
	 ;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?