C51串口通信(中断模式)T2产生波特率

发布者:大酉幽华1最新更新时间:2016-11-09 来源: eefocus关键字:C51  串口通信  中断模式  波特率 手机看文章 扫描二维码
随时随地手机看文章
#include
#define uchar unsigned char
uchar temp;
void serial()interrupt 4 using 1
{
if(RI)
{
RI=0;
temp=SBUF;
SBUF=temp;
}
else if(TI)
TI=0;
 
}
 
main()
{
uchar string[]="AT89C52 Microcomputer!Designer: Grarry Meng";
uchar i=0;
RCLK=1;
TCLK=1;
TH2=0XFF;
TL2=0XDC;
RCAP2H=0XFF;
RCAP2L=0XDC;
TR2=1;
SCON=0X50;
while(string[i]!='\0')
{
SBUF=string[i];
while(!TI);
TI=0;
i++;   
}
EA=1;
ES=1;
while(1);
}
关键字:C51  串口通信  中断模式  波特率 引用地址:C51串口通信(中断模式)T2产生波特率

上一篇:51单片机IO口模拟串口通讯C源程序
下一篇:C51汇编伪指令

推荐阅读最新更新时间:2024-03-16 15:20

ds1302的C51驱动
#include D:\reg51.h //头文件 #define uchar unsigned char uchar settime ={1,2,3,4,5,6,7}; uchar readtime ; //********************************************************************* sbit T_CLK = P1^1; //实时时钟时钟线引脚 sbit T_IO = P1^0; //实时时钟数据线引脚 sbit T_RST = P1^2; //实时时钟复位线引脚 //************************************************
[单片机]
Keil C51 的printf
在Keil C51 中使用printf ,首先需要重新实现 putchar(char c)函数。此函数在 char putchar (char c) { ES=0; SBUF = c; while(TI==0); TI=0; ES=1; return 0; } 我们先分析一下上面这个程序哈, 关闭串口中断 发送单字节数据 等待发送完毕 清除TI标志 开启串口中断 在main函数里可以直接使用printf函数进行输出了。 但是,我一直存在这样一个疑惑: void main() { unsigned char test1 = 55; printf( the
[单片机]
手动编译链接生成c51的hex文件
这个纯粹是个人爱好。现在系统的UI的做得越来越好,但还是莫名的喜欢那个命令行,算是种怀旧吧。 再次声明:该举动仅为个人爱好而已 虽然是手动编译,但还是需要个keil安装后的环境。 详细步骤: 1.用记事本或者notepad++编写超简单的代码 例如: #include reg52.h sbit L1 = P1^2; void main() { L1 = 0; while(1); } 保存为test.c 这个源码最好建立到keilC51BIN目录下,避免敲过多的路径。 2.cmd 下进入keil 安装目录 keilC51BIN 执行如下命令: c51x te
[单片机]
STM32F103标准库开发---Uart串口通信实验---函数发送和中断接收
一、Uart串口通信----函数发送 1. Uart串口发送(标准库)函数—单字节发送 Uart串口发送函数在STM32F103标准库的 stm32f103x_usart.c 文件中,具体如下图所示: 具体函数如下: /** *@功能:通过USARTx外设传输单个字节数据 *@参数1:指定USART外设(USART1,USART2,USART3,USART4,USART5) *@参数2:要传输的数据(最多9位数据,由初始化配置决定) *@返回值:无 */ void USART_SendData(USART_TypeDef* USARTx, uint16_t Data) { /* Check the parame
[单片机]
STM32F103标准库开发---Uart<font color='red'>串口通信</font>实验---函数发送和<font color='red'>中断</font>接收
Keil C51对C语言的关键词扩展之十一: xdata
xdata声明的变量位于外部ram 64KB地址范围内某一位置。 程序示例: unsigned int xdata m=0; /* 声明一个全局变量,可位于外部ram 64KB地址范围内任意位置,由编译器决定 */ int main(void) { ...... }
[单片机]
AVR串口通信程序RS232头文件
下面是ATMEGA128的头文件 /************************这是串口0******************************/ /*串口0的初始化*/ void Uart0_init(void) { UCSR0B = 0x00; //禁止发送和接收 UCSR0A = 0x02; //倍速异步模式USX0=1 UBRR0L=(Crystal/8/Baud0-1)%256; //根据数据手册的计算法 UBRR0H=(Crystal/8/Baud0-1)/256; //如果不是倍速则(Crystal/16/Baud0-1) UCSR0B=(1 RXEN0)|(1 TXEN0)|(1 RX
[单片机]
8051单片机串口波特率计算方式
STC12C5A60S2单片机兼容80C51单片机,其串口波特率可以由定时器产生,也可以由独立波特率发生器产生。其波特率模式可以是固定的,也可以是可变的。 固定波特率:当 模式0的通信速度设置 位UART_M0x6/AUXR.5 = 0时,其波特率 = SYSclk/12 当 模式0的通信速度设置 位UART_M0x6/AUXR.5 = 1时,其波特率 = SYSclk/2 可变波特率:使用串行通信模式2,即可自定义串口通信波特率,其计算公式为:波特率 = 2^SMODE /64×( SYSclk 系统工作时钟频率) 当SMOD=1时,波特率=2/64( SYSclk) =1/32( SYSclk) ; 当SMOD
[单片机]
单片机在波特率变换器中的应用
在一些复杂的系统中,系统与分系统、分系统与设备等之间存在数据的传递问题,往往采用通信的方式来解决。由于分系统、没备等通信波特率的不同,特别是一些特殊波特率设备的存在,使得系统中设备间的相互通信不易实现。例如,在一个系统中,上位机接收某一设备的数据,如图1所示,设备l和设备2采用的是172.8 kbps的波特率,而上位机用VB编程,其通信波特率为115.2 kbps、128 kbps或256 kbps,等,这样设备之间就不能相互通信,给设计带来困难。为了解决上述问题,采用双单片机电路,设计了波特率变换器,将接收波特率为172.8 kbps的数据,转换成波特率为115.2 kbps的输出,从而使不同波特率设备之间的通信成为可能。
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved