⑴ 單片機C語言 P3 &= 0x57;
&在這里是位與的意思,如果你不知道什麼意思,建議你先學學c語言的『位運算』,網上搜索這些關鍵字,你可以得到很多相關視頻或資料。
按位與的盯哪悔凱正意思就是逐個位緩迅相與,得到逐個位的結果,這么說吧,你可以理解為加法或減法相類似的一種運算方法,逐位相與
舉例,
位運算符及位運算
1.按位與——&
(1)格式:x&y
(2)規則:對應位均為1時才為1,否則為0:3&9=1。
例如,3&9=1:
0011
& 1001
————
0001=1
(3)主要用途:清0或取 1個數的某些指定位
該題目中
P3 &= 0x57即是P3=P3&0x57的縮寫
而0x57即是01010111
它的結果就是將第五位P3.5和第七位P3.7清零,其它位保留不變
作用的話你綜合考慮一下就知道了
⑵ 單片機標識符的規則
1.bit和sbit都是C51擴展的變數類型。 bit和int char之類的差不多,只不過char=8位, bit=1位而已。都是變數,編譯器在編譯過程中分配地址。除非你指定,否則這個地址是隨機的。這個地址是整個可定址空間,RAM+FLASH+擴展空間。bit只有0和1兩種值,意義有點像Windows下VC中的BOOL。 sbit是對應可位定址空間的一個位,可位定址區:20H~2FH。一旦用了sbi xxx = REGE^6這樣的定義,這個sbit量就確定地址了。sbit大部分是用在寄存器中的,方便對寄存器的某位進行操作的。
2.bit位標量 bit位標量是C51編譯器的一種擴充數據類型,利用它可定義一個位標量,但不能定義位指針,也不能定義位數組。它的值是一個二進制位,不是0就是1,類似一些高級語言中的Boolean類型中的True和False。
3.sfr特殊功能寄存器 sfr也是一種擴充數據類型,點用一個內存單元,值域為0~255。利用它可以訪問51單片機內部的所有特殊功能寄存器。如用sfr P1 = 0x90這一句定P1為P1埠在片內的寄存器,在後面的語句中我們用以用P1 = 255(對P1埠的所有引腳置高電平)之類的語句來操作特殊功能寄存器。 sfr P1 = 0x90; //定義P1 I/O 口,其地址90H sfr 關鍵定後面是一個要定義的名字,可任意選取,但要符合標識符的命名規則,名字最好有一定的含義如P1 口可以用P1 為名,這樣程序會變的好讀好多.等號後面必須是常數,不允許有帶運算符的表達式,而且該常數必須在特殊功能寄存器的地址范圍之內(80H-FFH),具體可查看附錄中的相關表. sfr 是定義8 位的特殊功能寄存器而sfr16 則是用來定義16 位特殊功能寄存器, 如8052 的T2 定時器,可以定義為: sfr16 T2 = 0xCC; //這里定義8052 定時器2,地址為T2L=CCH,T2H=CDH
⑶ 單片機進位標志位C的問題
既然 ADD 會影響 C 標志,那麼執行 ADD 後 C 就必須反映出計算結果,所以 C = 0 。
⑷ 單片機語言中C和CY分別表示什麼,有什麼區別
匯編語言才用到C和CY,是進位標志和輔助進位標志,多位元組運算時要考慮進位和借位,C語言編程用不到。
⑸ 一個完整的單片機c語言程序包含哪幾個部分
個人覺得,一個完整C程序至少應該包含頭文件、初始化、主程序四個部分,頭文件是程序編譯預處理的重要組成部分,缺了它就無法生成目標代碼;初始化部分包含變數初始化和埠初始化;主程序是一個C程序的核心代碼,由此執行或調用一些具有特定功能的函數模塊以完成程序的預設功能。
⑹ 單片機STC12C4052AD中的字母數字各代表什麼
STC公司的單片機命名規則如襲纖下:讓拆
因此,對於STC12C4052AD單片機
STC:宏坦禪棗晶科技公司單片機
12:12系列單片機,1T單片機
C:工作電壓是5.5V~3.5V
40:內部程序存儲器空間是4KB
52:內部RAM是256B,PCA/PWM是2路
AD:有A/D轉換功能
⑺ 在單片機匯編語言中c是什麼意思
C為進借位標志位,就是CY
意思是兩數相加(ADDC指令)有進位就置C為1,兩數減(SUBB指令)有借位就置C為1,
上面兩種請況C的置1是系遲銷統自動的。
另外還可以自己對C進行操作
指令如下:
MOV
C,
bit
將bit位地址中的值送PSW中的進位標志位CY
MOV
bit,
C
將PSW中的進位標志位CY的值送bit位地址中
CLR
C
將進位標志位CY清0
SETB
C
將進位標志位CY置1
ANL
C,
bit
將Cy和bit位地址中的值進行與操作後,結果送Cy
ANL
C,
/bit
bit位地址中的值取反後再與Cy進行與操作,結構送Cy
ORL
C,
bit
將Cy和bit位地址中的值進行或操作後,結果送Cy
ORL
C,
/bit
bit位地址中的值取反後再與Cy進行或操作,結構送Cy
CPL
C
將Cy取反
還可以根據C的狀態分別執行轉移指令,如下
JC
rel
If(殲緩C=1)轉移到rel處執行指令
JNC
rel
If(氏旦模C=0)轉移到rel處執行指令。
⑻ 單片機80C51中的C指的是CMOS還是說用C語言進行編程
片機80C51中的C指的是CMOS。用什麼語言編程和單片沒有關系,編程語言和編譯器有關,不管用什麼語言編程,最後都會編譯成機器碼即二進制碼燒寫到單片機裡面。
CMOS single-chip 8-bit microcontrollers。
The Philips 80C31/80C51/87C51 is a high-performance
microcontroller fabricated with Philips high-density CMOS
technology. The CMOS 8XC51 is functionally compatible with the
NMOS 8031/8051 microcontrollers. The Philips CMOS technology
combines the high speed and density characteristics of HMOS with
the low power attributes of CMOS. Philips epitaxial substrate
minimizes latch-up sensitivity.
⑼ 單片機程序的「.c」和「.h」格式都有什麼區別
.c文件是整個程序中的一個或幾個函數組成,在別的.C文件里可以調用它,不只是在主函數中。這樣做可以增強程序的模塊化,提高程序的可讀性。當編制好一個模塊時你可以保存在一個工程下,文件名改為**.C。這樣在另一個.C文件中的文件頭處只要你對它進行說明就可以調用它。比如#include string.cx0dx0a那麼你就可以在你說明了的.C文件中調用它,這樣枝陪仔一個模塊可以在很多處調用,使得編程復雜度降低。程序編譯時把你所說明的文件復制到你調用處程序就可以運行猛汪了。x0dx0a.H文件是對單片機一些埠及一些常用的程序的庫說明,x0dx0a比如我們在程序中用到埠一即P1,我們能夠用它是因為在庫中已對它進行了說明亂臘,對P1賦予了一個埠地址,這樣程序編譯是才不會出錯,不然會提示你UNDIFINEDx0dx0a.C文件一般是自己創建的。而.H文件是系統自帶,不過自己也可以創建.H文件,主要對用到的一些標號進行說明,其中也可以包括一些常用的函數x0dx0a用戶自己創建的.C文件是放在工程目錄下,.H文件一般放在編譯器的某個目錄下,程序編譯的時候從默認目錄中搜索,如果找到則復制到程序開頭處。