打印
[STC单片机]

程序在STC89C52RC上不能运行

[复制链接]
1725|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
asd998877|  楼主 | 2017-6-16 15:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 asd998877 于 2017-6-16 15:11 编辑

用蓝牙模块通信,和开发学习板。板子和单片机都没有坏。烧录也成功了。RXT对的单片机的RXT,TXD对单片机的TDXD.ER脚通了VCC的电。用KEil模拟仿真,手机可以的到Success.
可是换成RXD对单片机的RTXD.TXD对单片机的RXD.仿真也没有数据是怎么回事?
刚自学。不知道那有问题。求教各位大神
#include "reg52.h"
#include "intrins.h"

unsigned char SenData,Flag;

char code str1[]="Success";
char code str2[]="Error";

void send_str();
void InitUART(void);
void send_str2();
void delayms(unsigned char ms);
void send_char(unsigned char txd);

void InitUART(void)
{
/*******************设定串口**********************/
SCON=0x50;                        //设置为工作方式1
TMOD=0x20;                        //设置计数器工作方式2
PCON =0x80;                        //波特率加倍
TH1=0xFA;                                //计数器初始值设置,注意波特率是9600的
TL1=TH1;
ES=1;                                                //打开接收中断
EA=1;                                                //打开总中断
TR1=1;                                        //打开计数器
/******************设定中断**********************/
}
void main()  //主函数
{        
InitUART();
while(1){
if(Flag==1)
{
ES = 0;
delayms(50);
//----------------------该段即对接收的数据进行处理
if(SenData==97)//97为字符a的ascii
{
delayms(10);//延时去抖动
send_str();//发送数据
}
else
{
delayms(10);
send_str2();
}
Flag=0;//数据处理完毕后将标志位置0,表示没有新数据要处理
}
ES = 1;
}
}

void ser_int()interrupt 4//接收字符串
{  

if(RI==1)//RI接受中断标志
{
SenData = SBUF ;
RI=0;//清除标志.
Flag =1;//标志位置1表示有新数据进来
}
else
TI = 0;
}


void send_str()//发送字串
{
unsigned char i=0;
while(str1!='\0')
{
SBUF =str1;
while(!TI);//等待数据传送
TI=0;//清除数据传输标志
i++;//下一个字符串
}
}

void send_str2()//发送字串
{
unsigned char i=0;
while(str2!='\0')
{
SBUF =str2;
while(!TI);//等待数据传送
TI=0;//清除数据传输标志
i++;//下一个字符串
}
}



void delayms( unsigned char ms)//延时子程序
{
unsigned char i;
while(ms--)
{
for(i=0;i<120;i++);
}
}

相关帖子

沙发
dirtwillfly| | 2017-6-16 17:35 | 只看该作者
看来mcu没有运行,看看供电是否正常,晶振起振了没有?
用逻辑分析仪观察一下串口io的时序,看是否正常

使用特权

评论回复
板凳
asd998877|  楼主 | 2017-6-16 17:45 | 只看该作者
dirtwillfly 发表于 2017-6-16 17:35
看来mcu没有运行,看看供电是否正常,晶振起振了没有?
用逻辑分析仪观察一下串口io的时序,看是否正常 ...

mcu是什么,如果是供电的话。我往单片机里烧其他程序,led灯闪烁的程序,它也执行了

使用特权

评论回复
地板
hp34401a| | 2017-6-17 11:17 | 只看该作者
mcu是什么都不知道,最基本的名词了,如何开发???

使用特权

评论回复
5
fengjumeng| | 2017-6-19 08:20 | 只看该作者
这里不对  应该是: RX对的单片机的TX,TX对单片机的RX.  交叉连接

使用特权

评论回复
6
yjmdxp| | 2017-7-13 16:12 | 只看该作者
弄个仿真芯片试试

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

5

帖子

0

粉丝