📄 scomm.c
字号:
//ZC-51学习板实验源程序
//学习板和PC通信--串口通信实验
//http://www.ednchina.com/blog/zhichengdz/
//E-mail: zhicheng_dz@163.com
#include <reg52.h>
#include <main_.h>
#define uchar unsigned char
#define uint unsigned int
uchar chrec;
bit brec;
void commini (void) //串口初始化
{
SCON = 0x50; //01010000 //方式1,允许接收
TMOD |= 0x21; //8位自动装入常数的定时器
TH1 = 0xfd; //波特率产生器自动装入常数
TR1 = 1; //T1开始运行
ES = 1; //打开串口中断
EA=1; //打开全局中断
}
putbyte(unsigned char c) //放入一个字节到发送缓冲区
{
SBUF=c;
while(!TI);TI=0;
}
void putstring(uchar *puts) //发送一个定义在程序存储区的字符串到串口
{
for(;*puts!=0;puts++) //遇到停止符0结束
putbyte(*puts);
}
void serial () interrupt 4 //串口中断处理
{
if (RI)
{
RI = 0;
brec=1;
chrec=SBUF;
SBUF=chrec;
}
}
uchar code arrhex[]={"0123456789ABCDEF"};
void LCM1602 (uchar ch) //以十六进制显示从PC接收到的数据
{ uchar cht;
cht=ch%16;
lcdchar (13,1,arrhex[cht]);
cht=ch/16;
lcdchar (12,1,arrhex[cht]);
}
void main ()
{
commini (); //串口初始化
lcdreset(); //LCM初始化
lcdwda(0,0,"ZC-51 comm. Exp.");
lcdwda(0,1," rec. char: ");
putstring("ZC-51 communications Exp.");
while (1)
{
if (brec)
{ brec=0;
LCM1602 (chrec); //以十六进制显示从PC接收到的数据
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -