㈠ 單片機是如何實現計算這的,怎麼把數字信號計算
無論做多麼復雜的計算,究其根本,單片機就是許多許多的門電路的集成體,而門電路的狀態只有兩個,即,開與關,開者為1,關者為0,就這么簡單,好在機器是呆板的,人是聰明的,就1/0這樣兩個狀態,人們竟然賦予了演算法,就是二進制演算法,但無論硬體電路多麼龐大,裡面各個最小單元的狀態卻只有兩個,即:開或關(1或0),只是通過工程師設計,將這些基本單元做一些復雜的組合,變成一個由許多小的組合系統做成的大的組合系統,就變成了數字集成電路,進而形成單機;
㈡ 單片機中的邏輯運算怎麼算的
在邏輯代數中,有與、或、非三種基本邏輯運算。表示邏輯運算的方法有多種,如語句描述、邏輯代數式、真值表、卡諾圖等。邏輯運算通常用來測試真假值。最常見到的邏輯運算就是循環的處理,用來判斷是否該離開循環或繼續執行循環內的指令。
累加器A清0指令。
CLR A;單片機軟體指令功能是將累加器A中的內容清0。影響單片機標志寄存器PSW中的奇偶標志位P。
累加器A取反指令。
CPL A;單片機軟體指令功能是將累加器A中的內容全部取反,結果送回A中。影響單片機標志寄存器PSW中的奇偶標志位P。
常用於單片機某個存儲器單元或某個存儲器區域中帶符號數的求補。
RL A;左循環移位指令:
單片機軟體指令功能是將累加器A的8位二進制數向左移動1位,累加器A中最左邊1位(即最高位A.7)移至最右邊1位(即最低位A.0)。不影響單片機標志寄存器PSW中的標志位。
RR A;右循環移位指令:
單片機軟體指令功能是將累加器A的8位二進制數向右移動1位,累加器A中最右邊1位(即最低位A.0)移至最左邊1位(即最高位A.7)。不影響單片機標志寄存器PSW中的標志位。
RLC A;帶進位左循環移位指令:
單片機軟體指令功能是將累加器A的8位二進制數和進位CY向左移動1位,累加器A中最左邊1位(即最高位A.7)移至CY,CY原內容移至累加器A的最右邊1位(即最低位A.0)。影響單片機標志寄存器PSW中的進位標志位CY。
RRC A;帶進位右循環移位指令:
單片機軟體指令功能是將累加器A的8位二進制數和進位CY向右移動1位,累加器A中最右邊1位(即最低位A.0)移至CY,CY原內容移至累加器A的最左邊1位(即最高位A.7)。影響單片機標志寄存器PSW中的進位標志位CY。
(2)單片機與運算怎麼計算的擴展閱讀:
邏輯運算組成部分
Boolean(布爾運算)的參數面板可分成三部分。
布爾運算練習模型:骰子
Pick Boolean(拾取布爾運算對象)卷展欄
該卷展欄用來拾取運算對象B,如圖所示。
在布爾運算中,兩個原始對象被稱為運算對象,一個叫運算對象A,另一個叫運算對象B。在建立布爾運算前,首先要在視圖中選擇一個原始對象,這時Boolean按鈕才可以使用。進入布爾運算命令面板後,單擊Pick Operand B命令按鈕來選擇第二個運算對象。
· Pick Operand B(拾取運算對象B):單擊該按鈕,在場景中選擇另一個物體完成布爾合成。其下的4個選項用來控制運算對象B的屬性,它們要在拾取運算對象B之前確定。
· Reference(參考):將原始對象的參考復製品作為運算對象B,以後改變原始對象,也會同時改變布爾物體中的運算對象B,但改變運算對象B,不會改變原始對象。
· Copy(復制):將原始對象復制一個作為運算對象B,而不改變原始對象。當原始對象還要作其他之用時選用該方式。
· Move(移動):將原始對象直接作為運算對象B,它本身將不再存在。當原始對象無其他用途時選該用方式。該方式為默認方式。
· Instance(關聯):將原始對象的關聯復製品作為運算對象B,以後對兩者中之一進行修改時都會同時影響另一個。
Parameters(參數)卷展欄
該卷展欄參數可分為三個區域,如圖所示。
Operands(操作對象)選項組
該組參數用來顯示所有的運算對象的名稱,並可對它們作相關的操作。
Operands List(操作對象列表):該列表框中列出所有的運算對象,供編輯操作時選擇使用。
Name(名稱):顯示列表框中選中的操作對象的名稱。可對其進行編輯。
Extract Operand(提取運算對象):它將當前指定的運算對象重新提取到場景中,作為一個新的可用對象,包括Instance(關聯)和Copy(拷貝)兩種屬性。這樣進入了布爾運算的物體仍可以被釋放到場景中。只有從其上方的列表框中選擇一個操作對象後才能激活該按鈕。
㈢ 關於單片機的運算
因為51單片機是8位的,所以只能以最大8位計算,就是說超過了8位(256)會將中間值存到寄存器里,所以你像你這個運算量蠻大的,有些單片機像32位的,就一條乘法指令就完成了,而51需要很多條,而且在執行時間上,51屬於低頻,速度速度有點慢的,因為51的指令執行周期比較慢
㈣ 單片機中怎麼計算除法
可通過單片機除法運算程」DIV AB「,進行計算。
」DIV AB「表示:(A)÷(B)→(A)和(B),把累加器A的8位無符號整數除以寄存器B中的8位無符號整數,所得到的商存在累加器A,而余數存在寄存器B中。
例如,使用DIV指令計算16÷5,運行如下3個指令:
MOV A,#16;
MOV B,#5;
DIV AB;
得到A為3,表示商;B為1,表示余數。
㈤ 單片機邏輯運算
第一步:
ANL是邏輯與運算
就是說第一步是A與47H里的內容34H進行與運算。 A=10000011 34H=00110100
與運算特點是有「0」則0 運算結果為00000000=00H 此時累加器A中內容為00H
第二步:
ORL是邏輯或運算
這部分是第一部分運算出來的A與47H地址里的34H進行或運算,得出的結果存放在47H單元中。 A=00H=00000000 47H=00110100 或運算特點是有「1」則1
所以運算結果為00110100=34H運算後47H地址中的內容為34H
第三步:
XRL是邏輯異或指令
R0前面的@說明定址方式是寄存器定址。特點是將R0中的內容作為地址,在從此地址中尋找出對應的內容作為R0的內容。題干中說到(R0)=47H 就是R0中的內容為47H @R0就是以R0中的內容47H為地址,找出對應的內容。上一部分已經知道了47H里的內容為34H。回到第三步來,就相當於XRL A,34H A=00H=00000000 34H=00110100 邏輯異或運算的特點是相同則為0,不同則為1,所以結果為00110100=34H 此時累加器A中的內容為34H
第四步:
SWAP是高低四位數據值互換(如果是8位的話) 就是將00110100前四位與後四位互換,換完後還是01000011=43H 最後A中內容為43H
參照下面那位大哥,改過來了,要不誤導人咯~~呵呵
㈥ 單片機乘除指令計算的具體步驟
關於MUL的用法書上有應該,我就不說了。說幾點:
一、單片機的乘法運算只是進制不同,跟我們常用的十進制是一樣的。例如:12×10=120
不要簡單想成在後邊加個0,學了單片機應該學會用*移位*思考,因為單片機不會在後邊加 0減0,應該想成12向左移一位,同樣二進制的11B×10B =110B ,十六進制11H×10H=110H,八進制也一樣。
二、想不通 ,還可換算成十進制去算,然後再轉換成相應進制。因為他們數量是一樣的只是進 制不同。十進制要滿是個進一位,八進制要滿8個進一位。十進制的10和八進制的12是一 樣的。
啰嗦了半天希望能理解其中的意思。
㈦ 單片機運算原理
提供一個電子技術導航網站給我們這些電子技術同行們吧:電子世家導航網站,它裡面分類收錄了很多優秀的電子技術網站,在其所收錄的那些網站論壇裡面就有很多大俠分享資料的。 希望對電子技術同行們有幫助啦!
㈧ 請問單片機中與指令,怎麼算cy比如ANL a,#9eh,(a)=3bh,我知道加減法里
單片機中「與」指令的演算法如下:
與1得1
與0得0,比如
3BH與9EH,
0011 1011
& 1001 1110
------------------
0001 1010 =1AH
㈨ 單片機中 定時器/計數器 的計數初值是怎麼計算得出的(計數和定時計算方式是否不同)--初學單片機
計數初值的計算:
定時或計數方式下計數初值如何確定:定時器選擇不同的工作方式,不同的操作模式其計數值均不相同。若設最大計數值為M,各操作模式下的M值為:
模式0:M=2^13=8192
模式1:M=2^16=65536
模式2:M=2^8=256
模式3:M=256,定時器T0分成2個獨立的8位計數器,所以THO、TLO的M均為256。
因為MCS-51的兩個定時器均為加1計數器,當初值到最大值(00H或0000H)時產生溢出,將TF位置1,可發出溢出中斷,因此計數器初值X的計算式為:X=M-計數值。
式中的M由操作模式確定,不同的操作模式計數器的長不相同,故M值也不相同。而式中的計數值與定時器的工作方式有關。
1、計數工作方式時
計數工作方式時,計數脈沖由外部引入,是對外部沖進行計數,因此計數值根據要求確定。其計數初值:X=M-計數值。
2、定時工作方式時
定時工作方式時,計數脈沖由內部供給,對機器周期進行計數,計數脈沖頻率fcont=fosc*1/12、計數周期T=1/fcont=12/fosc定時工作方式的計數初值X等於:
X=M-計數值=M-t/T=M-(fosc*t)/12
式中:fosc為振盪器的振盪頻率,t為要求定吋的時間。
(9)單片機與運算怎麼計算的擴展閱讀:
定時器工作方式的設定:
定時器有兩種工作方式:定時和計數。由TMOD的D6位和D2位決定,其中D6位決定T1的工作方式,D2位決定T0的工作方式。值為0時工作在定時方式,值為1時工作在計數方式。並且有四種操作模式:
1、模式0:13位計數器,TLi只用低5位。
2、模式1:16位計數器。
3、模式2:8位自動重裝計數器,THi的值在計數中不變, TLi 溢出時,THi中的值自動裝入TLi中。
4、模式3:T0分成2個獨立的8位計數器,T1停止計數。
㈩ 請問在單片機C語言編程中這個「與」運算怎麼用
&就是按位與,就是兩個變數位都為1,就是1,如果不同時是1,就為0;
temp=temp&0xf0; 高四位的狀態由你的輸入狀態決定,低四位被直接置為0
Switch語句就是依據你的temp值進行匹配,將按鍵狀態傳入temp變數,然後通過case分支,匹配不同的按鍵狀態