STC15F2K60S2串口2程序

发布者:玄幻剑客最新更新时间:2015-10-14 来源: eefocus关键字:STC15F2K60S2  串口2 手机看文章 扫描二维码
随时随地手机看文章
下面是串口2的程序,昨天一直没调出来的原因是由于串口发送完中断标志位,置位和清零上出了问题。其中为什么要把它,照着资料手册上那种方式写才行,这我现在也没大清楚,我想可能这需要反汇编才看的出来,由于竞赛时间紧,只有暂且放下进一步的分析,下面是程序代码。
#include "reg51.h"
 
sfr P4 = 0xc0;
sfr P5 = 0xc8;
sfr AUXR = 0x8e ;
 
sfr S2CON = 0x9a ; 
sfr S2BUF = 0x9b ;
sfr T2H   = 0xd6 ;
sfr T2L   = 0xd7 ;
sfr IE2   = 0xaf ;
sfr IP2   = 0xb5 ;
#define S2RI 0x01  // S2CON.0
#define S2TI 0x02  // S2CON.1
unsigned char temp ;
bit  flag1 = 0 , flag2 = 0 , busy = 0 ;  
unsigned char xdata Uart1TxBuffer [20] = "杜兴杰你必须加油个"; //
 
 void SendData ( unsigned char date ) ; //数据发送函数定义
 
void Uart2Init(void) //9600bps@11.0592MHz
{
S2CON = 0x50; //8位数据,可变波特率
AUXR |= 0x04; //定时器2时钟为Fosc,即1T
T2L = 0xE0; //设定定时初值
T2H = 0xFE; //设定定时初值
AUXR |= 0x14; //启动定时器2  4  注意这里
 
EA = 1 ;
IE2 = 0x01 ;    //开启串口中断ES2
 
IP2 |= 0x00 ;    //串口2优先级0 
}
   
void main( void )
     {
char i ;
P0 = 0 ;
Uart2Init() ; 
SendData ('C') ;
SendData ('C') ;
for ( i = 0 ; i < 20 ; i++ )
    {
 SendData (Uart1TxBuffer[i]) ;
}
for ( i = 0 ; i < 20 ; i++ )
    {
 SendData (Uart1TxBuffer[i]) ;
}  
SendData ('C') ;
SendData ('C') ;
while(1) 
    {
 if( flag2 == 1 )
    {
  SendData ( temp );
  flag2 = 0 ;
}
}
 
 
void Uart2( void ) interrupt 8 
     {
 
if( S2CON & S2RI )
   {
 S2CON &= ~ S2RI ;  
 temp = S2BUF ;
 flag2 = 1 ;
}
 if( S2CON & S2TI )
    {
 
 S2CON &= ~ S2TI ;
 busy = 0 ;
 
}
}
 void SendData ( unsigned char date ) 
   {
  while ( busy ) ; //
  busy = 1 ;
  S2BUF = date ;
//  while ( !( S2CON & 0x02 ) ) ;
 
 // S2CON &= ~ S2TI ;
 
 }
下一步是把串口1和串口2 加在一起,还有就是加入循环队列实现流控等

关键字:STC15F2K60S2  串口2 引用地址:STC15F2K60S2串口2程序

上一篇:用定时器编写的4相八拍步进电机程序
下一篇:STC15F2K60S2串口1程序

推荐阅读最新更新时间:2024-03-16 14:35

I2C与串口通信模块电子电路设计
  I2C 通信模块   OZ89采样模块将采集处理后的数据通过I2C总线发送到LF2407,由于LF2407自身不带I2C 接口,本设计利用PCA9564扩展其I2C接口。为了防止电磁干扰影响I2C总线上数据的传输,必须对总线信号进行隔离,考虑到I2C 总线是双向传输的,使用ADuM1250双向隔离芯片进行隔离。PCA9564及双向隔离电路如图2所示。   图2:PCA9564 及双向隔离电路   串口通信模块   电池管理系统将采集处理后的数据通过串口发送到PC机界面上,实现人机交互。通过串口界面,可以观察到电池的总电压、单体电压、电流、SOC、故障状态、充放电功率等参数,还可以通过串口发送实现管理系统的在
[嵌入式]
51单片机 (6)串口中断通信+定时器2串口中断
51单片机默认使用定时器1作为串口通信的波特率发生器、定时器1中断通信,串口与定时器1冲突,在遇到定时器不够用的时候可以用定时器2 #include reg52.h void DelayMs(unsigned int i); void SerialInit(); void SendByte(unsigned char sbyte); void SendString(unsigned char *pstr); void main(void) { SerialInit(); while(1); //注:必需要无限循环 } /* //单片
[单片机]
STC12C5A60S2单片机-双串口通信
STC12C5A60S2 单片机 是一款功能比较强大的单片机,它拥有两个全双工串行通信接口,串口1的功能及操作与传统51单片机串行口相同;特殊的是STC12C5A60S2单片机内部有一个独立波特率发生器,串口1可以使用定时器1作为波特率发生器,也可以使用独立波特率发生器作为波特率发生器;而串口2只能使用独立波特率发生器作为波特率发生器。 芯片:STC12C5A60S2 晶振:22.1184MHz 波特率:9600bps 引脚定义:串行口1: 发送————TxD/P3.1; 接收————RxD/P3.0 串行口2: 发送————TxD2/P1.3;接收————RxD2/P1.2 功能描述:STC12双串口通信(中断
[单片机]
单片机下载程序电路原理之USB转串口线、CH340、PL2303、MAX2
单片机软件开发里面第一步当属下载程序了,如果这一步都有问题,那么后面的一切便无从谈起,今天在此针对常用51单片机下载程序问题做下详解,有误之处还望各位指教! 原理:单片机的TXD、RXD是TTL电平,所以你得万变不离其宗的将其它信号转成TTL电平,只有这样给单片机下载程序才有可能成功!其中CH340、PL2303等芯片是直接将USB信号转换为TTL电平,而MAX232等芯片是将TTL转换为RS232信号或者将RS232信号转换为TTL.下面请看利用这种原理的两种常用方法: 方法一: 请看图一,这是常见的单片机下载电路,其中从②到⑥属于大家常用的USB转串口线,用这种方案的好处是,如果自
[单片机]
STC15F2K60S2芯片A/D转换器的应用
1.目的 在工业控制过程中,它是控制系统与微机之间不可缺少的 接口方式 。要实现自动控制,就要检测有关参数, A/D转换器 ,把检测到的电压或电流信号( 模拟量 )转换成计算机能够识别的等效数字量,这些数字量经过计算机处理后输出结果,通过 D/A转换器 变为电压或电流信号,送到 执行机构 ,达到控制某种过程的目的。 2.与A/D转换相关的寄存器 与STC15系列单片机A/D转换相关的寄存器列于下表所示。 符号 描述 地址 位地址及其符号 MSB LSB 复位值 P1ASF P1 Analog Function Configure register 9DH P17ASF P
[单片机]
<font color='red'>STC15F2</font>K60S<font color='red'>2</font>芯片A/D转换器的应用
stm8s 串口通讯源码程序(8位数据,奇校验,2个停止位)
串口初始化第一步,配置波特率,波特率是和时钟相关的,因此首先要配置时钟,时钟的配置参见上一篇博客。stm8s主时钟设置 如果在串口初始化中,如果串口时钟没有打开,请在主时钟配置中打开串口时钟。 配置波特率,stm8s的波特率,时钟,波特率寄存器值的计算相比avr和51又是巨大的进步,stm8s算波特率寄存器值只要Fmaster/波特率就可以了,不需要加加减减。 但是在写入寄存器时需要注意。 一,先写BBR2,再写BBR1。 二,BBR2写的是高四位和低四位,BBR1是中间八位,例如,Fmaster = 8 mhz,波特率1200,求得BBR寄存器值为8000000/1200 = 0x1A0A,那么写入寄存器的值
[单片机]
stm8s <font color='red'>串口</font>通讯源码程序(8位数据,奇校验,<font color='red'>2</font>个停止位)
STC15F2K60S2单片机8x8x8光立方
电路原理图如下: 元件清单: 名称 数量 规格/型号 备注 万能板 3 18*30cm 单片机STC15F2K60S2 1 DIP40 除非你会改程序,否则请勿擅自更换 74hc154 4 宽窄两种封装均可 40P IC座 1 24P IC座 4 电解电容47uF 1 104电容 1 拨动开关 1 铜柱(含螺母) 4 M3*100mm 灯珠 540 2*5*7mm雾状 颜色自选 弯排针 1 每组40P 直排针 8 每组40P 白色飞线 2 若干 USB转TTL下载器 1 PL2303
[单片机]
<font color='red'>STC15F2</font>K60S<font color='red'>2</font>单片机8x8x8光立方
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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