STC15F2K60S2系列串口1通信程序

2020-05-08 09:08

#include #include \#include

#define FOSC 12000000L //系统频率 #define BAUD 9600 //串口波特率

#define S1_S0 0x40 //P_SW1.6 #define S1_S1 0x80 //P_SW1.7 unsigned char a,i=0;

unsigned char String[32];

bit busy;

/*************系统初始化****************/ void sys_init(void) { P20=1; P32=1; P33=1; //P_SW1=0x40; //P3.6/P3.7串口1 RXD/TXD //P_SW1=0x80; //P1.6/P1.7串口1 RXD/TXD }

/*************UART_1 初始化****************/

void UartInit(void) {

SCON = 0x50; //8位数据,可变波特率 T2L = (65536 - (FOSC/4/BAUD)); //设置波特率重装值 T2H = (65536 - (FOSC/4/BAUD))>>8;

AUXR = 0x14; //T2为1T模式, 并启动定时器2

AUXR |= 0x01; //选择定时器2为串口1的波特率发生器 ES = 1; //使能串口1中断 EA = 1; }

/*************发送字符****************/ void SendData(unsigned char dat) {

while (busy); //等待前面的数据发送完成 busy = 1;

SBUF = dat; //写数据到UART数据寄存器 }

/*************发送字符串****************/

void SendString(char *s) {

while (*s) //检测字符串结束标志 {

SendData(*s++); //发送当前字符 } }

/*************主函数****************/ void main() { sys_init(); UartInit(); while(1) { if(P33==0) { // P20=0; SendString(\ } if(P32==0) { // P20=1; //SendData(a); SendString(String); } } }

/*************UART_1 中断服务程序****************/ void Uart1() interrupt 4 using 1 {

if (RI) {

RI = 0; //清除RI位

String[i++]= SBUF; //P0显示串口数据 if(i>8) i=0;

} if (TI) {

TI = 0; //清除TI位 busy = 0; //清忙标志 } }


STC15F2K60S2系列串口1通信程序.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:石嘴山办理中央环保督察群众信访举报 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: