m_comm.c
来自「郑州远博公司生产的单片机B型实验板电路原理图及配套源程序代码」· C语言 代码 · 共 54 行
C
54 行
/******************************************************************************
YB-51-B单片机通用实验板串口中断和液晶屏显示演示程序=
在pc机上利用通用串口调试程序(在配套光盘上),发送的字符可以在液晶屏上显示出来,同时可以接收单片机回送的字符
程序来源:远博科技
0371-66949037 0371-67256036 13949105551
********************************************************************************/
//[注]:AT89C51的晶振频率为11.0592MHz
#include <config.h>
void Comminit(void);
void Scomm(void);
code char examp[]="serial communication test";
Uchar x=0,y=0,sedata;
void main(void) {
Delayms(1000); //延时,保证器件复位
Comminit(); //串口初始化,打开串口中断
Lcdreset(); //液晶屏初始化
Eputstr(0,0,examp); // 液晶屏显示一个预定字符串
Delayms(3000);
Lcdreset();
while(1); //无限循环。
}
void Scomm(void) interrupt 4 {
while(!RI); //判断是否接收完成
EA=0;
RI=0;
sedata=SBUF; //保存数据
Disponechar(x,y++,sedata);
if ( y == 32 ) { y = 0; x ^= 0; } //显示到最后位置以后,重新开始从第一个位置显示
SBUF=sedata; //转发数据
while (!TI); //判断是否发送完成
TI=0;
EA=1;
}
/*********************************************************************************
串口初始化程序
**********************************************************************************/
void Comminit(void) {
TMOD=0x20; //定时器1方式2定时
TH1=0xfd;
TL1=0xfd; //置定时器初值,选定9600bps
SCON=0x50; //选择通讯方式1 (1位起始,8位数据,1位停止)
TR1=1; //启动定时器
ET1=0;
ES=1; //开串口中断
EA=1; //开中断
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?