标题:
STC单片机收发通信串口调试程序 带详细注释
[打印本页]
作者:
sgh_ran
时间:
2018-2-22 14:27
标题:
STC单片机收发通信串口调试程序 带详细注释
STC单片机串口通信,测试程序,C51寄存器变量设置
单片机源程序如下(注释很详细):
#include <STC89C5xRC.H>
#include <LCD_12864.H>
#include <intrins.h>
#include <string.h>
#include <stdio.h>
#include <math.h>
// 0 / 0:13位计数器;
typedef unsigned int u16; //常用M1M0 0 / 1: 16位计数器;
typedef unsigned char u8; // 1 / 0:自动重装8位计数器
void UartInit(void); // 定时器1 定时器0
//TMOD寄存器位变量: GATE C/T M1 M0 GATE C/T M1 M0
// 0 0 1 0 0 0 1 0
// 1 1
// C/T=0:定时器 C/T=1:计数器
//TCON寄存器位变量: TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
// / 1 / 1 / 1 / 1
// '/'代表有硬件置1或0,无需编程
// TR1、TR0置1分别启动定时器1、0 ;置0分别关闭定时器1、0;
// IT1、IT0置1外部中断1、0下降沿有效;置0低电平有效;
// 下降沿或者上升沿有效可以用于1/2分频。
//SCON寄存器位变量: SM0 SM1 SM2 REN TB8 RB8 TI RI
//8位移位寄存器 0 0 0 1 /* /*
void main() //10位波特率可变 0 1 0
{ //11位波特率固定 1 0 1
UartInit(); //11位波特率可变 1 1 1
//SM2接收数据第9位校验位。
while(1); //方式0发送:TI位0允许发送,数据格式- 8 -;发送结束TI硬件置1,发送下一帧TI程序置0,TB8无作用
//方式0接收:REN为1且RI位0允许发送,数据格式- 8 -;接收结束RI硬件置1,接收下一帧RI程序置0,RB8无作用
// SM2==0
} //方式1发送:TI为0允许发送,数据格式0+8+1;发送结束TI硬件置1,发送下一帧TI程序置0,TB8无作用
//方式1接收: REN为1且RI为0允许接收,数据格式0+8+1;接收结束第9位1送至RB8、RI硬件置1,接收下一帧RI由程序置0
// SM2=0>>RB8=1或0,都接收数据,RI硬件置1;SM2=1>>RB8=1 接收数据,RI硬件置1
void Uart() interrupt 4 //方式2发送:TI位0允许发送,数据格式0+8+1/0+1;TB8软件置1或0代表发送数据第9位,TI硬件置1,发送下一帧TI程序置0
{ // TB8为1表示发送地址,TB8为0表示发送数据
u8 receiveData; //方式2接收: REN为1且RI为0允许接收,数据格式0+8+1/0+1;接收结束第9位送至RB8、RI硬件置1,接收下一帧RI由程序置0
receiveData=SBUF; // SM2=0>>RB8=1或0,都接收数据,RI硬件置1;SM2=1>>RB8=1 接收数据,RI硬件置1
while(!RI);
RI = 0; //方式3同方式2,只是波特率可调
SBUF=receiveData;
while(!TI); //IE中断允许寄存器: EA -- ET2 ES ET1 EX1 ET0 EX0
TI=0; //EA中断总开关 ; ET2允许定时器2中断 ; ES允许串口中断 ; ET1允许定时器1中断
} // EX1允许外部中断1断 ; ET0允许定时器0中断 ; EX0允许外部中断0断
// 中断源 Keil中断编号 矢量地址
// 最高优先级 6 0x0033
// 外部中断0 0 0x0003
// 定时器0溢出 1 0x000B
// 外部中断1 2 0x0013
// 定时器1溢出 3 0x001B
// 串口 4 0x0023
// 定时器2溢出 5 0x002B
void UartInit(void) //9600bps@11.0592MHz
{
TMOD = 0x20;
SCON = 0x50;
TH1 = 0xF4;
TL1 = 0xF4;
PCON = 0x80;
EA = 1;
ES = 1;
TR1 = 1;
}
复制代码
所有资料51hei提供下载:
STC通信-发送数据.rar
(1.44 KB, 下载次数: 141)
2018-2-22 14:00 上传
点击文件名下载附件
串口通信
下载积分: 黑币 -5
作者:
iritwq
时间:
2018-7-20 10:33
正在学习怎么用电脑看单片机的数据,谢谢楼主
作者:
quhong0411
时间:
2019-10-7 13:57
不会这个。正好学习一下。感谢楼主分享。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1