⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 serialcommtest.c

📁 一个串口通信测试程序
💻 C
字号:
/********************************************************************************************************
*单片机串行口发送/接收测试程序,每收到字节即刻发送出去;此程序证明单片机串行口发送/接收都正常;		    *
*********************************************************************************************************
*采用定时器2作为波特率发生器,T2CON的各位分别为TF2,EXF2,RCLK,TCLK,EXEN2,TR2,C/~T2,CP/~RL2			    *
*TF2:    定时器2溢出标志,软件清除(在波特率发生器方式下,即RCLK或TCLK=1时,定时器溢出不对TF2置位);  *
*EXF2:   定时器2外部标志,当EXEN2=1,且T2EX引脚出现负跳变而造成捕获或重装载时置位并申请中断,软件清除 *
*RCLK:   接收时钟标志,软件置位或清除,用于选择定时器2或1作串行口接收波特率发生器,RCLK=1时用定时器2;*
*TCLK:   发送时钟标志,同RCLK;																		*
*EXEN2:  定时器2外部允许标志,软件置位或清除,以允许或不允许外部信号触发捕获或重装载,EXEN2=1时若定时器*
*         未用于波特率发生器,T2EX出现负跳变时造成捕获或重装载,EXF2=1申请中断,=0时外部信号不起作用;*
*TR2:	  定时器2运行控制位,软件设置或清除,TR2=1时,启动定时器2;                                     *
*C/~T2:  定时器或计数器方式选择位,软件设置或清除,                                                    *
*CP/~RL2:捕获/重装载标志,软件设置或清除,CP/~RL2=1时选择捕获功能,(EXEN2=1且T2EX负跳变),CP/~RL2=0*
*         时重装载(定时器2溢出或EXEN2=1条件下T2EX负跳变)——RCAP2H和RCAP2L内容传送给TH2和TL2。        *
*********************************************************************************************************
*定时器2作波特率发生器时,波特率取决于它的溢出速率,而与SMOD的状态无关                                  *
*C/~T2=0,计数时钟来自内部,计数频率=fosc/2,波特率=溢出速率1/16=fosc/(2*16*(65536-(RCAP2H,RCAP2L)))*
*C/~T2=1,计数时钟来自外部,计数频率=外部时钟频率,波特率=外部时钟频率/(16*(65536-(RCAP2H,RCAP2L)))  *
*外部时钟最高频率是fosc/24。																			*
********************************************************************************************************/
#include<reg52.h>
void main(void)
{
	unsigned char a;
	SCON   = 0x50;						//mode 1:10-bit UART,enable receiver
	T2CON  = 0x30;						//T2 is the baud rate generator,transmit and receive
	RCAP2H = 0xff;
	RCAP2L = 0xd9; 						//set baudrate=9600
	TR2    = 1;							//timer 2 run
	while(1)
	{
		while(RI==0);
		RI=0;
		a=SBUF;							//transmit out at once after received
		SBUF=a;
		while(TI==0);
		TI=0;
	}
}

⌨️ 快捷键说明

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