日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]在單片機系統(tǒng)設(shè)計中,程序設(shè)計是重要的一環(huán),它的質(zhì)量直接影響到整個系統(tǒng)的功能。用匯編語言進行程序設(shè)計的過程和用高級語言設(shè)計程序有相似之處,其設(shè)計過程大致可以分為以下幾個步驟:

單片機系統(tǒng)設(shè)計中,程序設(shè)計是重要的一環(huán),它的質(zhì)量直接影響到整個系統(tǒng)的功能。用匯編語言進行程序設(shè)計的過程和用高級語言設(shè)計程序有相似之處,其設(shè)計過程大致可以分為以下幾個步驟:

(1) 明確課題對程序功能、運算精度、執(zhí)行速度等方面的要求及硬件條件。

(2) 把復(fù)雜問題分解為若干個模塊,確定各模塊的處理方法,畫出程序流程圖(簡單問 題可以不畫)。對復(fù)雜問題可分別畫出分模塊流程圖和總的流程圖。

(3) 存儲器資源分配,如各程序段的存放地址、數(shù)據(jù)區(qū)地址、工作單元分配等。

(4) 編制程序,根據(jù)程序流程圖精心選擇合適的指令和尋址方式來編制源程序。

(5) 對程序進行匯編、調(diào)試和修改。將編制好的源程序進行匯編,并執(zhí)行目標程序,檢查修改程序中的錯誤,對程序運行結(jié)果進行分析,直至正確為止。

一、簡單程序設(shè)計

簡單程序又稱順序程序,其特點是按邏輯操作的順序,從某條指令開始逐條執(zhí)行 。一般的應(yīng)用程序遠比順序程序結(jié)構(gòu)復(fù)雜,但順序程序是組成各種復(fù)雜程序的基礎(chǔ)和主干,下面舉例說明。

【例 1】 兩個無符號雙字節(jié)數(shù)相加。設(shè)被加數(shù)存放于 內(nèi)部 RAM 的 40H(高位字節(jié))、 41H(低位字節(jié)),加數(shù)存放于 50H(高位字節(jié))、 51H(低位字節(jié)), 和數(shù)存入 40H 和 41H 單元中。

程序如下:

【例 2】 將兩個半字節(jié)數(shù)合并成一個一字節(jié)數(shù)。

設(shè)內(nèi)部 RAM40H 、41H 單元中分別存放著 8 位二進制數(shù),要求取出兩個單元中的低半字節(jié),合并成一個字節(jié)后,存入 50H 單元中。

程序如下:

上面的程序均設(shè)置了數(shù)據(jù)指針,操作數(shù)通過寄存器間接尋址方式獲得,這樣只要修改指針就可以方便地取數(shù)、存數(shù)。

二、分支程序設(shè)計

在處理實際問題時,只用簡單程序設(shè)計的方法是不夠的。例如,有多個子程序時,為判斷執(zhí)行哪個子程序,就需要使用分支結(jié)構(gòu)的程序 。圖 4.1 為兩種分支結(jié)構(gòu)的形式,其 中 (a) 圖為單分支流程的結(jié)構(gòu), (b) 圖為多分支選擇的結(jié)構(gòu),它們使計算機有了初級智能。

圖 4.1 分支結(jié)構(gòu)框圖

(a) 單分支流程; (b) 多分支流程

單分支結(jié)構(gòu)的指令有:JZ 、JNZ 、JC、JNC、CJNZ 等。多分支結(jié)構(gòu)中常用 JMP @A+DPTR 來實現(xiàn)多分支轉(zhuǎn)移功能,這將在散轉(zhuǎn)程序中介紹。

【例 4】 比較兩個無符號數(shù)的大小。

設(shè)外部 RAM 的存儲單元 ST1 和 ST2 中存放兩個不帶符號 的二進制數(shù),找 出其 中 的 大數(shù)存入外部 RAM 中的 ST3 單元中。

程序流程見圖 4.3 所示。

程序如下:

例 4 的兩段程序都是分支結(jié)構(gòu),使用了條件轉(zhuǎn)移指令,第二段程序采用了減法指令 SUBB 來比較兩數(shù)的大小 。由于這是一條帶借位的減法指令,在執(zhí)行該指令前,先把進位位清零,用減法指令通過借位(Cy) 的狀態(tài)判別兩數(shù)的大小,這是兩個無符號數(shù)比較大小時常用的方法。

三、循環(huán)程序設(shè)計

循環(huán)程序

前面介紹的簡單程序和分支程序,程序中的指令一般執(zhí)行一次。而在一些實際應(yīng)用系統(tǒng)中,往往同一組操作要重復(fù)許多次,這種強制 CPU 多次重復(fù)執(zhí)行一串指令的基本程序結(jié)構(gòu)稱為循環(huán)程序結(jié)構(gòu)。這種結(jié)構(gòu)的程序流程圖如圖 4.4 所示。

循環(huán)程序一般由四個主要部分組成:

(1) 初始化部分:為循環(huán)程序做準備,如規(guī)定循環(huán)次數(shù)、給各變量和地址指針預(yù)置初值。

(2) 處理部分:為反復(fù)執(zhí)行的程序段,是循環(huán)程序的實體,也是循環(huán)程序的主體。

(3) 循環(huán)控制部分:這部分的作用是修改循環(huán)變量和控制變量,并判斷循環(huán)是否結(jié)束,直到符合結(jié)束條件時,跳出循環(huán)為止。

(4) 結(jié)束部分:這部分主要是對循環(huán)程序的結(jié)果進行分析、處理和存放。

循環(huán)程序中,控制循環(huán)次數(shù)的方式有多種:循環(huán)次數(shù)已知的 ,常用 DJNZ 指令來控制

圖 4.4

循環(huán);循環(huán)次數(shù)未知的,可以按條件控制循環(huán),常用條件轉(zhuǎn)移指令來控制。

【例 5】 工作單元清零。

在應(yīng)用系統(tǒng)程序設(shè)計時,有時經(jīng)常需要將存儲器中各部分地址單元作為工作單元,存放程序執(zhí)行的中間值或執(zhí)行結(jié)果,工作單元清零工作常常放在程序的初始化部分中。

設(shè)有 50 個工作單元,其首址為外部存儲器 8000H 單元,則其工作單元清零程序如下:

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀

在單片機通信系統(tǒng)中,數(shù)據(jù)幀是實現(xiàn)設(shè)備間可靠對話的核心載體。不同于網(wǎng)絡(luò)通信中成熟的TCP/IP協(xié)議,單片機通信往往需要自定義數(shù)據(jù)幀格式,而幀頭、幀尾與校驗機制則是保障數(shù)據(jù)傳輸準確性的三大關(guān)鍵。

關(guān)鍵字: 單片機 數(shù)據(jù)幀

隨著嵌入式技術(shù)的不斷發(fā)展,時序分析工具和方法也在不斷進步,未來將朝著智能化、自動化的方向發(fā)展,為開發(fā)者提供更高效的調(diào)試手段。但無論技術(shù)如何發(fā)展,扎實的時序分析基礎(chǔ)都是嵌入式開發(fā)者不可或缺的能力,只有深入理解通信時序的本質(zhì)...

關(guān)鍵字: 時序 單片機

在嵌入式系統(tǒng)設(shè)計中,不同架構(gòu)、不同廠商的單片機協(xié)同工作早已成為常態(tài)。從8位的51系列到32位的STM32,從精簡指令集的PIC到復(fù)雜指令集的AVR,這些性能各異的單片機如何突破硬件差異實現(xiàn)數(shù)據(jù)交互,是嵌入式開發(fā)中的核心課...

關(guān)鍵字: 嵌入式 單片機

在嵌入式系統(tǒng)開發(fā)中,單片機的時鐘系統(tǒng)是整個系統(tǒng)的"心臟",所有的指令執(zhí)行、外設(shè)操作、定時器中斷都依賴于精準的時鐘信號。但在實際開發(fā)過程中,很多開發(fā)者都會遇到單片機時鐘不準的問題,表現(xiàn)為定時器計時偏差、UART通信波特率錯...

關(guān)鍵字: 控制系統(tǒng) 單片機

在單片機開發(fā)與調(diào)試過程中,復(fù)位電路作為保障芯片正常啟動的核心模塊,其穩(wěn)定性直接影響程序燒錄與系統(tǒng)運行。實際應(yīng)用中,不少開發(fā)者會遇到“接穩(wěn)壓電源可正常燒錄,接入電池后卻無法燒錄程序”的故障,此類問題多與復(fù)位電路設(shè)計、電池供...

關(guān)鍵字: 單片機 復(fù)位電路 時序匹配

在單片機的世界里,“字節(jié)”(Byte)是一個貫穿始終的核心概念。從存儲數(shù)據(jù)到執(zhí)行指令,從變量定義到外設(shè)通信,字節(jié)無處不在。很多初學(xué)者在學(xué)習(xí)單片機時,往往更關(guān)注復(fù)雜的程序邏輯和外設(shè)驅(qū)動,卻忽略了字節(jié)這個基礎(chǔ)知識點,導(dǎo)致在后...

關(guān)鍵字: 單片機 字節(jié)

在單片機的數(shù)字邏輯中,我們通常最關(guān)注的是高電平和低電平兩種狀態(tài),它們構(gòu)成了二進制數(shù)字世界的基礎(chǔ)。然而,除了這兩種狀態(tài)之外,還有一種至關(guān)重要但常常被忽視的狀態(tài)——高阻態(tài)(High Impedance State)。高阻態(tài)就...

關(guān)鍵字: 單片機 高阻態(tài)

對于PIC入門者來說,不需要盲目追求高端開發(fā)板,一塊功能均衡、資料豐富的入門款就能滿足需求。比如Microchip官方推出的PIC16F84A開發(fā)板,它搭載經(jīng)典的8位PIC內(nèi)核,引腳布局清晰,自帶LED、按鍵等基礎(chǔ)外設(shè),...

關(guān)鍵字: PIC 單片機

該低功耗器件支持5V運行,在實現(xiàn)高性能的同時,能有效保障系統(tǒng)簡潔性與成本效益

關(guān)鍵字: MCU 單片機 工業(yè)自動化

CH558T 采用 BASIC-52 系統(tǒng),并具備藍牙連接功能。CH558T 的運行頻率為 48 MHz,擁有 4KB 的 xRAM,足以滿足常規(guī)應(yīng)用需求。

關(guān)鍵字: 單片機 BASIC-52 系統(tǒng) CH558T
關(guān)閉