📄 jieshou.c
字号:
//-----------------------函数声明,变量定义--------------------------------------------------------
#include <reg51.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar RECEIVR_buffer,flag=0;
uchar code jieshou[]={"接收的内容是: "};
#include"12864.H"
sbit SETB =P2^0;
sbit SETA =P2^1;
sbit AUX =P2^2; //状态
//===========================工作模式0===============================
void UTC1212_MODE0(void)
{
SETA=0;SETB=0;
}
//===========================工作模式1===============================
void UTC1212_MODE1(void)
{
SETA=0;SETB=1;
}
//===========================工作模式2================================
void UTC1212_MODE2(void)
{
SETA=1;SETB=0;
}
//============================工作模式3===============================
void UTC1212_MODE3(void)
{
SETA=1;SETB=1;
}
//--------------------------------------------------------------------------------------------------
// 函数名称: UART_init()串口初始化函数
// 函数功能: 在系统时钟为11.059MHZ时,设定串口波特率为9600bit/s
// 串口接收中断允许,发送中断禁止
//--------------------------------------------------------------------------------------------------
void UART_init()
{
SCON =0x50; //选择串口工作方式,打开接收允许
TMOD =0x20; //定时器1工作在方式2,定时器0工作在方式1
TH1 =0xfd; //实现波特率9600(系统时钟11.0592MHZ)
TL1 =0xfd;
TR1 =1; //启动定时器T1
// ET1 =0;
ES=1; //允许串行口中断
PS=1; //设计串行口中断优先级
EA =1; //单片机中断允许
}
//--------------------------------------------------------------------------------------------------
// 函数名称: R_S_Byte()串口初始化函数
// 函数功能: 在系统时钟为11.059MHZ时,设定串口波特率为9600bit/s
// 串口发送数据
//--------------------------------------------------------------------------------------------------
void R_S_Byte(unsigned char R_Byte)
{
SBUF = R_Byte;
while( TI == 0 ); //查询法发送数据
TI = 0;
}
//------------------------------------------------------------------------------------------
// 函数名称: 主函数
// 函数功能: 接收信息,并在12864上显示
//--------------------------------------------------------------------------------------------------
void main(void)
{
P3=0xfe;
UART_init(); //初始化串口
UTC1212_MODE0();
LcdInitiate();
display_jieshou();
while(1)
{
if(flag==1)
{
ES=0;
display_num(0x80,0,RECEIVR_buffer);
flag=0;
}
ES=1;
}
}
//--------------------------------------------------------------------------------------------------
// 函数名称: com_interrup()串口接收中断处理函数
// 函数功能: 接收包括起始位'S'在内的十位数据到数据缓冲区
//--------------------------------------------------------------------------------------------------
com_interrupt(void) interrupt 4
{
ES=0;
flag=1;
RI=0; //清除中断标志位
RECEIVR_buffer=SBUF; //接收串口数据
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -