『壹』 什麼是單片機的程序框架,怎麼樣畫程序框圖。求大神們結合具體實例講解
比如如下:
ORG 0000H ;程序入口
LJMP MAIN
ORG 0003H ;中斷向量
LJMP EXT0
ORG 0030H
MAIN:
MOV SP,#5FH
SETB IT0
SETB EX0
SETB EA ;以上初始化
LOOP:
JB P1.0,LOOP1
CLR P0.0
SJMP LOOP
LOOP1:
SETB P0.0
SJMP LOOP ;以上主循環
EXT0:
RETI
END
;以上就是一個比較簡單的單片機程序框架:包括:程序入口,中斷,主循環
『貳』 51單片機系列:單片機最小系統
單片機是一種集成電路晶元。在單片機程序的控制下能准確、迅速、高效地完成程序設計者事先規定的任務。單片機最小系統,或者稱為最小應用系統,是指用最少的元件組成的單片機可以工作的系統。下面給大家介紹51單片機最小系統,一起學習。
下圖是最小系統原理圖,就是靠這四個部分,單片機就可以運行起來了。第一部分電源組,習慣說負極為」地」,上面GND就是英文ground的縮寫。第二部分晶振組,過濾掉晶振部分的高頻信號,讓晶振工作的時候更加穩定。
第三部分復位組,單片機自動復位,從零開始執行程序,這個就是復位的概念。第四部分其它功能組,使用單片機的內部存儲器,如果內部存儲器不夠容量,最多選擇更高級容量的單片機型號,就可以解決問題。
51單片機最小系統晶振的振盪頻率直接影響單片機的處理速度,頻率越大處理速度越快。
對於一個完整的電子設計來講,首要問題就是為整個系統提供電源供電模塊,電源模塊的穩定可靠是系統平穩運行的前提和基礎。51單片機雖然使用時間最早、應用范圍最廣,但是在實際使用過程中,一個和典型的問題就是相比其他系列的單片機,51單片機更容易受到干擾而出現程序跑飛的現象,克服這種現象出現的一個重要手段就是為單片機系統配置一個穩定可靠的電源供電模塊。 此最小系統中的電源供電模塊的電源可以通過計算機的USB口供給,也可使用外部穩定的5V電源供電模塊供給。電源電路中接入了電源指示LED,圖中R11為LED的限流電阻,S1 為電源開關。
復位電路由按鍵復位和上電復位兩部分組成。 上電復位:STC89系列單片及為高電平復位,通常在復位引腳RST上連接一個電容到VCC,再連接一個電阻到GND,由此形成一個RC充放電迴路保證單片機在上電時RST腳上有足夠時間的高電平進行復位,隨後回歸到低電平進入正常工作狀態,這個電阻和電容的典型值為10K和10uF。 按鍵復位:按鍵復位就是在復位電容上並聯一個開關,當開關按下時電容被放電、RST也被拉到高電平,而且由於電容的充電,會保持一段時間的高電平來使單片機復位。
單片機系統里都有晶振,在單片機系統里晶振作用非常大,全程叫晶體振盪器,他結合單片機內部電路產生單片機所需的時鍾頻率,單片機晶振提供的時鍾頻率越高,那麼單片機運行速度就越快,單片接的一切指令的執行都是建立在單片機晶振提供的時鍾頻率。 在通常工作條件下,普通的晶振頻率絕對精度可達百萬分之五十。高級的精度更高。有些晶振還可以由外加電壓在一定范圍內調整頻率,稱為壓控振盪器(VCO)。晶振用一種能把電能和機械能相互轉化的晶體在共振的狀態下工作,以提供穩定,精確的單頻振盪。
P0口外接上拉電阻。 51單片機的P0埠為開漏輸出,內部無上拉電阻,如下圖。所以在當做普通I/O輸出數據時,由於V2截止,輸出級是漏極開路電路,要使「1」信號(即高電平)正常輸出,必須外接上拉電阻。
單片機的應用分類通用型。 這是按單片機(Microcontrollers)適用范圍來區分的。例如,80C51式通用型單片機,它不是為某種專門用途設計的;專用型單片機是針對一類產品甚至某一個產品設計生產的,例如為了滿足電子體溫計的要求,在片內集成ADC介面等功能的溫度測量控制電路。
匯流排型。 這是按單片機(Microcontrollers)是否提供並行匯流排來區分的。匯流排型單片機普遍設置有並行地址匯流排、 數據匯流排、控制匯流排,這些引腳用以擴展並行外圍器件都可通過串列口與單片機連接,另外,許多單片機已把所需要的外圍器件及外設介面集成一片內,因此在許多情況下可以不要並行擴展匯流排,大大減省封裝成本和晶元體積,這類單片機稱為非匯流排型單片機。
控制型。 這是按照單片機(Microcontrollers)大致應用的領域進行區分的。一般而言,工控型定址范圍大,運算能力強;用於家電的單片機多為專用型,通常是小封裝、低價格,外圍器件和外設介面集成度高。 顯然,上述分類並不是惟一的和嚴格的。例如,80C51類單片機既是通用型又是匯流排型,還可以作工控用。
『叄』 單片機里的程序能讀出來嗎能復制到其它空片里嗎具體怎麼做
關於單片機程序讀取的問題,可以這樣理解:首先,使用燒錄軟體將已經燒錄好的程序讀取出來,接著進行反匯編,你就可以看到源程序代碼。不過,這里需要注意的是,如果源程序是匯編語言,那麼就要考慮到兼容性的問題,因為不同廠商或型號的單片機之間是不能直接互換使用的。匯編語言的一個缺點就是其兼容性和移植性較差。
但如果源程序是高級語言,如C語言,那麼就可以相互移植,當然,其中的小部分參數可能需要根據單片機的數據手冊進行適當調整。上述情況適用於程序未加密的情況。如果單片機已經加密,那麼首先需要破解密碼。破解密碼的方法不在我們的討論范圍內,但一旦破解成功,接下來的操作步驟與上述情況類似。
值得注意的是,即使程序是高級語言,如果使用了特定的庫函數或硬體寄存器操作,也可能會遇到移植性問題,特別是在不同架構的單片機之間。因此,在進行移植時,需要仔細審查代碼,確保其能夠在目標單片機上正確運行。
此外,一些單片機製造商為了保護知識產權,會對程序進行加密,這大大增加了程序移植的難度。在這種情況下,即便破解了加密演算法,也需要對程序進行大量的調試和優化,才能確保其在新的單片機上正常工作。
最後,無論是匯編還是高級語言編寫的程序,進行移植時都需要詳細了解目標單片機的特性,包括其內部結構、外設介面以及操作系統支持情況等。只有充分了解這些信息,才能確保移植工作的順利進行。
『肆』 單片機程序狀態寄存器
首先我先貼圖出來吧,這種東西,用keil可以模擬出來的,下圖是用51單片機來模擬的,軟體為keil4.
第二條指令為ADD A,#0F8H。這條指令為加法指令,ADD就是加法指令的意思,意思是把後面的數和累加器ACC里的數相加,最終把結果放在ACC內。我們看到第二條指令執行完成後,ACC的內容為0x07,這就是計算結果,一開始ACC內的數為0x0f,加上0XF8後,結果就是07,然後最高位有進位。至於說指令後面的#0F8H,這是匯編語言的規定,直接數以A~F開頭的,前面要加個0,這時候編譯器才會正確編譯,這是一個匯編編譯器的規則,我們只要知道就可以了,如果你寫成這樣#F8H,編譯器一般會提示錯誤,這個需要注意。
最後來看PSW內的內容,首先要了解PSW內每個位都代表什麼,最高位CY代表進位,只要最高位有進位,CY就會置為1,AC位半進位,我們用的是8位單片機,我們的ACC是兩個四位的加法器構成的,所以AC就是低四位的最高位向高四位的最低位進位的標志,我們知道0x0f+0xf8,F+8顯然超過最大數了,要向高四位進位,所以AC就被置1,因為一位16進制數代表四位2進制數嘛,最高0+F=F,但是低四位有進位,所以變成了0+F+AC>F,所以高四位也進位了,CY也置為1.F0是沒有定義的,你可以自己用來干什麼都行,在這里沒有意義,RS1,RS0位工作寄存器的選擇位,它的組合是用來選擇用哪組R0~R7的,在這里沒用,原來是什麼就是什麼,因為51單片機內有32個工作寄存器嘛,它們被八個八個分為一組,所以有四個,RS1,RS0能表示的最大數就是4,所以用來選擇的,不用管它。OV為溢出,這里沒有溢出,主要用於有符號的數,我們這里沒有,就沒變化了。PSW.1也是沒定義的,沒實際意義,P位奇偶校驗位,這里我們用51單片機,它是偶校驗,即ACC里1的個數為奇數時,P=1,否則為偶數,P=0;因為我們最後的計算結果為07H,即 0000 0111,即奇數個1,故P=1。
『伍』 51單片機智能小車製作,求通俗易懂的講解
系統的單片機程序:
#include"reg52.h"
#definedet_Dist2.55//
單個脈沖對應的小車行走距離,其值為車輪周長
/4#defineRD9//
小車對角軸長度。
#definePI3.1415926
#defineANG_9090
#defineANG_90_T102
#defineANG_180189/
全局變數定義區。
/sbitP10=P1^0;//
控制繼電器的開閉sbitP11=P1^1;//
控制金屬接近開關。
(5)單片機程序圖片擴展閱讀:
控制器部分:接收感測器部分傳遞過來的信號,並根據事前寫入的決策系統(軟體程序),來決定機器人對外部信號的反應,將控制信號發給執行器部分。好比人的大腦。
執行器部分:驅動機器人做出各種行為,包括發出各種信號(點亮發光二極體、發出聲音)的部分,並且可以根據控制器部分的信號調整自己的狀態。
對機器人小車來說,最基本的就是輪子。這部分就好比人的四肢一樣。 感測器部分:機器人用來讀取各種外部信號的感測器,以及控制機器人行動的各種開關。好比人的眼睛、耳朵等感覺器官。
『陸』 如下程序:這幾句單片機的C語言程序是什麼意思
這是stc單片機的IO埠設置方式
1, P0M1 = 0;
P1M1 = 0;
是p1口的P1^0這個口為普通雙向輸入輸出方式,
2, P2M0 = 0XFF;
P2M1 = 0;
設置整個p2口為高阻輸入狀態
3,
P0M0 = 0XFF;因為P0M1沒給出是什麼,不好確定P1口為什麼狀態
看下stc單片機手冊就很清楚了
『柒』 單片機開發板是干什麼的
1、可以作為燒寫器(即編程器),將自己寫好的程序寫入單片機中,但燒寫單片機的種類單一 ,型號也不會太多。
2、可以利用開發板上的一些硬體做一些單片機實驗(不需要自己搭建實驗電路)有利於初學者使用。
單片機的學習需要理論和動手,理論與實踐並重。
(7)單片機程序圖片擴展閱讀:
單片機開發板介紹
單片機開發板是用於學習51、STC、AVR型號的單片機實驗設備。
根據單片機使用的型號又有51單片機開發板、STC單片機開發板、AVR單片機開發板。
常見配套有硬體、實驗程序源碼、電路原理圖、電路PCB圖等學習資料。
例如電子人單片機開發板,針對部分學者需要特別配套有VB上位機軟體開發,游戲開發等教程學習資料,開發此類單片機開發板的公司一般提供完善的售後服務與技術支持。