導航:首頁 > 操作系統 > 單片機程序順序結構

單片機程序順序結構

發布時間:2022-12-23 21:38:02

Ⅰ 51單片機的結構組成

上圖就是我們要研究學習的對象,51單片機摧部結構圖了。大家看看上圖,中間的一條雙橫線就是51單片機的內部匯流排了。其它的部件都是通過內部的匯流排與CPU相聯接的,在第一節課時我們已跟大家講述過,8051單片機是匯流排結構的。下面我們就51單片機內部的單個部件與大家進行講解。
中央處理器(CPU):
剛跟大家講過,需要提醒的是MCS-51的CPU能處理8位二進制數或代碼。CPU是單片機的主要核心部件,在CPU裡麵包含了運算器、控制器以及若干寄存器等部件給成。
內部數據存儲器(RAM):
MCS-51單片機晶元共有256個RAM單元,其中後128單元被專用寄存器佔用(稍後我們詳解),能作為寄存器供用戶使用的只是前128單元,用於存放可讀寫的數據。因此通常所說的內部數據存儲器就是指前128單元,簡稱內部RAM。地址范圍為00H~FFH(256B)。是一個多用多功能數據存儲器,有數據存儲、通用工作寄存器、堆棧、位地址等空間。
內部程序存儲器(ROM):
在前面也已講過,MCS-51內部有4KB/8KB位元組的ROM(51系列為4KB,51系列為8KB),用於存放程序、原始數據或表格。因此稱之為程序存儲器,簡稱內部RAM。地址范圍為0000H~FFFFH(64KB)。
定時器/計數器
51系列共有2個16位的定時器/計數器(52系列共有3個16位的定時器/計數器),以實現定時或計數功能,並以其定時或計數結果對計算機進行控制。定時時靠內部分頻時鍾頻率計數實現,做計數器時,對P3.4(T0)或P3.5(T1)埠的低電平脈沖計數。
並行I/O口
MCS-51共有4個8位的I/O口(P0、P1、P2、P3)以實現數據的輸入輸出。具體功能在後面章節中將會詳細論述。
串列口
MCS-51有一個可編程的全雙工的串列口,以實現單片機和其它設備之間的串列數據傳送。該串列口功能較強,既可作為全雙工非同步通信收發器使用,也可作為移位器使用。RXD( P3.0)腳為接收埠,TXD(P3.1)腳為發送埠。
中斷控制系統
MCS-51單片機的中斷功能較強,以滿足不同控制應用的需要。51系列有5個中斷源(52系列有6個中斷源),即外中斷2個,定時中斷2個,串列中斷1個,全部中斷分為高級和低級共二個優先順序別,優先順序別的設置我們也將在後面進行詳細的講解。
定時與控制部件
MCS-51單片機內部有一個高增益的反相放大器,基輸入端為XTAL1輸出端為XTAL2。MCS-51晶元的內部有時鍾電路,但石英晶體和微調電容需外接。時鍾電路為單片機產生時鍾脈沖序列。

Ⅱ 單片機程序執行順序問題

首先是在
org
0000h之後就遇到ljmp
main,也就是跳轉到main指向的主程序語句執行,如果主程序內初始化並開中斷0的話,就在單片機遇到中斷條件的時候執行int0指向的語句;同樣如果在main里主程序內初始化並開中斷1的話,就在單片機遇到中斷條件的時候執行int1指向的語句。

Ⅲ 單片機執行順序問題

SETB TRO,作用是啟動定時器T0,
你的程序不對,應該先裝入初值,後啟動定時器。
===================================
MOV TMOD,#01H ;定時器T1模式0,定時,定時器T0模式1,定時
SETB TRO ;啟動定時器T0
LOOP MOV TH0,#0B1H ;定時器T0裝入初值
MOV TL0,#0E0H
LOOP1 JNB TF0,LOOP1 ;等待定時器T0溢出。不溢出就在這句等待 一旦溢出了就執行JNB的下一句。

==========================================================
我給你改了一下
MOV TMOD,#01H ;定時器T1模式0,定時,定時器T0模式1,定時
CLR TF0 ;★清除溢出標志
LOOP MOV TH0,#0B1H ;定時器T0裝入初值
MOV TL0,#0E0H
SETB TRO ;★啟動定時器T0
LOOP1 JNB TF0,LOOP1 ;等待定時器T0溢出。不溢出就在這句等待 一旦溢出了就執行JNB的下一句。

Ⅳ 單片機循環程序有哪幾種基本結構

如果是C語言的話,那麼單片機C51循環和普通C語言一樣。如果是匯編的話,那麼列舉如下:
1、DJNZ指令,常見延時程序。
DELAY:
MOV R2,#250
DJNZ R2,$
RET
2、CJNE指令,常見處理數據塊。
MOV DPTR,#1000H
MOV R0,#30H
LOOP:
CLR A
MOVX A,@DPTR
MOV @R0,A
INC DPTR
INC R0
CJNE R0,#50H,LOOP
RET
3、直接跳轉,用LJMP或SJMP,常見主循環
MAIN:
JB P1.0,MAIN1
CLR P0.0
SJMP MAIN
MAIN1:
JB P1.1,MAIN2
CLR P0.1
SJMP MAIN
MIAN2:
JB P1.2,MAIN
SETB P0.0
SETB P0.1
SJMP MAIN
END
還有其他表現形式,但類型都是脫離於這三種形態。

Ⅳ 單片機的內部組成結構

單片機的內部組成結構如下:

運算器:用於實現算術和邏輯運算。計算機的運算和處理都在這里進行。

控制器:是計算機的控制指揮部件,使計算機各部份能自動協調的工作。

存儲器:用於存放程序和數據;(又分為內存儲器和外存儲器,內存儲器就如我們電腦的硬碟,外存儲器就如我們的U盤)。

輸入設備:用於將程序和數據輸入到計算機(例如我們電腦的鍵盤、掃描儀)。

輸出設備:輸出設備用於把計算機數據計算或加工的結果以用戶需要的形式顯示或保存(例如我們的列印機)。

單片機硬體特徵

(1)單片機的體積比較小, 內部晶元作為計算機系統,其結構簡單,但是功能完善,使用起來十分方便,可以模塊化應用。

(2)單片機有著較高的集成度,可靠性比較強,即使單片機處於長時間的工作也不會存在故障問題。

(3) 單片機在應用時低電壓、低能耗,是人們在日常生活中的首要選擇, 為生產與研發提供便利。

(4)單片機對數據的處理能力和運算能力較強,可以在各種環境中應用,且有著較強的控制能力。

Ⅵ 一個完整的單片機c語言程序包含哪幾個部分

個人覺得,一個完整C程序至少應該包含頭文件、初始化、主程序四個部分,頭文件是程序編譯預處理的重要組成部分,缺了它就無法生成目標代碼;初始化部分包含變數初始化和埠初始化;主程序是一個C程序的核心代碼,由此執行或調用一些具有特定功能的函數模塊以完成程序的預設功能。

Ⅶ 單片機匯編語言程序的三種基本結構

匯編語言程序有順序程序、分支程序、循環程序三種。分支結構的執行是依據一定的條件選擇執行路徑,而不是嚴格按照語句出現的物理順序。

分支結構的程序設計方法的關鍵在於構造合適的分支條件和分析程序流程,根據不同的程序流程選擇適當的分支語句。



(7)單片機程序順序結構擴展閱讀:

注意事項:

匯編指令不區分大小寫,目的操作數是存結果的,原操作數是被操作的。

二進制數後跟b,十六進制數後跟h,十進制數不需特殊標記。

匯編源程序中,數據不能以字母開頭,需要在前面加上0,如0a000h。

Ⅷ 單片機中一個程序的運行過程

單片機中一個程序的運行過程分為取指令,分析指令和執行指令幾個步驟。
取指令的任務是:根據程序計數器PC中的值從程序存儲器讀出現行指令,送到指令寄存器。
分析指令階段的任務是:將指令寄存器中的指令操作碼取出後進行解碼,分析其指令性質。如指令要求操作數,則尋找操作數地址。計算機執行程序的過程實際上就是逐條指令地重復上述操作過程,直至遇到停機指令可循環等待指令。一般計算機進行工作時,首先要通過外部設備把程序和數據通過輸入介面電路和數據匯流排送入到存儲器,然後逐條取出執行。但單片機中的程序一般事先我們都已通過寫入器固化在片內或片外程序存儲器中。因而一開機即可執行指令。
下面我們將舉個實例來說明指令的執行過程:
開機時,程序計算器PC變為0000H。然後單片機在時序電路作用下自動進入執行程序過程。執行過程實際上就是取出指令(取出存儲器中事先存放的指令階段)和執行指令(分析和執行指令)的循環過程。
例如執行指令:MOV A,#0E0H,其機器碼為「74H E0H」,該指令的功能是把操作數E0H送入累加器,0000H單元中已存放74H,0001H單元中已存放E0H。當單片機開始運行時,首先是進入取指階段,其次序是:
1 程序計數器的內容(這時是0000H)送到地址寄存器;

2 程序計數器的內容自動加1(變為0001H);

3 地址寄存器的內容(0000H)通過內部地址匯流排送到存儲器,以存儲器中地址解碼電跟,使地址為0000H的單元被選中;

4 CPU使讀控制線有效;

5 在讀命令控制下被選中存儲器單元的內容(此時應為74H)送到內部數據匯流排上,因為是取指階段,所以該內容通過數據匯流排被送到指令寄存器。

至此,取指階段完成,進入解碼分析和執行指令階段。
由於本次進入指令寄存器中的內容是74H(操作碼),以解碼器解碼後單片機就會知道該指令是要將一個數送到A累加器,而該數是在這個代碼的下一個存儲單元。所以,執行該指令還必須把數據(E0H)從存儲器中取出送到CPU,即還要在存儲器中取第二個位元組。其過程與取指階段很相似,只是此時PC已為0001H。指令解碼器結合時序部件,產生74H操作碼的微操作系列,使數字E0H從0001H單元取出。因為指令是要求把取得的數送到A累加器,所以取出的數字經內部數據匯流排進入A累加器,而不是進入指令寄存器。至此,一條指令的執行完畢。單片機中PC=0002H,PC在CPU每次向存儲器取指或取數時自動加1,單片機又進入下一取指階段。這一過程一直重復下去,直至收到暫停指令或循環等待指令暫停。CPU就是這樣一條一條地執行指令,完成所有規定的功能。
ROM是只讀存儲器,用於存儲程序代碼;RAM是數據存儲器,用於存放單片機運行時的數據,也就是說RAM中的數據掉電(復位)後就會消失,而ROM中的數據不會。

Ⅸ 用c語言編寫的單片機程序是按什麼順序執行的

先從主程序執行,即 void main ,然後順序執行,除非遇到中斷
#include<reg51.h>
............................//宏定義
..........................;//全局變數
void main()
{
....................;//初始化
while(1)
{
...................;//主程序
}

}

Ⅹ 單片機 定時器中 interrupt 1的程序 與 主程序的運行順序 要非常詳細的....

主程序從main()開始執行,一句一句的,同時計時器也在工作,他和CPU的工作是不相干預的,完全分開的,當執行到某一句的時候,定時器計時完畢之後,就會像CPU請求中斷,然後CPU就把當前執行的那一條語句執行完,跳到中斷服務程序也就是interrupt中去處理中斷,處理完畢之後再返回主程序去繼續執行,然後定時器也繼續工作,然後依次的循環下去,給你舉個例子,interrupt就是個廚房,里邊燒著水呢,你在卧室學習做題,當廚房的水燒開了報警,告訴你水開了,你接著就把手頭的題做完了(當前指令執行完,壓棧),然後到廚房把水灌好,再燒上水,接著去學習,接著坐下一道題,當下次水在燒開時,你再去處理,就這樣,你做題學習和燒水是無關的,只有水開了才會向你請求

閱讀全文

與單片機程序順序結構相關的資料

熱點內容
公路商店app標簽選什麼 瀏覽:335
linuxoracle命令行登錄 瀏覽:224
android深度休眠 瀏覽:169
php微信開發例子 瀏覽:843
醫得app登錄密碼是什麼 瀏覽:140
spring開發伺服器地址 瀏覽:411
伺服器上如何查看伺服器的埠 瀏覽:678
單片機伺服器編譯 瀏覽:770
單口usb列印機伺服器是什麼 瀏覽:859
戰地五開伺服器要什麼條件 瀏覽:956
在word中壓縮圖片大小 瀏覽:255
javatomcat圖片 瀏覽:419
程序員生產智能創意 瀏覽:67
匯和銀行app怎麼登錄 瀏覽:383
騰訊伺服器如何上傳源碼 瀏覽:747
單片機的原理概述 瀏覽:512
火控pdf 瀏覽:269
如何復制雲伺服器centos環境 瀏覽:988
債權pdf 瀏覽:307
紅色番字的app怎麼下載 瀏覽:876