




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
交通電子控制技術講解:高華聯系電話-mail:hy_gh@126.com第四講單片機編程基礎單片機控制程序概述單片機應用系統是軟件、硬件相結合的應用系統硬件電路板控制程序單片機控制程序:是符合一定語法規范要求的、對單片機內部及外部資源進行操作的命令的集合。程序中用到的命令和語法合稱為編程語言
單片機控制程序概述計算機(單片機)程序就是用編程語言書寫的“文章”單片機程序基本要求:
1.
單片機能夠理解和執行
2.編程人員易于看懂和理解
單片機能夠理解的語言:單片機控制程序概述二進制代碼:01011101B編程人員能夠理解的語言:匯編語言:低級語言高級語言:C語言.......人類容易理解計算機理解不了MOVR0,#03HR0=3if(r3=1)r0=3elser0=4
單片機常用的編程語言匯編語言:執行效率高,能夠清楚描述單片機內部的每一個動作,便于查找程序存在的功能性和邏輯錯誤。但編程人員記憶和理解相對困難C語言:編程人員記憶和理解相對容易。但不能清晰描述單片機內部的動作,不便于分析和查找程序中的功能性錯誤匯編程序示例
單片機編程語言程序設計
ORG0000HAJMPMAIN
ORG0200HMAIN:MOVP1,#08H;P1.3輸出高電平
NOPNOPMOVP1,#00H;P1.3輸出低電平
END
MCS—51單片機匯編語言指令的標準格式如下:[標號:
]操作碼[目的操作數],[源操作數][;注釋]例如:LOOP:ADDA,#10H;(A)←(A)+10H
(1)方括號[]表示該項是可選項,可有可無。
(2)標號是用戶設定的符號,它實際代表該指令所在的地址。標號必須以字母開頭,其后跟1~8個字母或數字,并以“:”結尾。
編程語言程序語句格式
(3)操作碼是用英文縮寫的指令功能助記符。它確定了本條指令完成什么樣的操作功能。如:ADD表示加法操作。任何一條指令都必須有該助記符項,不得省略。
(4)目的操作數提供操作的對象,并指出一個目標地址,表示操作結果存放單元的地址,它與操作碼之間必須以一個或幾個空格分隔。如上例中A表示操作對象是累加器A的內容,并指出操作結果又回送A存放。
(5)源操作數指出的是一個源地址(或立即數),表示操作的對象或操作數來自何處。它與目的操作數之間要用“,”號隔開。(6)注釋部分是在編寫程序時,為了增加程序的可讀性,由用戶擬寫對該條指令或該段程序功能的說明。它以分號“;”開頭,可以用中文、英文或某些符號來表示,顯然它不存入計算機,只出現在源程序中。
(1)Ri和Rn:R表示當前工作寄存器區中的工作寄存器,i表示0或1,即R0和R1。n表示0~7,即R0~R7,當前工作寄存器的選定是由PSW的RS1和RS0位決定的。
指令中常用符號
(2)#data:#表示立即數,data為8位常數。#data是指包含在指令中的8位立即數。
(3)#data16:包含在指令中的16位立即數。
(4)rel:相對地址,以補碼形式表示的地址偏移量,范圍為-128~+127,主要用于無條件相對短轉移指令SJMP和所有的條件轉移指令中。
(5)addr16:16位目的地址。目的地址可在全部程序存儲器的64KB空間范圍內,主要用于無條件長轉移指令LJMP和子程序長調用指令LCALL中。
(6)addr11:11位目的地址。目的地址應與下條指令處于相同的2KB程序存儲器地址空間范圍內,主要用于絕對轉移指令AJMP和子程序絕對調用指令ACALL指令中。
(7)direct:表示直接尋址的地址,即8位內部數據存儲器RAM的單元地址(0~127/255),或特殊功能寄存器SFR的地址。對于SFR可直接用其名稱來代替其直接地址。
(8)bit:內部數據存儲器RAM和特殊功能寄存器SFR中的可直接尋址位地址。
(9)@:間接尋址寄存器或基地址寄存器的前綴,如@Ri,@DPTR,表示寄存器間接尋址。
(10)(X):表示X中的內容。
(11)((X)):表示由X尋址的單元中的內容,即(X)作地址,該地址的內容用((X))表示。
(12)/和→符號:/表示對該位操作數取反,但不影響該位的原值。→表示指令操作流程,將箭頭一方的內容,送入箭頭另一方的單元中去。
MCS-51單片機常用指令
MCS—51單片機匯編語言語句的標準格式如下:[標號:
]操作碼[目的操作數][,源操作數][;注釋]單片機的指令
指令:計算機(單片機)能夠理解和執行的命令例如:MOVR0,#02H指令:計算機能夠直接理解并執行的操作命令;匯編語言程序相關的幾個概念:MCS-51單片機常用指令語句:按照規定格式書寫的指令稱為語句程序:能夠實現一定功能的、符合相應規范的語句的集合(羅列)。編程語言:能夠實現一定功能的、符合相應規范的語句的集合(羅列)。指令:計算機能夠直接理解并執行的操作命令;匯編語言程序相關的幾個概念:MCS-51單片機常用指令語句:按照規定格式書寫的指令稱為語句程序:能夠實現一定功能的、符合相應規范的語句的集合(羅列)。編程語言:基本語句和書寫規則合起來稱為編程語言。MOVR1,#05HMCS-51單片機常用指令目的操作數助記符:幫助我們記憶命令的符號
比如:MOV,ADD,DEC......
操作數:命令操作所需要的數據
源操作數
助記符MCS-51單片機常用指令MCS—51單片機指令系統分為數據傳送類指令算術運算類指令邏輯運算及移位類指令控制轉移類指令和位操作指令
5大類,共計111條指令。表3―2數據傳送類指令助記符與操作思考題(1)單片機控制系統主要由哪兩部分組成?(2)MCS-51單片機常用的編程語言有哪些?(3)MCS-51單片機匯編語言語句由哪幾部分組成?(4)MCS-51單片機匯編語言指令由哪幾部分組成?匯編語言指令的尋址方式單片機的操作指令是對相關數據(操作數)進行傳送、運算等操作指令如何找到需要操作的數據?(指令到哪兒能找到需要操作的數據?)MCS-51單片機可以有多種尋找操作數的方式
指令尋找操作數的方式稱為尋址方式匯編語言指令的尋址方式序號尋址方式指令舉例使用的存儲器空間1立即尋址MOVR0,#30H程序存儲器2直接尋址MOVR0,30H內部RAM(00H~FFH)、SFR、程序存儲器3寄存器尋址MOVA,R0R0~R7,SFR4寄存器間接尋址MOVA,@R0內部RAM(00H~FFH)外部RAM5相對尋址JZ06H程序存儲器6變址尋址MOVCA,@A+DPTR程序存儲器7位尋址SETBCY內部RAM的位尋址區外部RAMMCS-51單片機部分常用指令介紹一、數據傳送指令
把數據從一個存貯地址(源地址)傳送到另一個存儲地址(目的地址)MOVA,#30H;A=30HMOVA,30H;A=?MOV30H,#20H
20HMOVR0,#30HMOV@R0,#20HMOVA,30H;A=?
20HMCS-51單片機部分常用指令介紹一、數據傳送指令
外部數據傳送指令MOVXA,@DPTR;(A)←((DPTR))
MOVXA,@Ri;(A)←((Ri))
MOVX@DPTR,A;((DPTR))←(A)
MOVX@Ri,A;((Ri))←(A)
尋址方式?
例如:設外部RAM(0203H)=FFH,分析以下指令執行后的結果。MOVDPTR,#0203H;(DPTR)←0203HMOVXA,@DPTR;(A)←((DPTR))MOV30H,A;(30H)←(A)MOVA,#0FH;(A)←0FHMOVX@DPTR,A;((DPTR))←(A)執行結果為:(DPTR)=0203H,(30H)=FFH,(0203H)=(A)=0FH。
程序存儲器數據傳送指令(主要用于程序存儲器中的數據查表操作)MOVCA,@A+DPTR;(A)←((A)+(DPTR))MOVCA,@A+PC;(PC)←(PC)+1,(A)←((A)+(PC))尋址方式?MCS-51單片機部分常用指令介紹例1:在外部ROM/EPROM中,從2000H單元開始依次存放0~9的平方值:0、1、4、9、…、81,要求依據累加器A中的值(0~9)來查找所對應的平方值
MOVDPTR,#2000H;(DPTR)←2000HMOVA,#09H;(A)←09HMOVCA,@A+DPTR;(A)←((A)+(DPTR))執行結果:(DPTR)=2000(A)=51H(81的十六進制數)。
算術運算指令加法指令:ADD,ADDC減法指令:SUBB乘法指令:MUL除法指令:DIVMCS-51單片機部分常用指令介紹ADDA,#dataSUBBA,#dataMULABDIVAB
兩條比較有用的算術運算指令加1指令:INC減1指令:DEC
MCS-51單片機部分常用指令介紹
這兩條指令常被用來控制循環的次數
轉移指令無條件轉移指令:LJMPaddr16
AJMPaddr11SJMPrelJMP@A+DPTR累加器判零轉移指令:JZrelJNZrelJCrelJNCrel
MCS-51單片機部分常用指令介紹轉移指令實現程序中向前、向后的跳轉是構成分支程序和循環程序的基礎
轉移指令比較轉移轉移指令:CJNEA,#data,relCJNEA,direct,relCJNE@Ri,#data,relCJNERn,#data,rel減1條件轉移指令:DJNZdirect,relDJNZRn,relMCS-51單片機部分常用指令介紹轉移指令實現程序中向前、向后的跳轉是構成分支程序和循環程序的基礎
位操作指令置位指令:SETBbitSETBC清位指令:CLRbitCLRCMCS-51單片機部分常用指令介紹直接對某一位進行操作的指令稱為位操作指令位操作指令常用于直接操作某個單片機的管腳輸出高電平或低電平,或者設置和清除某個標志位。
子程序調用和返回指令在單片機匯編程序中,常將需要多次反復
使用的代碼段定義為子程序,以減少程序代碼的長度和程序執行的效率。定義好的子程序可在其他程序段中需要使用的地方通過子程序調用指令進行調用。
MCS-51單片機部分常用指令介紹子程序返回指令:RETRETI
長調用指令:LCALLaddr16;
絕對調用指令:ACALLaddr11;
偽指令(1)設置目標程序起始地址偽指令ORG。格式:[標號:]ORG16位地址MCS-51單片機部分常用指令介紹在匯編源程序的過程中,還有一些指令不要求計算機進行任何操作,也沒有對應的機器碼,不產生目標程序,不影響程序的執行,僅僅是能夠幫助匯編進行的一些指令,稱之為偽指令。(2)結束匯編偽指令END。格式:[標號:]END(3)定義字節偽指令DB。格式:[標號:]DB項或項表順序結構程序
順序結構程序是指程序的執行按照代碼出現的先后順序依次執行的一種程序結構。
MCS-51單片機典型程序編制方法
順序結構順序結構程序
例1:試編制一段程序,在P1.0~P1.7管腳依次輸出高電平MCS-51單片機典型程序編制方法
ORG0000H
LJMPSTARTORG0100HSTART:MOVP1,#00000000BMOVP1,#00000001BMOVP1,#00000010B.........MOVP1,#10000000BEND指令執行順序分支結構程序
分支結構程序是指程序執行過程中會根據某項條件的不同執行不同代碼段一種程序結構。
MCS-51單片機典型程序編制方法
分支程序結構分支結構程序
試編制一段程序,如果P1.0管腳輸入的是低電平,在P1.1~P1.7管腳依次輸出高電平,如果P1.0管腳輸入的是高電平,在P1.7~P1.1管腳依次輸出高電平。MCS-51單片機典型程序編制方法
分析:該程序要求根據P1.0管腳輸入的信號電平狀態,控制P1口其他管腳輸出高電平的順序。
由于P1.0管腳存在高電平和低電平兩種可能的狀態,因此程序中就會有兩個不同的分支。MCS-51單片機典型程序編制方法
ORG0000H
LJMPSTARTORG0100HSTART:MOVP1,#00000000BSETBP1.0MOVC,P1.0
JNCLOW_FIRSTSETBP1.7SETBP1.6SETBP1.5SETBP1.4SETBP1.3
SETBP1.2SETBP1.1
SJMPQUITLOW_FIRST:SETBP1.1SETBP1.2SETBP1.3SETBP1.4SETBP1.5SETBP1.6SETBP1.7
QUIT:
END
循環結構程序
在實際的控制程序中,可能存在某段代碼需要反復執行多遍,此時就可以采用循環程序結構MCS-51單片機典型程序編制方法
循環結構(a)當型循
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 金屬成形機床行業工業機器人應用與編程考核試卷
- 谷物真空包裝與保鮮技術優化應用考核試卷
- 軟木制品在醫療設備領域的應用考核試卷
- 如何評估嵌入式系統的安全性試題及答案
- 茶葉店品牌戰略規劃考核試卷
- 行政組織理論的評估指標與績效監控研究試題及答案
- 葡萄酒釀造過程中的釀造產業鏈優化與協同創新考核試卷
- 國網公司物資管理制度
- 工會會員會員管理制度
- 員工異地辦公管理制度
- 2025代謝相關脂肪性肝病基層診療與管理指南解讀課件
- 2025年中職建筑cad技能比賽試題及答案
- 主播簽約合同范本
- 2024年山東棗莊事業單位招聘考試真題
- 精神科門急診的管理
- 19電學專題實驗-《練習使用歐姆表》專項提升(含答案)
- 中建鋼筋工程優化技術策劃指導手冊 (一)
- 收集土木APS例題及資料
- 2025年異位妊娠診斷與治療策略研究綜述
- 人教版(2025新版)七年級下冊數學第七章 相交線與平行線 單元測試卷(含答案)
- “崗課賽證”綜合育人模式下高職活頁式教材的建設研究
評論
0/150
提交評論