A. 單片機應用程序的開發步驟
具體步驟如下:
1、首先,開啟我們的keil軟體,具體的安裝步驟就不做太多的介紹了;
開啟後,點擊菜單欄上的Project選項,創建我們的工程,如圖所示;
編譯完成後,在我們的文件夾下找到.hex的文件,將其燒寫到我們的晶元中即可。
B. 單片機內部邏輯部件的基本使用方法
單片機內部邏輯部件的基本使用方法:
在引腳XTAL1和XTAL2外接晶振振盪器或陶瓷諧振器,就構成了單片機的內部振盪方式。由於單片機內部有一個高增益反相放大器,當外接晶振後,就構成了自激振盪器,並產生振盪時鍾脈沖。
定時器分的高8位和低8位是分別存在TH0和TL0中的,所以TH0上的1其實代表1乘以二的八次方計256,所以要設置的數65536-500除以256的商就是放在高8位里的,剩下的余數放入低8位就行了。
單片機
也被稱為單片微控器,屬於一種集成式電路晶元。在單片機中主要包含CPU、只讀存儲器ROM和隨機存儲器RAM等,多樣化數據採集與控制系統能夠讓單片機完成各項復雜的運算,無論是對運算符號進行控制,還是對系統下達運算指令都能通過單片機完成。 由此可見,單片機憑借著強大的數據處理技術和計算功能可以在智能電子設備中充分應用。
C. 51單片機內部邏輯部件的基本使用方法
51單片機內部邏輯部件數據存儲器RAM是用以存放可以讀和寫的數據。
運算的中間結果,最終結果以及欲顯示的數據。程序存儲器ROM是用來存放一些程序,原始數據和表格。256B的片內數據存儲器RAM(51子系列的RAM為128B),在程序運行時可以隨時寫入數據和讀出。
用於存放函數相互傳遞的數據、接收的外部數據、中間結果、最後結果以及顯示的數據等。3個16位的定時器/計數器(51子系列僅有2個定時器),每個定時器/計數器可以設置為計數方式,用於對外部事件信號進行計數,也可以設置為定時方式,滿足各種定時要求。
內部邏輯部件:
有一個管理6個中斷源(51子系列1是5個中斷源)、兩個優先順序的中斷控制器。4個8位並行I/O端,每個埠既可以用作輸入,也可以用於輸出。一個全雙工的UART(通用非同步接收發送器)串列I/O口。
用於單片機之間的串列通信,或者單片機與PC機、其它設備、其它晶元之間的串列通信。片內振盪電路和時鍾發生器,只需外面接上一晶振或輸入振盪信號就可產生單片機所需要的各種時鍾信號。
D. 單片機基本結構
單片機,全稱單片微型計算機,又稱微控制器,是把中央處理器、存儲器、定時/計數器、各種輸入輸出介面等都集成在一塊集成電路晶元上的微型計算機。 單片機的使用領域已十分廣泛,如智能儀表、實時工控、通訊設備、導航系統、家用電器等。
基本結構
1.運算器
運算器由運算部件——算術邏輯單元(Arithmetic&Logical Unit,簡稱ALU)、累加器和寄存器等幾部分組成。ALU的作用是把傳來的數據進行算術或邏輯運算,輸入來源為兩個8位數據,分別來自累加器和數據寄存器。ALU能完成對這兩個數據進行加、減、與、或、比較大小等操作,最後將結果存入累加器。例如,兩個數6和7相加,在相加之前,操作數6放在累加器中,7放在數據寄存器中,當執行加法指令時,ALU即把兩個數相加並把結果13存入累加器,取代累加器原來的內容6。
運算器有兩個功能:
(1) 執行各種算術運算。
(2) 執行各種邏輯運算,並進行邏輯測試,如零值測試或兩個值的比較。
運算器所執行全部操作都是由控制器發出的控制信號來指揮的,並且,一個算術操作產生一個運算結果,一個邏輯操作產生一個判決。
2.控制器
控制器由程序計數器、指令寄存器、指令解碼器、時序發生器和操作控制器等組成,是發布命令的「決策機構」,即協調和指揮整個微機系統的操作。其主要功能有:
(1) 從內存中取出一條指令,並指出下一條指令在內存中的位置。
(2) 對指令進行解碼和測試,並產生相應的操作控制信號,以便於執行規定的動作。
(3) 指揮並控制CPU、內存和輸入輸出設備之間數據流動的方向。
微處理器內通過內部匯流排把ALU、計數器、寄存器和控制部分互聯,並通過外部匯流排與外部的存儲器、輸入輸出介面電路聯接。外部匯流排又稱為系統匯流排,分為數據匯流排DB、地址匯流排AB和控制匯流排CB。通過輸入輸出介面電路,實現與各種外圍設備連接。
3.主要寄存器
(1)累加器A
圖1-2 單片機組成框圖
累加器A是微處理器中使用最頻繁的寄存器。在算術和邏輯運算時它有雙功能:運算前,用於保存一個操作數;運算後,用於保存所得的和、差或邏輯運算結果。
(2)數據寄存器DR
數據寄存器通過數據匯流排向存儲器和輸入/輸出設備送(寫)或取(讀)數據的暫存單元。它可以保存一條正在解碼的指令,也可以保存正在送往存儲器中存儲的一個數據位元組等等。
(3)指令寄存器IR和指令解碼器ID
指令包括操作碼和操作數。
指令寄存器是用來保存當前正在執行的一條指令。當執行一條指令時,先把它從內存中取到數據寄存器中,然後再傳送到指令寄存器。當系統執行給定的指令時,必須對操作碼進行解碼,以確定所要求的操作,指令解碼器就是負責這項工作的。其中,指令寄存器中操作碼欄位的輸出就是指令解碼器的輸入。
(4)程序計數器PC
PC用於確定下一條指令的地址,以保證程序能夠連續地執行下去,因此通常又被稱為指令地址計數器。在程序開始執行前必須將程序的第一條指令的內存單元地址(即程序的首地址)送入PC,使它總是指向下一條要執行指令的地址。
(5)地址寄存器AR
地址寄存器用於保存當前CPU所要訪問的內存單元或I/O設備的地址。由於內存與CPU之間存在著速度上的差異,所以必須使用地址寄存器來保持地址信息,直到內存讀/寫操作完成為止。
顯然,當CPU向存儲器存數據、CPU從內存取數據和CPU從內存讀出指令時,都要用到地址寄存器和數據寄存器。同樣,如果把外圍設備的地址作為內存地址單元來看的話,那麼當CPU和外圍設備交換信息時,也需要用到地址寄存器和數據寄存器。
E. 可編程邏輯器件固化操作順序
1、首先開啟電腦並打開電腦的讀寫模式並登錄賬戶。
2、其次在電腦內找到可編程邏輯器件固化的順序操作,並按照1346的順序。
3、最後保存並默認開啟即可。
F. 單片機邏輯運算
第一步:
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
參照下面那位大哥,改過來了,要不誤導人咯~~呵呵
G. 單片機內部邏輯部件的使用注意事項
單片機內部邏輯部件的使用注意事項:
除OC門和三態門外普通門電路輸出不能並接,否則可能燒壞器件;門電路的輸出帶同類門的個數不得超過扇出系數,否則可能造成狀態不穩定;在速度高時帶負載數盡可能少;門電路輸出接普通負載時,其輸出電流就小於IOLmax和IOHmax。
在「設備和組」列表中,選擇要包含在新邏輯設備中的設備。若要更改邏輯設備的名稱,請單擊「新建邏輯設備」節點,然後在「操作」菜單中單擊「重命名」。可以繼續將邏輯設備綁定到一個或多個物理設備。
單片機
也被稱為單片微控器,屬於一種集成式電路晶元。在單片機中主要包含CPU、只讀存儲器ROM和隨機存儲器RAM等,多樣化數據採集與控制系統能夠讓單片機完成各項復雜的運算,無論是對運算符號進行控制,還是對系統下達運算指令都能通過單片機完成。 由此可見,單片機憑借著強大的數據處理技術和計算功能可以在智能電子設備中充分應用。
H. 學習單片機和嵌入式有需要哪些步驟
學習使用單片機就是理解單片機硬體結構,以及內部資源的應用,在匯編或C語言中學會各種功能的初始化設置,以及實現各種功能的程序編制。
第一步:數字I/O的使用
使用按鈕輸入信號,發光二極體顯示輸出電平,就可以學習引腳的數字I/O功能,在按下某個按鈕後,某發光二極體發亮,這就是數字電路中組合邏輯的功能,雖然很簡單,但是可以學習一般的單片機編程思想,例如,必須設置很多寄存器對引腳進行初始化處理,才能使引腳具備有數字輸入和輸出輸出功能。每使用單片機的一個功能,就要對控制該功能的寄存器進行設置,這就是單片機編程的特點,千萬不要怕麻煩,所有的單片機都是這樣。
第二步:定時器的使用 學會定時器的使用,就可以用單片機實現時序電路,時序電路的功能是強大的,在工業、家用電氣設備的控制中有很多應用,例如,可以用單片機實現一個具有一個按鈕的樓道燈開關,該開關在按鈕按下一次後,燈亮3分鍾後自動滅,當按鈕連續按下兩次後,燈常亮不滅,當按鈕按下時間超過2s,則燈滅。數字集成電路可以實現時序電路,可編程邏輯器件(PLD)可以實現時序電路,可編程式控制制器(PLC)也可以實現時序電路,但是只有單片機實現起來最簡單,成本最低。
定時器的使用是非常重要的,邏輯加時間控制是單片機使用的基礎。
第三步:中斷
單片機的特點是一段程序反復執行,程序中的每個指令的執行都需要一定的執行時間,如果程序沒有執行到某指令,則該指令的動作就不會發生,這樣就會耽誤很多快速發生的事情,例如,按鈕按下時的下降沿。要使單片機在程序正常運行過程中,對快速動作做出反應,就必須使用單片機的中斷功能,該功能就是在快速動作發生後,單片機中斷正常運行的程序,處理快速發生的動作,處理完成後,在返回執行正常的程序。中斷功能使用中的困難是需要精確地知道什麼時候不允許中斷發生(屏蔽中斷)、什麼時候允許中斷發生(開中斷),需要設置哪些寄存器才能使某種中斷起作用,中斷開始時,程序應該干什麼,中斷完成後,程序應該干什麼等等。
中斷學會後,就可以編制更復雜結構的程序,這樣的程序可以干著一件事,監視著一件事,一旦監視的事情發生,就中斷正在乾的事情,處理監視的事情,當然也可以監視多個事情,形象的比喻,中斷功能使單片機具有吃著碗里的,看著鍋里的功能。
以上三步學會,就相當於降龍十八掌武功,會了三掌了,可以勉強護身。
第四步:與PC機進行RS232通信
單片機都有USART介面,特別是MSP430系列中很多型號,都具有兩個USART介面。USART介面不能直接與PC機的RS232介面連接,它們之間的邏輯電平不同,需要使用一個MAX3232晶元進行電平轉換。
USART介面的使用是非常重要的,通過該介面,可以使單片機與PC機之間交換信息,雖然RS232通信並不先進,但是對於介面的學習是非常重要的。正確使用USART介面,需要學習通信協議,PC機的RS232介面編程等等知識。試想,單片機實驗板上的數據顯示在PC機監視器上,而PC機的鍵盤信號可以在單片機實驗板上得到顯示,將是多麼有意思的事情啊!
第五步:學會A/D轉換
MAP430單片機帶有多通道12位A/D轉換器,通過這些A/D轉換器可以使單片機操作模擬量,顯示和檢測電壓、電流等信號。學習時注意模擬地與數字地、參考電壓、采樣時間,轉換速率,轉換誤差等概念。
使用A/D轉換功能的簡單的例子是設計一個電壓表。
第六步:學會PCI、I2C介面和液晶顯示器介面
這些介面的使用可以使單片機更容易連接外部設備,在擴展單片機功能方面非常重要。
第七步:學會比較、捕捉、PWM功能
這些功能可以使單片機能夠控制電機,檢測轉速信號,實現電機調速器等控制起功能。
如果以上七步都學會,就可以設計一般的應用系統,相當於學會十招降龍十八掌,可以出手攻擊了。
第八步:學習USB介面、TCP/IP介面、各種工業匯流排的硬體與軟體設計學習USB介面、TCP/IP介面、各種工業匯流排的硬體與軟體設計是非常重要的,因為這是當前產品開發的發展方向。
到此為止,相當於學會15招降龍十八掌,但還不到打遍天下無敵手的境界。即使如此,也算是單片機大蝦了
I. 單片機的使用方法
傳統51單片機IO介面只可以作為標准雙向IO介面,如果用其來驅動LED只能用灌電流的方式或是用三極體外擴驅動電路。
點擊放大圖片
灌電流方式:LED正極接VCC,負極接IO口。IO為高電平是LED兩極電平相同,沒有電流,LED熄滅;IO為低電平時,電流從VCC流入IO,LED點亮。但是當你吧LED正極接在IO介面,負極接GND時,將IO介面置於高電平,LED會亮,但因為IO介面上拉能力不足而使亮度不理想,可以用下面介紹的方式解決這個問題。
推挽工作方式:LED正負極分別接在兩個IO口上,然後設置正極IO介面為推挽輸出,負極IO介面為標准雙向灌電流輸入。推挽方式具有強上拉能力,可以實現高電平驅動LED。
IO口的四種使用方法
從I/O口的特性上看,標准51的P0口在作為I/O口使用時,是開漏結構,在實際應用中通常要添加上拉電阻;P1、P2、P3都是准雙向I/O,內部有上拉電阻,既可作為輸入又可以作為輸出。而LPC900系列單片機的I/O口特性有一定的不同,它們可以被配置成4種不同的工作模式:准雙向I/O、推挽輸出、高阻輸入、開漏。
准雙向I/O模式與標准51相比,雖然在內部結構上是不同的,但在用法上類同,比如要作為輸入時都必須先寫「1」置成高電平,然後才能去讀引腳的電平狀態。!!!!!為什麼是這樣子?見下面分析。
推挽輸出的特點是不論輸出高電平還是低電平都能驅動較大的電流,比如輸出高電平時可以直接點亮LED(要串聯幾百歐限流電阻),而在准雙向I/O模式下很難辦到。
高阻輸入模式的特點是只能作為輸入使用,但是可以獲得比較高的輸入阻抗,這在模擬比較器和ADC應用中是必需的。
開漏模式與准雙向模式相似,但是沒有內部上拉電阻。開漏模式的優點是電氣兼容性好,外部上拉電阻接3V電源,就能和3V邏輯器件介面,如果上拉電阻接5V電源,又可以與5V邏輯器件介面。此外,開漏模式還可以方便地實現「線與」邏輯功能。
對於上面疑問的解釋,有這樣一個資料:
高阻態這是一個數字電路里常見的術語,指的是電路的一種輸出狀態,既不是高電平也不是低電平,如果高阻態再輸入下一級電路的話,對下級電路無任何影響,和沒接一樣,如果用萬用表測的話有可能是高電平也有可能是低電平,隨它後面接的東西定。
電路分析時高阻態可做開路理解。你可以把它看作輸出(輸入)電阻非常大。他的極限可以認為懸空。
高阻態的典型應用:
1、在匯流排連接的結構上。匯流排上掛有多個設備,設備與匯流排以高阻的形式連接。這樣在設備不佔用匯流排時自動釋放匯流排,以方便其他設備獲得匯流排的使用權。
2、大部分單片機I/O使用時都可以設置為高阻輸入,如凌陽,AVR等等。高阻輸入可以認為輸入電阻是無窮大的,認為I/O對前級影響極小,而且不產生電流(不衰減),而且在一定程度上也增加了晶元的抗電壓沖擊能力。
J. 簡述51單片機的存儲器邏輯空間分布,並說明當存儲器地址發生重疊時應如何處
MCS-51單片機存儲器結構
1、 程序存儲器
MCS-51具有64kB程序存儲器定址空間,它是用於存放用戶程序、數據和表格等信息。對於內部無ROM的8031單片機,它的程序存儲器必須外接,空間地址為64kB,此時單片機的端必須接地。強制CPU從外部程序存儲器讀取程序。對於內部有ROM的8051等單片機,正常運行時,則需接高電平,使CPU先從內部的程序存儲中讀取程序,當PC值超過內部ROM的容量時,才會轉向外部的程序存儲器讀取程序。
8051片內有4kB的程序存儲單元,其地址為0000H—0FFFH,單片機啟動復位後,程序計數器的內容為0000H,所以系統將從0000H單元開始執行程序。但在程序存儲中有些特殊的單元,這在使用中應加以注意:
其中一組特殊是0000H—0002H單元,系統復位後,PC為0000H,單片機從0000H單元開始執行程序,如果程序不是從0000H單元開始,則應在這三個單元中存放一條無條件轉移指令,讓CPU直接去執行用戶指定的程序。
另一組特殊單元是0003H—002AH,這40個單元各有用途,它們被均勻地分為五段,它們的定義如下:
0003H—000AH 外部中斷0中斷地址區。
000BH—0012H 定時/計數器0中斷地址區。
0013H—001AH 外部中斷1中斷地址區。
001BH—0022H 定時/計數器1中斷地址區。
0023H—002AH 串列中斷地址區。
可見以上的40個單元是專門用於存放中斷處理程序的地址單元,中斷響應後,按中斷的類型,自動轉到各自的中斷區去執行程序。因此以上地址單元不能用於存放程序的其他內容,只能存放中斷服務程序。但是通常情況下,每段只有8個地址單元是不能存下完整的中斷服務程序的,因而一般也在中斷響應的地址區安放一條無條件轉移指令,指向程序存儲器的其它真正存放中斷服務程序的空間去執行,這樣中斷響應後,CPU讀到這條轉移指令,便轉向其他地方去繼續執行中斷服務程序。
2、 數據存儲器
數據存儲器也稱為隨機存取數據存儲器。MCS-51單片機的數據存儲器在物理上和邏輯上都分為兩個地址空間,一個是內部數據存儲區和一個外部數據存儲區。MCS-51內部RAM有128或256個位元組的用戶數據存儲(不同的型號有分別),它們是用於存放執行的中間結果和過程數據的。MCS-51的數據存儲器均可讀寫,部分單元還可以位定址。
8051內部RAM共有256個單元,這256個單元共分為兩部分。其一是地址從00H—7FH單元(共128個位元組)為用戶數據RAM。從80H—FFH地址單元(也是128個位元組)為特殊寄存器(SFR)單元。從圖1中可清楚地看出它們的結構分布。
在00H—1FH共32個單元中被均勻地分為四塊,每塊包含八個8位寄存器,均以R0—R7來命名,我們常稱這些寄存器為通用寄存器。這四塊中的寄存器都稱為R0—R7,那麼在程序中怎麼區分和使用它們呢?聰明的INTEL工程師們又安排了一個寄存器——程序狀態字寄存器(PSW)來管理它們,CPU只要定義這個寄存的PSW的第3和第4位(RS0和RS1),即可選中這四組通用寄存器。對應的編碼關系如圖2所示。
內部RAM的20H—2FH單元為位定址區,既可作為一般單元用位元組定址,也可對它們的位進行定址。位定址區共有16個位元組,128個位,位地址為00H—7FH。位地址分配如表1所示,CPU能直接定址這些位,執行例如置「1」、清「0」、求「反」、轉移,傳送和邏輯等操作。我們常稱MCS-51具有布爾處理功能,布爾處理的存儲空間指的就是這些為定址區。