51单片机输入输出问题,本人初学者,不懂,还望大家多多指教。问题如图所示

#include<reg52.h>voidmain(void){P2=0xff;while(1){switch(P2){case0xE8:P0=0x20;break;ca... #include<reg52.h>
void main(void)
{
P2=0xff;
while(1)
{
switch(P2)
{
case 0xE8:P0=0x20;break;
case 0xF4:P0=0x01;break;
default:break;
}
}
}
图片画得时P0.6,实际上我接得时P0.5,程序上面对应的是0x20
展开
 我来答
夏曦秋雨
2011-12-19
知道答主
回答量:44
采纳率:0%
帮助的人:26.9万
展开全部
这位同学,很明显可以看得出你是初学者。其实单片机跟C语言在电脑上编程是差不多的。你看你只是一开始时给P2赋了个初值,到了后面你即没有语句重新给P2赋值,又没有中断程序来给P2赋值,你的P2值又怎么会有改变呢?即使你外部电路接好了,但是,你的程序并没有告诉单片机要去检测这些引脚的信号。所以,我建议,你搞一个外部中断来判断外部信号的变化。具体的你可以给我个邮箱,我们再聊。
更多追问追答
追问
有赋值啊,switch() case语句就是赋值的
追答
恕我冒昧了,您的C语言基础好像还不够扎实,也许是我见识太过于少,据我所知:switch case只是一个判断选择语句,并没有赋值的功能。这是根据switch括号里P2的值来选择相应的操作语句。我说的对吗?
上海实邦电子科技
2025-08-04 广告
联系方式:13671592388上海实邦电子科技有限公司是一家专业电子产品开发与ODM/OEM/电子制造服务(EMS)企业,具有多年基于消费电子产品、工业自动化产品、机电控制产品的PCBA开发与生产经验,更有多年的单片机开发及工业控制电路设... 点击进入详情页
本回答由上海实邦电子科技提供
莪_丶玮麟彡
2011-12-18
知道答主
回答量:7
采纳率:0%
帮助的人:1.2万
展开全部
...............
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式