蓝桥杯准备中---------------UART串行通信----------------人机交互系统(擅长)
来源:互联网 发布:有tm商标能上淘宝吗 编辑:程序博客网 时间:2024/05/17 20:27
#include<reg52.h>
#include<intrins.h>
sfr AUXR= 0x8e;
unsigned char TXtemp[10];
unsigned char RXtemp[10];
unsigned char readflag;
unsigned char ch_i;
bit overflag;
void delay()
{
unsigned char i, j, k;
_nop_();
_nop_();
i = 43;
j = 6;
k = 203;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
//////////////////////////////定时器初始化/////////////////////
void timer0_init()
{
TMOD|=0X01;
TH0=(65535-2000)/256;
TL0=(65535-2000)%256;
EA=1;
ET0=1;
TR0=1;
}
///////////////////////////////串口初始化///////////////////////
void UartInit(void) //9600bps@11.0592MHz
{
PCON &= 0x7F; //波特率不倍速
SCON = 0x50; //8位数据,可变波特率
AUXR &= 0xBF; //定时器1时钟为Fosc/12,即12T
AUXR &= 0xFE; //串口1选择定时器1为波特率发生器
TMOD &= 0x0F; //清除定时器1模式位
TMOD |= 0x20; //设定定时器1为8位自动重装方式
TL1 = 0xFD; //设定定时初值
TH1 = 0xFD; //设定定时器重装值
ET1 = 0; //禁止定时器1中断
TR1 = 1; //启动定时器1
ES=1;
}
//通过串口发送字符串
void uart_sendstring(unsigned char *str)
{
unsigned char *p;
p = str;
while(*p != '\0')
{
SBUF = *p;
while(TI == 0); //等待发送标志位置位
TI = 0;
p++;
}
}
void main()
{
P2=(P2&0X1F)|0XA0;
P0=0X00;
P2=P2&0X1F;
UartInit();
timer0_init();
while(1)
{
if(overflag)
{
overflag=0;
ch_i=0;
uart_sendstring(RXtemp);
}
}
}
void timer0() interrupt 1
{
static unsigned char num;
TH0=(65535-2000)/256;
TL0=(65535-2000)%256;
num++;
if(num==100)
{
num=0;
readflag=1;
}
}
void uart() interrupt 4
{
if(RI)
{
RI=0;
RXtemp[ch_i]=SBUF;
ch_i++;
if(RXtemp[ch_i-1]=='G')overflag=1;
}
}
这是最基本中断接受字符串写法。 根据此可延伸各种上位机指令需改参数,发送命令等操作。。。。。
- 蓝桥杯准备中---------------UART串行通信----------------人机交互系统(擅长)
- 串行异步通信-UART
- 串行异步通信-UART
- 7.0 UART串行通信
- UART串行通信详解
- UART串行通信
- UART串行通信
- 常用串行通信对比(SPI、I2C、UART)
- 串行通信入门:uart、i2c、spi
- 软件模拟串行通信——UART协议实现
- uart异步串行协议
- C645x的串行RapidlO通信系统设计
- 串行通信程序(C#)
- 串行通信 现场总线(网络)
- RTEMS-BBB(八):UART扩展:准备
- 串行总线:I2C、SPI和UART的区别(重要)
- MCU通信技术:SPI UART TWI 三种串行总线协议
- SPI、I2C、UART三种串行总线通信的原理以及区别
- JAXBContext解析XML集合对象
- Spring事务管理—aop:pointcut expression解析
- 非常炫酷的刷新效果赏析
- 三招应对这些最难面试问题
- apache的安装和配置
- 蓝桥杯准备中---------------UART串行通信----------------人机交互系统(擅长)
- Oculus发布程序运行报错 以及 数据库读取不出来解决方案
- 一行代码保存fckeditor编辑器提交的内容到文件(接上一博)
- AndroidMainfest.xml文件中的android属性
- 分支限界(Branch and Bound )算法
- ios app应用程序发布到app store流程
- 文章标题
- Ubuntu14.04状态栏不显示时间
- 【自用资料】时间复杂度增长情况