㈠ 單片機中 if-else if語句中無法運算a=_crol_(a,1);這個移位運算!!!!求解救
這褲讓個程序從流程看,只能
執行
if(a!=0x7f)
中的語句,而且,每次都重新給a
賦值
a=0xfe,所以敬凳不是不執行
a=_crol_(a,1);
而是
執胡稿局行了也看不到效果。
需要將
a,
b,
c三個變數
定義成全局變數。
㈡ 51單片機只能做控制用,不能完成算術運算
當然不是,只要不是特別復雜的算術有U運算都是謹如嘩可以實現。橡拿只是復雜的算術運算在51單片機裡面只能通過級數近似,消耗時間過長,所以工程上都使用速度更快並且祥行有更多硬體指令集的單片機來處理。
㈢ c51中51單片機不能進行處理的數據有哪些
c51中51單片機幾乎所有的數據都可以處理,其中8位二進制加減乘除可以一次運算處理,其它的要猛升靠多條指令組合成子程序進行處理,如浮點數搭好及雙精度浮點型也可以加減乘除,枝枝老但處理速度比較慢。
㈣ 單片機不可以進行什麼邏輯運算
基於單片機實現的邏輯運算程序詳解
演算法&編程學院
2018-05-12
8046
分享海報
演算法&編程學院
41文章
30.8w閱讀
10粉絲
+關注
描檔猜述
編寫程序,完成下察臘列邏輯功能:
Q = XYZ\F + XY\ZF + X\YZF + XYZF (\Y表示Y非,\Z表示Z非、、、)
這個邏輯表達式,可以化簡,就是:Q = XYZ + XYF + XZF
假設,各個變數對應的引腳如下:
X: P1.0
Y: P1.1
Z: P1.2
F: P1.3
Q: P1.7
程序如下:
MOV C, P1.0
ANL C, P1.1
ANL C, P1.2
MOV F0, C
MOV C, P1.0
ANL C, P1.1
ANL C, P1.3
ORL C, F0
MOV F0, C
MOV C, P1.0
ANL C, P1.2
ANL C, P1.3
ORL C, F0
MOV P1.7, C
END
=============================
單片機:請編寫程序實現位X與位Y異或運算。
2010-10-12 22:03無敵的中國人 | 分類:其他編程語言 | 瀏覽1546次
設X、Y分別存放在00H、01H,結果Z存放在02H。
(注意:00H、01H、02H是位地址,屬於內部RAM20H的D0、D1、D2位)
CLR 02H
MOV C, 00H
ANL C, 01H
JC _END_
MOV C, 00H
ORL C, 01H
JNC _END_
SETB 02H
_END_:
;完
END
==========================敗蠢滑===
單片機:請編寫程序實現位X、位Y 的異或運算。
設X、Y分別存放在 00H、01H,結果 Z 存放在02H。
注意:00H,01H,02H是位地址,屬於內部RAM20H的D0,D1,D2位
方法1:
;
MOV C, 00H
ANL C, /01H
MOV F0, C
MOV C, 01H
ANL C, /00H
ORL A, F0
MOV 02H, C
END
;-----------------------
方法2:
;
CLR 02H
JNB 00H, ZZZ
JNB 01H, EXIT
SJMP EXIT
ZZZ:
JB 01H, EXIT
SETB 02H
EXIT:
END
;-----------------------
方法3:
;
MOV A, 20H
RR A
XRL A, 20H
RL A
RL A
ANL A, #00000100B
JZ ZZZ
ORL 20H, A
SJMP EXIT
ZZZ:
CPL A
ANL 20H, A
EXIT:
END。
㈤ 51單片機常識
1.學習單片機要有哪些基礎知識
單片機基礎知識 飛翔電子技術 2003-11-04 單片機的組成 單片機要自動完成計算,它應該具有哪些最重要的部分呢? 我們以打算盤為例計算一道算術題。
例:36+163*156-166÷34。現在要進行運算,首先需要一把算盤,其次是紙和筆。
我們把要計算的問題記錄下來,然後第一步先算163*156,把它與36相加的結果記在紙上,然後計算166÷34,再把它從上一次結果中減去,就得到最後的結果。 現在,我們用單片機來完成上述過程,顯然,它首先要有代替算盤進行運算的部件,這就是「運算器」;其次,要有能起到紙和筆作用的器件,即能記憶原始題目、原始數據和中間結果,還要記住使單片機能自動進行運算而編制的各種命令。
這類器件就稱為「存貯器」。此外,還需要有能代替人作用的控制器,它能根據事先給定的命令發出各種控制信號,使整個計算過程能一步步地進行。
但是光有這三部分還不夠,原始的數據與命令要輸入,計算的結果要輸出,都需要按先後順序進行,有時還需等待。 如上例中,當在計算163*156時,數字36就不能同時進入運算器。
因此就需要在單片機上設置按控制器的命令進行動作的「門」,當運算器需要時,就讓新數據進入。或者,當運算器得到最後結果時,再將此結沒沒果輸出,而中間結果不能隨便「溜出」單片機。
這種對輸入、輸出數據進行一定管理的「門」電路在單片機中稱為「口」(Port)。在單片機中,基本上有三類信息在流動,一類是數據,即各種原始數據(如上例中的36、163等)、中間結果(如166÷34所得的商4、余數30等)、程序(命令的 *** )等。
這樣要由外部設備通過「口」進入單片機,再存放在存貯器中,在運算處理過程中,數據從存貯器讀入運算器仔察慎進行運算,運算的中間結果要存入存貯器中,或最後由運算器經「出入口」輸出。 用戶要單片機執行的各種命令(程序)也以數據的形式由存貯器送入控制器,由控制器解讀(解碼)後變為各種控制信號,以便執行如加、減、乘、除等功能的各種命令。
所以,這一類信息就稱為控制命令,即由控制器去控制運算器一步步地進行運算和處理,又控制存貯器的讀(取出數據)和寫(存入數據)等。第三類信息是地址信息,其作用是告訴運算器和控制器在何處去取命令取數據,將結果存放到什麼地方,通過哪個口輸入和輸出信息等。
存貯器又分為只讀存貯器和讀寫存貯器兩種,前者存放調試好的固定程序和常數,後者存放一些隨時有可能變動的數據。顧名思義,只讀存貯器一旦將數據存入,就只能讀出,不能更改(EPROM、E2PROM等類型的ROM可通過一定的方法來更改、寫入數據——編者注)。
而讀寫存貯器可隨時存入或讀出數據。 實際上,人們往往把運算器和控制器合並稱為中央處理單元——CPU。
單片機除了進行運算外,還要完成控制功能。所以離不開計數和定時。
因此,在單片機中就設置有定時器兼計數器,其基本結構與本連載之(二)中的舉例類似。到這里為止,我們已經知道了單片機的基本組成,即單片機是由中央處理器(即CPU中的運算器和控制器)、只讀存貯器(通常表示為ROM)、讀寫存貯器(又稱隨機存貯器通常表示為RAM)、輸入/輸出口(又分為並行口和串列口,表示為I/O口)等等組成。
實際上單片機裡面還有一個時鍾電路,使單片機在進行運算和控制時,都能有節奏地進行。另外,還有所謂的「中斷系統」,這個系統有「傳達室」的作用,當單片機控制對象的參數到達某個需要加以干預的狀態時,就可經此「傳達室」通報給CPU,使念敬CPU根據外部事態的輕重緩急來採取適當的應付措施。
現在,我們已經知道了單片機的組成,餘下的問題是如何將它們的各部分連接成相互關聯的整體呢?實際上,單片機內部有一條將它們連接起來的「紐帶」,即所謂的「內部匯流排」。此匯流排有如大城市的「幹道」,而CPU、ROM、RAM、I/O口、中斷系統等就分布在此「匯流排」的兩旁,並和它連通。
從而,一切指令、數據都可經內部匯流排傳送,有如大城市內各種物品的傳送都經過幹道進行。 單片機指令系統與匯編語言程序 前面已經講述了單片機的幾個主要組成部分,這些部分構成了單片機的硬體。
所謂硬體(Hardware),就是看得到,摸得到的實體。但是,光有這樣的硬體,還只是有了實現計算和控制功能的可能性。
單片機要真正地能進行計算和控制,還必須有軟體(Software)的配合。軟體主要指的是各種程序。
只有將各種正確的程序「灌入」(存入)單片機,它才能有效地工作。單片機所以能自動地進行運算和控制,正是由於人把實現計算和控制的步驟一步步地用命令的形式,即一條條指令(Instruction)預先存入到存貯器中,單片機在CPU的控制下,將指令一條條地取出來,並加以翻譯和執行。
就以兩個數相加這一簡單的運算來說,當需要運算的數已存入存貯器後,還需要進行以下幾步: 第一步:把第一個數從它的存貯單元(Location)中取出來,送至運算器。 第二步:把第二個數從它所在的存貯單元中取出來,送至運算器; 第三步:相加; 第四步:把相加完的結果,送至存貯器中指定的單元。
所有這些取數、送數、相加、存數等等都是一種操。
2.學習單片機需要具備哪些基礎知識
我是大四學生,大三學的單片機,參加了一些大賽,個人認為學單片機首先把單片機課本熟讀兩遍,這可不能拖太長時間,對單片機的內部資源理解。外圍電路能熟練。
模電、數電不好也不要緊,不懂時再回去看看不就好了。
匯編不用學的太好,但起碼你能用匯編把課程設計做完。然後得話就學c吧。
學c不是說拿著c語言書,而是做些小製作之類的。在設計中學。
沒單片機基礎的話,先學c51吧。
不要聽別人說51不行,學51是為了以後學別的更方便,更快。以後可以學arm等更高級的。
3.51單片機應該掌握哪些
上面說的是什麼亂七八糟啊
1.基本要掌握哪些型號的單片機
首先說明一點,現在的像ATMEL,SST,STC,PHILIPS等等大多數單片機都是51內核,所以說你學會一樣就行了,要說具體型號像AT89S52,STC89C51等等都可以,它是的區別只是內部資源不一樣,也就是說功能多少的問題,但指令完全兼容.
2.要會哪些編程語言?
老大,你學哪個系列的單片機,那就會相應的匯編就行了.(51系列的指令兼容)而且應用也很廣泛.
3.還有其他需要注意的東西嗎?謝謝~~
不用謝謝,學會單片機軟體並不難,但模電.數電要是不好也做不了什麼大項目的,所以電子基礎比較重要.
4.有時有匯編做演算法很難,建議你學C語言,很容易學,而且用起來比匯編容易的多,但匯編也得懂(這個很重要).
5.有什麼問題可以發消息給我,我會盡量幫你的.
6.祝你早日成功
4.什麼是單片機
隨著大范疇集成電路的顯現和發展,將計算機的cpu、ram、rom、定時/數器和多種i/o介面集成在一片晶元上,組成晶元級的計較機,因此單片機早期的含義稱為單片微型計較機,直譯為單片機。
單片機是一種集成在電路晶元,是採用超大范疇集成電路技能把具有數據處理本事的中心處理器CPU隨機存儲器RAM、只讀存儲器ROM、多種I/O口和間斷系統、定時器/計時器等成果(大要還包括表現驅動電路、脈寬調制電路、模擬多路轉換器、A/D轉換器等電路)集成到一塊矽片上構成的一個小而完竣的計算機系統。
5.51單片機初學重點
引腳是肯定要學的 比如51有40個腳 有P0,P1,P2這3個口,另外還有特殊功能引腳還有P0口是作為數據口 也可以作為地址口 存放低8位地址信號那麼P2口也可以作為數據口 同時也可以作為地址口 存放高8位地址信號這樣你要外部訪問16位的地址 那麼就要P0和P2一起用了這只是個例子 這些引腳都要背熟的存儲器結構還好吧 也就編程的時候用到比較多 一般不怎麼用到 只要知道你的晶元RAM,ROM大小就行了 如果你寫的程序太大 超過了 就要用到外部擴展的RAM了關鍵還是多畫一些電路吧 熟悉一些常見的電路的畫法比如連LED顯示啦 鍵盤啦 外部中斷啦 計時器啦還有一些常見的東西 比如動態顯示啦 簡單計算器啦 簡單電子表啦。