找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 46016|回复: 32
收起左侧

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

  [复制链接]
ID:507020 发表于 2019-4-15 16:55 | 显示全部楼层 |阅读模式
如题
回复

使用道具 举报

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
回复

使用道具 举报

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

使用道具 举报

ID:423511 发表于 2019-4-15 21:05 | 显示全部楼层
表示把P2口的8个IO口全部拉高。
回复

使用道具 举报

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

使用道具 举报

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

使用道具 举报

ID:196174 发表于 2019-4-15 22:25 | 显示全部楼层
0xFF转换成二进制是1111 1111,对应的就是P2.7到P2.0输出1,最右面是最低位
回复

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

ID:513522 发表于 2019-4-16 13:14 | 显示全部楼层
对应的二进制为1111 1111,
回复

使用道具 举报

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

使用道具 举报

ID:425268 发表于 2019-4-16 18:32 | 显示全部楼层
0xff就是二进制1111 1111就是把P1全部置为高
回复

使用道具 举报

ID:514901 发表于 2019-4-17 21:35 | 显示全部楼层
P1端口全为高电平‘1’,0x是十六进制的意思,ff就是1111 1111的意思
回复

使用道具 举报

ID:475031 发表于 2020-3-4 18:01 | 显示全部楼层
那只是把其中P1.2和p.4端口为高,其他P1.0  P1.3 P1.5 P1,6 P1,7 P1,8端口为低呢,怎么设置呢
回复

使用道具 举报

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
回复

使用道具 举报

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

使用道具 举报

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

使用道具 举报

ID:267719 发表于 2020-3-5 14:53 | 显示全部楼层

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

使用道具 举报

ID:679425 发表于 2020-3-5 16:16 | 显示全部楼层
P1口8个口线全为1也就是高电平
回复

使用道具 举报

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

使用道具 举报

ID:703058 发表于 2020-3-5 18:42 来自手机 | 显示全部楼层
意思就是设置高电平  串口有电过去
回复

使用道具 举报

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

使用道具 举报

ID:559684 发表于 2020-3-6 10:52 | 显示全部楼层
0x是十六进制,ff代表两个15用二进制表示就是1111 1111
回复

使用道具 举报

ID:559684 发表于 2020-3-6 10:53 | 显示全部楼层
这样定义主要是好操控寄存器、
回复

使用道具 举报

ID:559684 发表于 2020-3-6 11:11 | 显示全部楼层
因为单片机是8位寄存器控制所以需要ff
回复

使用道具 举报

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

使用道具 举报

ID:397735 发表于 2020-3-6 17:54 | 显示全部楼层
C语言中F的0xFF表示16进制的FF,对应的二进制为1111 1111
回复

使用道具 举报

ID:433688 发表于 2020-3-6 18:12 | 显示全部楼层
ff是十六进制表示全是高电平
回复

使用道具 举报

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 单片机教程网

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