1. 單片機算術指令中,C7、C6是什麼意思還有位7是第7位的意思嗎
單片機算術指令中c是進位標志,在單片機中有一個寄存器PSW(D0H)是用來寄存標志的,不同的位定義不同的功能,
以51系列說一下:
PSW-----程序狀態字(寄存器)。
這是一個很重要的東西,裡面放了CPU工作時的很多狀態,藉此,我們可以了解CPU的當前狀態,並作出相應的處理。它的各位功能請看下錶:
D7 D6 D5 D4 D3 D2 D1 D0
CY AC F0 RS1 RS0 OV P
下面我們逐一介紹各位的用途
CY:進位標志。8051中的運算器是一種8位的運算器,我們知道,8位運算器只能表示到0-255,如果做加法的話,兩數相加可能會超過255,這樣最高位就會丟失,造成運算的錯誤,怎麼辦?最高位就進到這里來。這樣就沒事了。有進、借位,CY=1;無進、借位,CY=0
例:78H+97H(01111000+10010111)
AC:輔助進、借位(高半位元組與低半位元組間的進、借位)。
例:57H+3AH(01010111+00111010)
F0:用戶標志位,由用戶(編程人員)決定什麼時候用,什麼時候不用。
RS1、RS0:工作寄存器組選擇位。這個我們已知了。
0V:溢出標志位。運算結果按補碼運算理解。有溢出,OV=1;無溢出,OV=0。什麼是溢出我們後面的章節會講到。
P:奇偶校驗位:它用來表示ALU運算結果中二進制數位「1」的個數的奇偶性。若為奇數,則P=1,否則為0。 運算結果有奇數個1,P=1;運算結果有偶數個1,P=0。
例:某運算結果是78H(01111000),顯然1的個數為偶數,所以P=0。
希望對你有幫助!
2. 單片機中位定義和宏定義的區別 優缺點
位定義:定義一個名稱代替一個引腳,例如:JDQ=P1^1;
宏定義的話,就是這樣,A=JDQ;
宏定義的優點在於,當需要修改時會很方便。
比如在開頭宏定義了A=JDQ.當需要修改時,並不用去一個一個改,只要在宏定義里改一下就可以。
位定義和宏定義功能不同。
3. 單片機特殊功能寄存器和位定義怎麼編寫程序
用C語言來對單片機編程,有的單片機也有那麼幾條很特殊的獨有的編程語句,51單片機就有,先介紹兩條。
第一條語句是: sfr P0 = 0x80;
SFR這個關鍵字,是51單片機特有的,他的作用是定義一個單片機特殊功能寄存器(special function register)。51單片機內部有很多個小模塊,每個模塊有8個開關。每個模塊呢,都有一個房間和唯一的房間號。那麼P0就是一個功能模塊,就住在了0x80這個房間里,我們就是通過設置P0的內部這個模塊的8個開關,來讓單片機的P0這8個IO口輸出高電平或者低電平的。
第二條語句是: sbit LED = P0^0;
這個sbit,就是對剛才所說的SFR里邊的8個開關其中的一個進行定義。經過上邊第二條語句後,以後只要在程序里寫LED,就代表了P0.0口(「^」這個符號在數字鍵6上邊),注意這個P必須大寫,也就是說我們給P0.0又取了一個更形象的名字叫做LED。
了解了這兩個語句後,我們來大概看一下單片機的特殊功能寄存器。注意,每個型號的單片機都會配有生產廠商所寫的數據手冊(Datasheet),所以我們來看一下STC89C52RC的數據手冊,從21頁到24頁,全部是對特殊功能寄存器的介紹以及地址映射列表。我們在使用這個寄存器之前,必須對這個寄存器的地址進行說明。是不是花花綠綠的太多了,記不住啊,這個沒關系的,不需要你記住,了解一下,後邊大部分我會慢慢給大家解釋,少部分需要用到的時候,自己過來查手冊就可以了,做技術不是為了應付考試,你可以隨時翻閱手冊查找你需要的資料。
4. C51單片機入門編程問題
1、你不要想它怎麼關聯的,它就是一種固定的寫法,語法就這樣。你只能這樣寫,也當你寫成這樣的時候,編譯器會認得出來它代表什麼的,寫成其它的話,編譯就會報錯了。所以不要再糾結這個問題。語法這樣定的,遵守就行了。
2、0xfe不是什麼地址,就是個簡單的賦值,OutData就是等於0xfe。
OutData要是指一個埠的話,最前面是要有宏定義的,比如
#define OutData P0
上面表示用OutData這個詞代替P0。
為什麼要麼定義,而不直接用P0就好了,你去查一下宏定義的好處就知道為什麼會有這種用法了~
5. 51單片機模塊化編程怎麼位定義
模塊不太了解,對於位的話.
就是bit和sbit,就搞定位定義了.