单片机P口对应顺序。

[复制链接]
 楼主| think-you 发表于 2011-12-30 18:38 | 显示全部楼层 |阅读模式

比如我在P0.0引脚输出一个高电平来点亮连接这个引脚的LED,程序里写入P0=0x80,转换成二进制是10000000,对应P0口的八个输出(我想这意味着P0.0为1,可是我发现实际上点亮的却是第八个LED,即和P0.7连接的那个。于是我按这个,程序改写成P0=0x01就对了,对应的就是00000001,这样点亮的才是P0.0上的LED,这是什么原因呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| think-you 发表于 2011-12-30 18:45 | 显示全部楼层
哎,这个问题没人回答啊,也许是真的太菜了吧,可我真的想了好久想不通啊。刚开始学单片机。
江枫渔火 发表于 2011-12-30 18:49 | 显示全部楼层
兄弟,端口P0~0到P0~7,按照由低到高的顺序的~这是常识~

也有倒着的~但不多见
江枫渔火 发表于 2011-12-30 18:53 | 显示全部楼层
8个二进制数,如果对应一个端口的8个引脚,那就是按照我们平时写数字一样的思路,P07肯定就是二进制的第8位,P00就是二进制数的第1位。
rclong 发表于 2011-12-30 19:04 | 显示全部楼层
注意P0端口寄存器是如何定义最高位和最低位的
gx_huang 发表于 2011-12-30 19:05 | 显示全部楼层
还是先好好念书吧,这么差的基础知识,还是要补补才健康。
要么就是大脑瞬间短路了。
 楼主| think-you 发表于 2011-12-30 19:06 | 显示全部楼层
刚才把这个程序烧进了我的90C516RD+
原程序不改如下:
#include<stdio.h>
#include <reg51.h>          
main()
{
P0=0x80;
}
用万用表测得只有P0.7输出高电平,P0.0到P0.6均约为0V。确认无疑。真的郁闷啊!
海信飞人 发表于 2011-12-30 19:10 | 显示全部楼层
看是不是插线插反了?
 楼主| think-you 发表于 2011-12-30 19:10 | 显示全部楼层
又改成P2口:
#include<stdio.h>
#include <reg51.h>          
main()
{
P2=0x80;
}

只有P2.7为高电平,0x80应是1000 0000啊!
 楼主| think-you 发表于 2011-12-30 19:11 | 显示全部楼层
和接线无关啊,我什么也不连,直接测的引脚端电压!
gx_huang 发表于 2011-12-30 19:19 | 显示全部楼层
LZ大脑短路了,赶紧睡一觉。
0X80本来就是D7是1,也就是端口的BIT7是1,你还不明白?
rclong 发表于 2011-12-30 19:37 | 显示全部楼层
楼主还要注意LED与单片机的连接方式 是共阴极连接还是共阳极连接的区别
 楼主| think-you 发表于 2011-12-30 19:45 | 显示全部楼层
难道这里二进制从右往左读?0X80,1000 0000,从右往左,P0.0 0.1 0.2....0.7,是么?
gx_huang 发表于 2011-12-30 19:49 | 显示全部楼层
低位在右,高位在左。
d7 d6 d5 d4 d3 d2 d1 d0,清楚了吗?小学生!
呢喃@呢喃 发表于 2011-12-30 20:39 | 显示全部楼层
低位在右,高位在左。
14楼说得很对
howard-ch 发表于 2011-12-30 20:40 | 显示全部楼层
这都不是问题,不是问题的问题,建议你学习 郭天翔10天51单片机视频,你就会了,其实你是缺少具体实例的学习。毕竟是刚接触的在校生嘛,以前我也这样。。。
 楼主| think-you 发表于 2011-12-30 21:21 | 显示全部楼层
问题解决
solar000 发表于 2011-12-30 23:44 | 显示全部楼层
ayb_ice 发表于 2011-12-31 09:08 | 显示全部楼层
这个问题问的相当有水平
chenczy 发表于 2011-12-31 09:17 | 显示全部楼层
多看一下基础书吧,不要什么都不懂就去写程序,这是单片机最基本的东西,看来LZ以前是没看过这方面的书了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

7

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部