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

📄 shixun6zr.c

📁 单片机C语言程序设计教程与实训源代码及图片 单片机C语言程序设计教程与实训源代码及图片
💻 C
字号:
/**********************************************************************
程序名称:ShiXun6ZR.c
程序功能:接收U1发来的数据,并据此控制D1、D2、D3的状态
程序作者:张三
创建时间:2008-3-28
**********************************************************************/
#include <reg51.h>
unsigned char RecData;
/**********************************************************************
函数名称:Serial_Init( void )
函数功能:初始化单片机U2的串行通信口
函数作者:张三
创建时间:2008-3-28
**********************************************************************/
void Serial_Init( void )
{
	IE = 0x00;	// 禁止所有中断请求,EA, ES, ET1, EX1, ET0, EX0
	TMOD = 0x20;	// T1, 工作方式2, 8位, 可重装,由TR1控制 

	TH1 = 0xfa;   	// T1初值,作波特率发生器,频率为12MHz,波特率为4800b/s
	TL1 = 0xfa;

	PCON = 0x00;	// 波特率不倍增
	SCON = 0xd8;   	// 串行口,工作方式3,REN=1,允许接收,TB8=1,11b异步收发方式

	RI = 0;		// 清零接收结束标志RI 
	TI = 0;		// 清零发送结束标志TI

	TR1 = 1;	// 启动T1 
	ES = 1;         // 允许串行中断
	EA = 1;         // 总中断开
}
/**********************************************************************
函数名称:SerialInterrupt( )
函数功能:单片机U2串行通信口中断服务程序
函数作者:张三
创建时间:2008-3-28
**********************************************************************/
void Seriallnterrupt( ) interrupt 4 using 2
{
	RecData = SBUF;
	RI = 0;
		
	switch( RecData ){
		case 0x01:	P1 = 0x01;	break;
		case 0x02:	P1 = 0x02;	break;
		case 0x04:	P1 = 0x04;	break;
		case 0x00:	P1 = 0x00;
	}
}
/**********************************************************************
函数名称:main ( void )
调用函数:Serial_Init( )
函数作者:张三
创建时间:2008-3-28
**********************************************************************/
void main( void )
{
	Serial_Init( );		// 初始化U2串行通信口
	RecData = SBUF; 	// 启动接收
	while( 1 ) ;			
}

⌨️ 快捷键说明

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