找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 47059|回复: 32
打印 上一主题 下一主题
收起左侧

51单片机P1=0xff是什么意思,为什么要这样定义?

  [复制链接]
跳转到指定楼层
楼主
ID:507020 发表于 2019-4-15 16:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:512946 发表于 2019-4-15 19:04 | 只看该作者
单片机C语言中,p2=0xFF的0xFF表示16进制的FF,对应的二进制为1111 1111
回复

使用道具 举报

板凳
ID:511734 发表于 2019-4-15 20:11 | 只看该作者
十六进制数0xff转化为2进制就是1111 1111,分别对应I/O的8个口线,所以0xff的意思为P1口8个口线全为1也就是高电平
回复

使用道具 举报

地板
ID:513040 发表于 2019-4-15 20:23 | 只看该作者
0x表示为16进制显示,F为16进制下的15,所以P1=0xFF意思是P1口的P1.0到P1.7的全部口都为1(高电平),即11111111
回复

使用道具 举报

5#
ID:510922 发表于 2019-4-15 20:50 | 只看该作者
我也是初学单片机,我用得最多P0=0xff;这句最多的是在操作数码管时用来对数码管消影的。16进制的0xff相当于二进制的1111 1111.因此使用这个命令就相当于给P0 的1-7IO口全部给高电平。具体还要结合你的代码来分析。
回复

使用道具 举报

6#
ID:423511 发表于 2019-4-15 21:05 | 只看该作者
表示把P2口的8个IO口全部拉高。
回复

使用道具 举报

7#
ID:137078 发表于 2019-4-15 21:10 | 只看该作者
P1的引脚口,都输出一个高电平,至于定义的话,要根据电路需要,如果是刚学的话,可能是教你怎么去使能I/O口。
回复

使用道具 举报

8#
ID:513115 发表于 2019-4-15 21:45 | 只看该作者
0xff是十六进制数,0x是C语言里面十六进制数的标识,十六进制数0xff转化为2进制就是1111 1111,分别对应I/O的8个口线,所以0xff的意思为P1口8个口线全为1也就是高电平
回复

使用道具 举报

9#
ID:196174 发表于 2019-4-15 22:25 | 只看该作者
0xFF转换成二进制是1111 1111,对应的就是P2.7到P2.0输出1,最右面是最低位
回复

使用道具 举报

10#
ID:337069 发表于 2019-4-16 00:16 | 只看该作者
P1就是一个标号,库文件定义这个标号指向片内特殊功能寄存器,这样通过这个标号访问片内寄存器。这么定义就是为了好记,使用方便。51单片机P1都是固定指向八位IO口,P1=0xff使八个口都输出高电平
回复

使用道具 举报

11#
ID:513257 发表于 2019-4-16 08:42 | 只看该作者
把单片机P1端口全部设置为高电平,一个P1端口有8个IO,0XFF相当于1111 1111 ,每个1控制一个IO,这样就把整个P1端口全部设置为高电平了
回复

使用道具 举报

12#
ID:513493 发表于 2019-4-16 12:27 | 只看该作者
P1为8位双向IO口,0XFF的意思就是1111 1111一个F对应4位二进制数。即让P1口全部为高电平
回复

使用道具 举报

13#
ID:513499 发表于 2019-4-16 12:32 | 只看该作者
0xff也就是P1口全为1,就像二极管,负极如果接在单片机上,如果P1口是高电平1,则灯不亮,如果有信号让P1口都为0,则灯就点亮了
回复

使用道具 举报

14#
ID:513522 发表于 2019-4-16 13:14 | 只看该作者
对应的二进制为1111 1111,
回复

使用道具 举报

15#
ID:512474 发表于 2019-4-16 16:23 | 只看该作者
楼主你的问题是不是单片机初始化的时候有P1=0XFF?这个不是定义的,楼上的说的对,是往P1口写入0xFF。为什么要这样写,是因为早期的51单片机P1口是准双向口,作为输入口也要先初始化为高,确保其状态稳定~~
回复

使用道具 举报

16#
ID:425268 发表于 2019-4-16 18:32 | 只看该作者
0xff就是二进制1111 1111就是把P1全部置为高
回复

使用道具 举报

17#
ID:514901 发表于 2019-4-17 21:35 | 只看该作者
P1端口全为高电平‘1’,0x是十六进制的意思,ff就是1111 1111的意思
回复

使用道具 举报

18#
ID:475031 发表于 2020-3-4 18:01 | 只看该作者
那只是把其中P1.2和p.4端口为高,其他P1.0  P1.3 P1.5 P1,6 P1,7 P1,8端口为低呢,怎么设置呢
回复

使用道具 举报

19#
ID:702687 发表于 2020-3-5 09:38 | 只看该作者
鬼推磨 发表于 2020-3-4 18:01
那只是把其中P1.2和p.4端口为高,其他P1.0  P1.3 P1.5 P1,6 P1,7 P1,8端口为低呢,怎么设置呢

P1=Ox40
回复

使用道具 举报

20#
ID:419968 发表于 2020-3-5 10:13 | 只看该作者
P1 是51单片机 p1口 寄存器的 宏定义
//I/O 口特殊功能寄存器
sfr P1          =   0x90;
p1 = 0xff; 就是把0x90地址 赋值0xff
p1口输出高电平
回复

使用道具 举报

21#
ID:267719 发表于 2020-3-5 14:50 | 只看该作者
十六进制数0xff转化为2进制就是1111 1111,分别对应I/O的8个口线,所以0xff的意思为P1口8个口线全为1也就是高电平。
为了速度优先,这样执行只要2周期就把P1口全部高电平了。
回复

使用道具 举报

22#
ID:267719 发表于 2020-3-5 14:53 | 只看该作者

51单片机P1口没有P1.8吧?
P1=0x14;     //00010100
                   //76543210
回复

使用道具 举报

23#
ID:679425 发表于 2020-3-5 16:16 | 只看该作者
P1口8个口线全为1也就是高电平
回复

使用道具 举报

24#
ID:703050 发表于 2020-3-5 17:42 | 只看该作者
oxFF对应的二进制就是1111 1111.这样设置就是将P1口全部设置为高电平,这样采用十六进制定义的方法较简便
回复

使用道具 举报

25#
ID:703058 发表于 2020-3-5 18:42 来自手机 | 只看该作者
意思就是设置高电平  串口有电过去
回复

使用道具 举报

26#
ID:560467 发表于 2020-3-5 22:43 | 只看该作者
就是将P1端口的8个引脚全部拉高,这种一般是初始化定义,因为不定义你不知道当前I/O口状态
回复

使用道具 举报

27#
ID:559684 发表于 2020-3-6 10:52 | 只看该作者
0x是十六进制,ff代表两个15用二进制表示就是1111 1111
回复

使用道具 举报

28#
ID:559684 发表于 2020-3-6 10:53 | 只看该作者
这样定义主要是好操控寄存器、
回复

使用道具 举报

29#
ID:559684 发表于 2020-3-6 11:11 | 只看该作者
因为单片机是8位寄存器控制所以需要ff
回复

使用道具 举报

30#
ID:512723 发表于 2020-3-6 11:37 | 只看该作者
P1就是P1.0到P1.7八个端口,0xff是16进制,换成二进制就是1111 1111,在单片机引脚中1代表高电平,这样写就是说P1的8各引脚全置高电平
回复

使用道具 举报

31#
ID:397735 发表于 2020-3-6 17:54 | 只看该作者
C语言中F的0xFF表示16进制的FF,对应的二进制为1111 1111
回复

使用道具 举报

32#
ID:433688 发表于 2020-3-6 18:12 | 只看该作者
ff是十六进制表示全是高电平
回复

使用道具 举报

33#
ID:1035569 发表于 2022-9-16 08:36 | 只看该作者
zhouwanli2019 发表于 2019-4-15 19:04
单片机C语言中,p2=0xFF的0xFF表示16进制的FF,对应的二进制为1111 1111

听君一席话。。。。。。。。。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表