串口通信问题,求帮助!!!!!
单片机吧
全部回复
仅看楼主
level 7
Chihson 楼主
原本设定了通过串口助手发送信息之后才会响蜂鸣器,但是一旦下载完它就响了,而且按了复位键之后就没有响,功能恢复正常,请问为什么会这样子呢?我看到郭天祥视频里面也会遇到这个情况,但是视频没有说明清楚是为什么.
代码如下:
#include<reg52.h>
unsigned char flag=0,num=0,a,beep;
sbit FM=P2^3;
main()
{
TMOD=0x21;
TH1=0xfd;
TL1=0xfd;
TH0=0x4c;
TL0=0x00;
TR1=1;
SM0=0;
SM1=1;
REN=1;
ET0=1;
EA=1;
ES=1;
while(1)
{
if(flag==1)
{
flag=0;
EA=0;
TR0=1;
if(a==*1*)
beep=8;
if(a==*2*)
beep=4;
if(a==*3*)
beep=2;
if(a==*4*)
{
TR0=0;
FM=1;
}
EA=1;
}
}
}
void ser() interrupt 4
{
RI=0;
a=SBUF;
flag=1;
}
void fm() interrupt 1
{
TH0=0x4c;
TL0=0x00;
num++;
if(num>=beep)
{
num=0;
FM=~FM;
}
}
2014年08月14日 16点08分 1
level 5
请问楼主FM=~FM是什么意思呀
2014年08月14日 17点08分 2
FM定义了蜂鸣器,然后就是取反,让它以一定频率响啊
2014年08月14日 17点08分
回复 Chihson :哦哦,交流蜂鸣器吧。楼主单片机学的不错哦,我才刚刚开始学,以后有什么不懂问你哦
2014年08月14日 17点08分
回复 依剑对风尘 :我也才刚学,暑假才上手的。以后可以交流交流喔[哈哈][哈哈]
2014年08月14日 17点08分
回复 Chihson :好的
2014年08月14日 17点08分
level 8
*1*是什么用法?
2014年08月14日 18点08分 3
是单引号,发出来就成了这个样,
2014年08月14日 18点08分
回复 Chihson :放进单引号是什么意思。。。
2014年08月14日 19点08分
回复 若干年后的人 :串口助手发送的是字符啊,所以判断的时候当然要跟字符比较啊,单引号引起来就表示字符啊
2014年08月15日 01点08分
回复 Chihson :好吧,没听过[吐舌]
2014年08月20日 17点08分
level 12
a赋初值0试试
2014年08月15日 01点08分 4
还是不行啦,可能用中断的话,计算机下载以后会跟单片机通信导致吧。
2014年08月15日 05点08分
if(flag==1) { flag=0; EA=0; TR0=1; 这里肯定有问题吧,你用定时中断产生频率,虽然开了定时0,但是你关了中断
2014年08月15日 07点08分
回复 675121727 :原来在后面,看到了[汗]
2014年08月15日 07点08分
level 5
有些版本的STC-ISP(例如4.80)估计下载好了,程序运行了的时候,下载程序还会通过串口和单片机进行通讯一次。或者用于检验?
而有些版本的STC-ISP(例如6.76C)不会进行这次通讯,所以就不会触发这次。
2014年08月15日 07点08分 6
但是要发送过来的信息要匹配设定的才会执行啊,发过来的难道匹配了?
2014年08月15日 07点08分
没有吖,你并没有进行匹配比较!只要串口收到任何一个字节,flag都会为1,flag为1主函数就会打开定时器0
2014年08月15日 08点08分
回复 暴力吴刚 :能加你qq吗
2014年08月15日 15点08分
回复 暴力吴刚 :有点问题想请教[哈哈]
2014年08月15日 15点08分
level 6
scon寄存器不要用位操作,
2014年08月15日 10点08分 7
level 6
51上电的时候,除了p0-p4,其他的寄存器初值都是00h。你看下你位操作设置的scon就明白了。还有波特率的设置,要根据晶振来,郭天祥的板子是 11.0592mhz的。
2014年08月15日 11点08分 8
嗯,我的板子也是11.0592,
2014年08月15日 11点08分
level 11
下载的时候串口是有一串数据过来的
2014年08月15日 17点08分 9
level 5
SMOD不能位操作,需要使PCON=0x80
2014年08月15日 17点08分 10
level 6
亲 FM=~FM;之前 延时5MS试试。~!应该就是这个原因咯
2014年08月16日 11点08分 11
不是这个原因,原因是第一次下载完后计算机和单片机通信打开了中断,现在解决了。
2014年08月16日 11点08分
level 10
十五字
当在你这里混经验不容易啊
2014年08月20日 18点08分 12
level 10
度娘你要真想知道这为神马是浮云
2014年08月20日 19点08分 13
1