📄 serial_comm_2.c
字号:
/**********************************************
* File: Serial_Comm_2.C
* Description: Serial Communication Example 2 Echo
* Created Date: 2007-10-01
* Last Modified: 2007-10-01
* Author: Jeffrey - Schicksal@126.com
* Notes: None
**********************************************/
#include "Atmel/AT89X51.h"
void RS232_SendData(unsigned char Sdata);
/**********************************************
* Function: delay(unsigned int t)
* Input Variables: t
* Return Variables: None
* Usage: Common Delay Routine, t as the delay time ticks
**********************************************/
void delay(unsigned int t)
{
for(;t>0;t--); // 延时循环
}
/**********************************************
* Function: RS232_Init(void)
* Input Variables: none
* Return Variables: None
* Usage: Init UART
**********************************************/
void RS232_Init()
{
SCON = 0x50; // UART工作于模式1, REN=1
TMOD = 0x20 ; // Timer1 工业于模式2
PCON |= 0x80; // SMOD1 = 1
TH1 = 0xF3; // 波特率9600 Bds at 24MHz
TL1 = 0xF3; // 波特率9600 Bds at 24MHz
TR1 = 1; // 启动Timer1
}
/**********************************************
* Function: main()
* Input Variables: None
* Return Variables: None
* Usage: Program Entry
*********************************************/
void main()
{
unsigned char RevData; // 接收数据
unsigned char LED; // LED跑马灯状态
RS232_Init(); // 初始化UART
while(1)
{
//********************主程序部分*********************//
while(RI==0); // 等待接收数据
RevData = SBUF; // 读取数据
LED = ~RevData; // 设置LED灯状态
P0 = LED; // 点亮相应LED
RS232_SendData(RevData);
RI = 0;
//********************主程序部分*********************//
}
}
/**********************************************
* Function: RS232_SendData(unsigned char Sdata)
* Input Variables: unsigned char Sdata
* Return Variables: none
* Usage: Send a Char to UART
*********************************************/
void RS232_SendData(unsigned char Sdata)
{
SBUF = Sdata; // 发送数据
while(TI==0); // 等待发送完毕
TI = 0; // 清除发送结束标志
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -