打印

试了好久,就是没结果。

[复制链接]
877|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
野强强|  楼主 | 2015-5-2 10:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg51.h>
sbit P1_1=P1^1;
unsigned char q;
void delay(unsigned int ms)
{
unsigned int i;
unsigned char j;
    for(i=0;i<ms;i++)
    {
        for(j=0;j<20;j++);
        for(j=0;j<5;j++);
    }
}
main()
{
EA=1;
ES=1;
SCON=0x50;
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
TR1=1;
do
{
P1_1=0;
delay(60-q);
P1_1=1;
delay(q);
}
while(1);
}
void lanya(void) interrupt 4
{
unsigned char h;


RI=0;
h=SBUF;
if(h==0)
{

q=50;


}
else if(h==1)
{
q=10;

  delay(600);
}
else if(h==2)
{

q=30;


}
else
{
q=0;
  
  
}
}
/////////////////////////////////////////////////////////
这是一个单片机响应手机蓝牙发出命令的程序(手机可以发出0,1,2,3供单片机接收)。目的是为了完成p1_1口输出高电平分别持续2.28ms,1.37ms,0.47ms的脉冲电波。可是结果却不是。能否找出程序BUG.

相关帖子

沙发
as564335sa| | 2015-5-2 16:15 | 只看该作者
结果不是但现象是什么,是发送后没反应还是延时不对,问个问题都让人费解

使用特权

评论回复
板凳
JY-DX-JY| | 2015-5-2 16:20 | 只看该作者
先要连上蓝牙模块。

使用特权

评论回复
地板
NE5532| | 2015-5-2 16:26 | 只看该作者
1.不会写程序。
2.不会描述问题。
3.不会加注释。
4.不会调程序。

使用特权

评论回复
评分
参与人数 1威望 +2 收起 理由
ocon + 2 很给力!
5
野强强|  楼主 | 2015-5-2 18:18 | 只看该作者
as564335sa 发表于 2015-5-2 16:15
结果不是但现象是什么,是发送后没反应还是延时不对,问个问题都让人费解 ...

我以为看到程序大神是会猜到结果的,还有没加注释是由于代码少于100行的大神应该都不需要看注释。结果就是不管按哪个键,P1.1口输出2.5ms的高电平脉冲。求改

使用特权

评论回复
6
野强强|  楼主 | 2015-5-2 18:19 | 只看该作者
NE5532 发表于 2015-5-2 16:26
1.不会写程序。
2.不会描述问题。
3.不会加注释。

我以为看到程序大神是会猜到结果的,还有没加注释是由于代码少于100行的大神应该都不需要看注释。结果就是不管按哪个键,P1.1口输出2.5ms的高电平脉冲。求改

使用特权

评论回复
7
as564335sa| | 2015-5-2 20:22 | 只看该作者
考虑下手机发送的字符是ascii的还是hex的,51串口似乎不能仿真,简单点,手机上的蓝牙串口肯定是可以接收数据的,在你程序里把q,还有每次收到的字符用串口发回手机上(串口发送放在那不用我多说吧),是命令不对还是q没变,一看便知

使用特权

评论回复
8
NE5532| | 2015-5-3 10:14 | 只看该作者
野强强 发表于 2015-5-2 18:19
我以为看到程序大神是会猜到结果的,还有没加注释是由于代码少于100行的大神应该都不需要看注释。结果就 ...

注释不是写给大神看的,是写给你自己看的,你的态度和方法决定了你做的东西到处都是问题。

使用特权

评论回复
9
野强强|  楼主 | 2015-5-3 12:40 | 只看该作者
版主,说的对。我以后要注意了。但是能否找出问题。。。

使用特权

评论回复
10
xuyaqi| | 2015-5-3 13:26 | 只看该作者
串口中断里干的事情太多,更不应该在中断里还延时。

使用特权

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

本版积分规则

1

主题

5

帖子

0

粉丝