欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 請教P3^0 和P3_0什么區別? [打印本頁]

作者: a333    時間: 2011-9-30 22:12
標題: 請教P3^0 和P3_0什么區別?
我在用51hei單片機開發板附帶的程序的時候把把P3_0換成P3^0程序就不對了呢?
作者: admin    時間: 2011-9-30 22:14

肯定是你那個程序用的頭文件是 at89x52.h 吧,,在這個頭文件里已經定義了好了P3_0的,P3^0是不能直接使用的哦,必須要把P3^0定義為一個sbit的變量才可以.

 

 

 


作者: a333    時間: 2011-9-30 22:18
那怎么有時候用sbit DUAN=P2^7這個語句呢? 而不是P2_7
作者: admin    時間: 2011-9-30 22:20

那肯定是因為頭文件是 reg52.h吧    這個頭文件里面沒有定義P2_7 ,所以必須手工定義sbit DUAN=P2^7


作者: a333    時間: 2011-9-30 22:22
#include"AT89x52.h"
#include"intrins.h"
 
#define uint unsigned int
#define uchar unsigned char

sbit WEI=P2^7;      //U2 74HC573的LE端    數碼管的位選端
sbit SJ=P1^4;       //LED發光管的使能端


這個程序里有AT8952 怎么還能用P2^7??

作者: admin    時間: 2011-9-30 22:25

這么說把 reg52.h 里沒有定義P2_7  所以不能用 P2_7

而P2^7這個不是自己定義的是c51的語言規定的,所以P2^7在 reg52.h和 at89x52.h里都能使用,而P2_7 則只能在at89x52.h里使用


作者: a333    時間: 2011-9-30 22:28
P2^7既然通用 既然都能使用 還是那個問題 把P3_0換成P3^0程序就不對了呢?
作者: admin    時間: 2011-9-30 22:30

因為P3^0不是一個變量,你給他賦值當然會提示錯誤,這是不符合語法的,你要給他賦值首先得定義它才行

比如說在頂部定義

sbit p30=P3^0;

 

然后賦值的時候就寫p30=0或者p30=1

這樣就不會提示錯誤了.

[此貼子已經被作者于2011-9-30 22:35:17編輯過]

作者: a333    時間: 2011-9-30 22:38
明白點了 那P3^0表示的是什么類型的量?
作者: admin    時間: 2011-9-30 22:44

在reg51.h中 P3是這樣定義的

sfr P3    = 0xB0;

而P3^0 的意思是P3口的第0位,但P3^0 這是一個表達式,就像是1+1一樣 ,所以這是不能直接使用的, 你必須把他定義為一個sbit類型的變量才能使用.

 


作者: windwithgone    時間: 2012-3-28 18:53
P3^0需定義,P3_0無需定義,好像是這樣的




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