標題: 51單片機P1=0xff是什么意思,為什么要這樣定義? [打印本頁]

作者: Knigit    時間: 2019-4-15 16:55
標題: 51單片機P1=0xff是什么意思,為什么要這樣定義?
如題
作者: zhouwanli2019    時間: 2019-4-15 19:04
單片機C語言中,p2=0xFF的0xFF表示16進制的FF,對應的二進制為1111 1111
作者: jswdwsx    時間: 2019-4-15 20:11
十六進制數(shù)0xff轉化為2進制就是1111 1111,分別對應I/O的8個口線,所以0xff的意思為P1口8個口線全為1也就是高電平
作者: WhiteBury    時間: 2019-4-15 20:23
0x表示為16進制顯示,F(xiàn)為16進制下的15,所以P1=0xFF意思是P1口的P1.0到P1.7的全部口都為1(高電平),即11111111
作者: wicos    時間: 2019-4-15 20:50
我也是初學單片機,我用得最多P0=0xff;這句最多的是在操作數(shù)碼管時用來對數(shù)碼管消影的。16進制的0xff相當于二進制的1111 1111.因此使用這個命令就相當于給P0 的1-7IO口全部給高電平。具體還要結合你的代碼來分析。
作者: weiweimao1    時間: 2019-4-15 21:05
表示把P2口的8個IO口全部拉高。
作者: 柳鐵鋼    時間: 2019-4-15 21:10
P1的引腳口,都輸出一個高電平,至于定義的話,要根據(jù)電路需要,如果是剛學的話,可能是教你怎么去使能I/O口。
作者: js408917272    時間: 2019-4-15 21:45
0xff是十六進制數(shù),0x是C語言里面十六進制數(shù)的標識,十六進制數(shù)0xff轉化為2進制就是1111 1111,分別對應I/O的8個口線,所以0xff的意思為P1口8個口線全為1也就是高電平
作者: 1311638554    時間: 2019-4-15 22:25
0xFF轉換成二進制是1111 1111,對應的就是P2.7到P2.0輸出1,最右面是最低位
作者: chtyise    時間: 2019-4-16 00:16
P1就是一個標號,庫文件定義這個標號指向片內特殊功能寄存器,這樣通過這個標號訪問片內寄存器。這么定義就是為了好記,使用方便。51單片機P1都是固定指向八位IO口,P1=0xff使八個口都輸出高電平
作者: 黎明zxq    時間: 2019-4-16 08:42
把單片機P1端口全部設置為高電平,一個P1端口有8個IO,0XFF相當于1111 1111 ,每個1控制一個IO,這樣就把整個P1端口全部設置為高電平了
作者: FOLLOWME123321    時間: 2019-4-16 12:27
P1為8位雙向IO口,0XFF的意思就是1111 1111一個F對應4位二進制數(shù)。即讓P1口全部為高電平
作者: zyj1850661856    時間: 2019-4-16 12:32
0xff也就是P1口全為1,就像二極管,負極如果接在單片機上,如果P1口是高電平1,則燈不亮,如果有信號讓P1口都為0,則燈就點亮了
作者: s'g's'y'f    時間: 2019-4-16 13:14
對應的二進制為1111 1111,
作者: Adolph.Y    時間: 2019-4-16 16:23
樓主你的問題是不是單片機初始化的時候有P1=0XFF?這個不是定義的,樓上的說的對,是往P1口寫入0xFF。為什么要這樣寫,是因為早期的51單片機P1口是準雙向口,作為輸入口也要先初始化為高,確保其狀態(tài)穩(wěn)定~~
作者: moqiyaa    時間: 2019-4-16 18:32
0xff就是二進制1111 1111就是把P1全部置為高
作者: 鄭漢松    時間: 2019-4-17 21:35
P1端口全為高電平‘1’,0x是十六進制的意思,ff就是1111 1111的意思
作者: 鬼推磨    時間: 2020-3-4 18:01
那只是把其中P1.2和p.4端口為高,其他P1.0  P1.3 P1.5 P1,6 P1,7 P1,8端口為低呢,怎么設置呢
作者: 木原晶    時間: 2020-3-5 09:38
鬼推磨 發(fā)表于 2020-3-4 18:01
那只是把其中P1.2和p.4端口為高,其他P1.0  P1.3 P1.5 P1,6 P1,7 P1,8端口為低呢,怎么設置呢

P1=Ox40
作者: adject    時間: 2020-3-5 10:13
P1 是51單片機 p1口 寄存器的 宏定義
//I/O 口特殊功能寄存器
sfr P1          =   0x90;
p1 = 0xff; 就是把0x90地址 賦值0xff
p1口輸出高電平
作者: carpcarey    時間: 2020-3-5 14:50
十六進制數(shù)0xff轉化為2進制就是1111 1111,分別對應I/O的8個口線,所以0xff的意思為P1口8個口線全為1也就是高電平。
為了速度優(yōu)先,這樣執(zhí)行只要2周期就把P1口全部高電平了。
作者: carpcarey    時間: 2020-3-5 14:53
木原晶 發(fā)表于 2020-3-5 09:38
P1=Ox40

51單片機P1口沒有P1.8吧?
P1=0x14;     //00010100
                   //76543210
作者: haierzaifei11    時間: 2020-3-5 16:16
P1口8個口線全為1也就是高電平
作者: 1902562889    時間: 2020-3-5 17:42
oxFF對應的二進制就是1111 1111.這樣設置就是將P1口全部設置為高電平,這樣采用十六進制定義的方法較簡便
作者: Ra8    時間: 2020-3-5 18:42
意思就是設置高電平  串口有電過去
作者: CZ1    時間: 2020-3-5 22:43
就是將P1端口的8個引腳全部拉高,這種一般是初始化定義,因為不定義你不知道當前I/O口狀態(tài)
作者: hghvhgv    時間: 2020-3-6 10:52
0x是十六進制,ff代表兩個15用二進制表示就是1111 1111
作者: hghvhgv    時間: 2020-3-6 10:53
這樣定義主要是好操控寄存器、
作者: hghvhgv    時間: 2020-3-6 11:11
因為單片機是8位寄存器控制所以需要ff
作者: 3130515360    時間: 2020-3-6 11:37
P1就是P1.0到P1.7八個端口,0xff是16進制,換成二進制就是1111 1111,在單片機引腳中1代表高電平,這樣寫就是說P1的8各引腳全置高電平
作者: muse122334    時間: 2020-3-6 17:54
C語言中F的0xFF表示16進制的FF,對應的二進制為1111 1111
作者: 詩酒贖春風    時間: 2020-3-6 18:12
ff是十六進制表示全是高電平
作者: sb單片機老師    時間: 2022-9-16 08:36
zhouwanli2019 發(fā)表于 2019-4-15 19:04
單片機C語言中,p2=0xFF的0xFF表示16進制的FF,對應的二進制為1111 1111

聽君一席話。。。。。。。。。。。





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1