打印

不管送什么数进去,8个LED都一起灭

[复制链接]
4071|24
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lium|  楼主 | 2021-10-17 22:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
利用串口专家向单片机发个数,单片机根据这个数决定哪个LED灯亮。
void interrupt0()interrupt 4 using 1
{
i=SBUF;
LED=i;
}

main()
{
EA=1;
ES=1;
SCON=0x70;
PCON=0;
TMOD=0x20;
TH1=220;
TL1=220;
TCON=0x40;
}
波特率设定9600,现在的问题是不管送什么数进去,8个LED都一起灭?

使用特权

评论回复
沙发
zhenykun| | 2021-10-17 23:00 | 只看该作者
LED是不是再赋给IO口呢

使用特权

评论回复
板凳
juventus9554| | 2021-10-17 23:03 | 只看该作者

程序好简单。串口中断进来要清一下中断标记。
应该先调试串口接收是否正确。确定接收没问题后,再考虑其他

使用特权

评论回复
地板
xxrs| | 2021-10-17 23:05 | 只看该作者

你这程序现在的状况就是main的执行直接结束
最后应该加上句:
while(1);

使用特权

评论回复
5
chenjunt| | 2021-10-17 23:08 | 只看该作者

if(RI)
     {
          RI=0;
          i=SBUF;
          LED=i;
     }

使用特权

评论回复
6
lium|  楼主 | 2021-10-17 23:11 | 只看该作者
各位,又试了一下,在中断服务程序中清了中断标记,且在主程序中也加入了while(1);结果还是一样,不管送进什么数,8个灯一起灭

使用特权

评论回复
7
llljh| | 2021-10-17 23:14 | 只看该作者

#include <reg51.h>   

#define   LED         XBYTE[0xDFFF]
unsigned char i;

void interrupt0()interrupt 4 using 1
{
RI=0;
i=SBUF;
LED=i;
}


main()
{
EA=1;
ES=1;

SCON=0x70;
PCON=0;

TMOD=0x20;
TH1=220;
TL1=220;
TCON=0x40;
for(;;);
}

使用特权

评论回复
8
dingy| | 2021-10-17 23:19 | 只看该作者
看了下程序,
有一个错误,没有
#include<absacc.h>
另外
SCON=0x70;改为0x50习惯一点,
#define   LED         XBYTE[0x0DFFF]加个0习惯一点

使用特权

评论回复
9
wangzsa| | 2021-10-17 23:21 | 只看该作者

还有一点void interrupt0()interrupt 4 using 1中用关键字interrupt给函数取名,不妥;
#include <reg51.h>改为#include <reg52.h>

使用特权

评论回复
10
lizye| | 2021-10-17 23:23 | 只看该作者

请问为什么要将70改为50?还有为什么要加个0在前面?

使用特权

评论回复
11
liliang9554| | 2021-10-17 23:25 | 只看该作者
将70改为50是让串口工作在方式1,后面的问题是一般表示十六进制如果最前面是字母的话都要加0的

使用特权

评论回复
12
zhaoxqi| | 2021-10-17 23:28 | 只看该作者
不对,就是将sm2要置为0

使用特权

评论回复
13
chuxh| | 2021-10-17 23:30 | 只看该作者
其实规格要求使用32.768K晶振,你使用的76.8K晶振,属超规格要求使用,不建议这样使用

使用特权

评论回复
14
renyaq| | 2021-10-17 23:33 | 只看该作者
"十六进制如果最前面是字母的话都要加0"这是汇编语言的规定,C语言应该没有这个规定.

使用特权

评论回复
15
dengdc| | 2021-10-17 23:36 | 只看该作者
八成是你的中断的问题,你最好再尝试下中断,我以前也有过这样的问题

使用特权

评论回复
16
liliang9554| | 2021-10-17 23:38 | 只看该作者
咱们可以在别人的例程基础上进行修改,不然的话,会出现很多错误的。

使用特权

评论回复
17
wyjie| | 2021-10-17 23:40 | 只看该作者
和你操作的IO有关了,你不能整体操作,需要单独操作的。

使用特权

评论回复
18
chuxh| | 2021-10-17 23:42 | 只看该作者
你最好在keil里面看看你的sbuf到底收到了个啥。。确保收的没错再看别的。。

使用特权

评论回复
19
lium|  楼主 | 2021-10-17 23:47 | 只看该作者
嗯,我再好好缕一缕吧,有了好消息及时通知大家

使用特权

评论回复
20
单片小菜| | 2021-10-19 09:46 | 只看该作者
你这个代码,我看不懂,可以讲一下吗?或者多一些注释。

使用特权

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

本版积分规则

915

主题

9578

帖子

3

粉丝