常用控制程序設(shè)計(jì)(同名243)課件_第1頁(yè)
常用控制程序設(shè)計(jì)(同名243)課件_第2頁(yè)
常用控制程序設(shè)計(jì)(同名243)課件_第3頁(yè)
常用控制程序設(shè)計(jì)(同名243)課件_第4頁(yè)
常用控制程序設(shè)計(jì)(同名243)課件_第5頁(yè)
已閱讀5頁(yè),還剩343頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第三章常用控制程序設(shè)計(jì)3.1判斷程序設(shè)計(jì)3.2巡回檢測(cè)程序設(shè)計(jì)3.3數(shù)字濾波程序設(shè)計(jì)3.4標(biāo)度變換程序設(shè)計(jì)3.5上下限報(bào)警處理程序設(shè)計(jì)3.6LED數(shù)碼管顯示程序設(shè)計(jì)3.7定時(shí)程序設(shè)計(jì)3.8鍵盤(pán)控制程序設(shè)計(jì)3.9抗干擾技術(shù)3.10電機(jī)控制程序設(shè)計(jì)3.11步進(jìn)電機(jī)控制第三章常用控制程序設(shè)計(jì)3.1判斷程序設(shè)計(jì)3.1判斷程序設(shè)計(jì)3.1.1算術(shù)判斷程序3.1.2邏輯判斷程序3.1.3標(biāo)志判斷程序返回本章首頁(yè)3.1判斷程序設(shè)計(jì)3.1.1算術(shù)判斷程序返回本章判斷程序就是分支執(zhí)行程序。程序在執(zhí)行時(shí),首先判定給定的條件是否滿(mǎn)足,根據(jù)判定的結(jié)果(真或假)再執(zhí)行相應(yīng)的操作。例如:在轉(zhuǎn)速控制系統(tǒng)中,電機(jī)的恒速運(yùn)轉(zhuǎn)一般是通過(guò)控制輸入電壓來(lái)實(shí)現(xiàn)的,首先檢測(cè)出電機(jī)的實(shí)際轉(zhuǎn)速,再比較電機(jī)的實(shí)際轉(zhuǎn)速和給定轉(zhuǎn)速,如果電機(jī)的轉(zhuǎn)速低于給定轉(zhuǎn)速,就需要增加輸入電壓;如果電機(jī)的轉(zhuǎn)速高于給定轉(zhuǎn)速,就需要降低輸入電壓。上述功能的執(zhí)行過(guò)程如圖3-1所示。判斷程序就是分支執(zhí)行程序。程序在執(zhí)行時(shí),首先判定給定的條件是圖3-1判斷程序框圖檢測(cè)電機(jī)轉(zhuǎn)速是否大于給定轉(zhuǎn)速降低輸入電壓提高輸入電壓是否圖3-1判斷程序框圖檢測(cè)電機(jī)轉(zhuǎn)速是否大于給定轉(zhuǎn)速降低輸入MCS-51系列的程序狀態(tài)字(PSW)是一個(gè)用于存儲(chǔ)程序運(yùn)行狀態(tài)信息的8位寄存器,其位定義如表3-1所示。其中有些位狀態(tài)是根據(jù)程序運(yùn)算結(jié)果由硬件自動(dòng)設(shè)置;而有些位狀態(tài)則是通過(guò)軟件設(shè)定的。PSW的位狀態(tài)可通過(guò)指令讀出,以實(shí)現(xiàn)程序的轉(zhuǎn)移。返回本節(jié)MCS-51系列的程序狀態(tài)字(PSW)是一個(gè)用于存儲(chǔ)程序運(yùn)行3.1.1算術(shù)判斷程序1.兩個(gè)8位無(wú)符號(hào)數(shù)比較2.兩個(gè)16位無(wú)符號(hào)數(shù)比較3.兩個(gè)8位有符號(hào)數(shù)的比較3.1.1算術(shù)判斷程序1.兩個(gè)8位無(wú)符號(hào)數(shù)比較兩個(gè)8位無(wú)符號(hào)數(shù)比較圖3-28位無(wú)符號(hào)數(shù)的比較流程框圖兩個(gè)8位無(wú)符號(hào)數(shù)比較圖3-28位無(wú)符號(hào)數(shù)的比較流程框圖… …

CLR CY ;進(jìn)位標(biāo)志清零

MOV A,M ;A←M SUBB A,N ;求M-N JZ EQU ;累加器A=0,則M=N,轉(zhuǎn)EQU JC LESS ;CY=1,有借位,則M<N,轉(zhuǎn)LESSBIG: M>N處理程序 ;無(wú)借位,則M>N,執(zhí)行BIG處理程序EQU: M=N處理程序LESS: M<N處理程序 … …8位無(wú)符號(hào)數(shù)的比較程序清單:…8位無(wú)符號(hào)數(shù)的比較程序清單:2.兩個(gè)16位無(wú)符號(hào)數(shù)比較圖3-316位無(wú)符號(hào)數(shù)的比較流程框圖2.兩個(gè)16位無(wú)符號(hào)數(shù)比較圖3-316位無(wú)符號(hào)數(shù)的比16位無(wú)符號(hào)數(shù)的比較程序清單:… …

CLR CY ;標(biāo)志位清零

MOV A,MH ;A←MH

MOV R2,NH ;R2←NH SUBB A,R2 ;高8位比較

JZ HEQU ;高8位相等,轉(zhuǎn)低8位比較

JC LESS ;有借位,轉(zhuǎn)M<N處理程序

AJMP BIG ;無(wú)借位,轉(zhuǎn)M>N理程序16位無(wú)符號(hào)數(shù)的比較程序清單:…HEQU: CLR CY ;標(biāo)志位清零

MOV A,ML ;A←ML MOV R2,NL ;R2←NL SUBB A,R2 ;低8位比較

JZ EQU ;A=0,則M=N,轉(zhuǎn)EQU JC LESS ;有借位,則M<N,轉(zhuǎn)LESSBIG: M>N處理程序 ;無(wú)借位,執(zhí)行M>N理程序EUQ: M=N處理程序LESS: M<N處理程序 … …HEQU: CLR CY ;標(biāo)志位清零

3.兩個(gè)8位有符號(hào)數(shù)的比較由于M和N均為有符號(hào)數(shù),M和N兩數(shù)在比較時(shí),可能出現(xiàn)以下四種情況:(1)M>0,N>0,即兩數(shù)均為正數(shù)。(2)M>0,N<0,即M為正數(shù),N為負(fù)數(shù)。(3)M<0,N>0,即M為負(fù)數(shù),N為正數(shù)。(4)M<0,N<0,即兩數(shù)均為負(fù)數(shù)。3.兩個(gè)8位有符號(hào)數(shù)的比較由于M和N均為有符號(hào)數(shù),M和圖3-48位有符號(hào)數(shù)的比較流程框圖圖3-48位有符號(hào)數(shù)的比較流程框圖8位有符號(hào)數(shù)比較程序清單:… …

MOV A,M ;A←M MOV R2,N ;R2←N SUBB A,R2 ;M和N比較

JZ EQU ;M和N相等,轉(zhuǎn)相等處理程序

JB PSW.2,FLOW ;判斷是否溢出

JB ACC.7,LESS ;無(wú)溢出,且A的最高位為1,則M<N AJMP BIG ;否則,M>NFLOW: JB ACC.7,BIG ;有溢出,且A的最高位為1,則M>NLESS: M<N處理程序 ;否則,M<N,執(zhí)行LESS執(zhí)行程序BIG: M>N處理程序EUQ: M=N處理程序 … …返回本節(jié)8位有符號(hào)數(shù)比較程序清單:3.1.2邏輯判斷程序邏輯判斷程序的設(shè)計(jì)步驟:(1)讀入數(shù)據(jù)(開(kāi)關(guān)狀態(tài)或閥門(mén)的位置);(2)屏蔽不需要的狀態(tài)位;(3)與所要求的狀態(tài)比較;(4)判斷比較結(jié)果,選擇程序入口。3.1.2邏輯判斷程序邏輯判斷程序的設(shè)計(jì)步驟:例3-1圖3-5中A、B、C、D表示4個(gè)開(kāi)關(guān),當(dāng)四個(gè)開(kāi)關(guān)均閉合時(shí),順序執(zhí)行相應(yīng)的程序,否則,繼續(xù)檢測(cè)。邏輯判斷程序流程框圖如圖3-6所示。圖3-5開(kāi)關(guān)位置檢測(cè)圖例3-1圖3-5中A、B、C、D表示4個(gè)開(kāi)關(guān),當(dāng)四個(gè)開(kāi)關(guān)均圖3-6開(kāi)關(guān)狀態(tài)檢測(cè)流程圖圖3-6開(kāi)關(guān)狀態(tài)檢測(cè)流程圖邏輯判斷程序清單:… …CHECK: MOV A,P1 ;讀入開(kāi)關(guān)狀態(tài)

ANL A,#55H ;屏蔽無(wú)用位

XRL A,#00H ;判斷A、B、C、D是否全部閉合

JNZ CHECK ;A、B、C、D沒(méi)全部閉合,繼續(xù)檢測(cè) … ;否則順序執(zhí)行相應(yīng)程序 …返回本節(jié)邏輯判斷程序清單:…返回本節(jié)3.1.3標(biāo)志判斷程序標(biāo)志判斷的設(shè)計(jì)思想是:根據(jù)某一設(shè)定的標(biāo)志單元(或標(biāo)志位)的狀態(tài),決定程序的執(zhí)行方向。電機(jī)旋轉(zhuǎn)方向控制程序流程圖如圖3-7所示。圖3-7電機(jī)旋轉(zhuǎn)方向控制程序流程圖3.1.3標(biāo)志判斷程序標(biāo)志判斷的設(shè)計(jì)思想是:根據(jù)某一設(shè)電機(jī)旋轉(zhuǎn)方向控制程序清單:FLAG BIT00H ;設(shè)定00H為電機(jī)旋轉(zhuǎn)方向控制位 … …

JB FLAGRIGHT ;FLAG=1,轉(zhuǎn)RIGHTLEFT: … ;FLAG=0,順時(shí)針旋轉(zhuǎn)控制程序 …RIGHT: … ;逆時(shí)針旋轉(zhuǎn)控制程序 …返回本節(jié)電機(jī)旋轉(zhuǎn)方向控制程序清單:FLAG BIT00H ;設(shè)3.2巡回檢測(cè)程序設(shè)計(jì)3.2.1概述3.2.2巡回檢測(cè)舉例返回本章首頁(yè)3.2巡回檢測(cè)程序設(shè)計(jì)3.2.1概述返回本章首頁(yè)3.2.1概述所謂的巡回檢測(cè)就是對(duì)生產(chǎn)過(guò)程中的各個(gè)參數(shù)按照一定的周期進(jìn)行檢查和測(cè)量,檢測(cè)的數(shù)據(jù)通過(guò)計(jì)算機(jī)處理后可以進(jìn)行顯示、打印和報(bào)警等操作。巡回檢測(cè)程序主要由以下幾個(gè)方面構(gòu)成:1.采樣周期T的確定2.采樣開(kāi)關(guān)通道號(hào)的控制3.A/D轉(zhuǎn)換

4.數(shù)據(jù)處理返回本節(jié)3.2.1概述所謂的巡回檢測(cè)就是對(duì)生產(chǎn)過(guò)程中的各個(gè)參數(shù)3.2.2巡回檢測(cè)舉例1.利用8位A/D轉(zhuǎn)換芯片(ADC0809)2.采用12位A/D轉(zhuǎn)換芯片(AD574A)3.2.2巡回檢測(cè)舉例1.利用8位A/D轉(zhuǎn)換芯片(A1.利用8位A/D轉(zhuǎn)換芯片(ADC0809)圖3-8爐溫巡回檢測(cè)電路原理圖1.利用8位A/D轉(zhuǎn)換芯片(ADC0809)圖3-8爐系統(tǒng)的硬件電路介紹:(1)測(cè)量元件和變送器(2)A/D轉(zhuǎn)換電路(3)二分頻電路系統(tǒng)的硬件電路介紹:(1)測(cè)量元件和變送器本程序由系統(tǒng)初始化程序和中斷程序組成。初始化程序完成中斷向量和定時(shí)器初值的設(shè)定;中斷程序完成數(shù)據(jù)采樣工作,實(shí)現(xiàn)對(duì)8個(gè)通道的巡回檢測(cè)。初始化程序功能:設(shè)置定時(shí)器0、外部中斷0和外部中斷1的中斷程序入口;設(shè)置定時(shí)器0的工作方式為方式1,定時(shí)時(shí)間為100ms;設(shè)置計(jì)數(shù)單元(30H)初值。初始化程序流程框圖如圖3-9所示。圖3-9初始化程序流程圖本程序由系統(tǒng)初始化程序和中斷程序組成。初始化程序完成中斷向量初始化程序清單:ORG 0000H AJMP START ORG 0003H AJMP SAMPLE ;轉(zhuǎn)采樣中斷程序

ORG 000BH AJMP TIME0 ;轉(zhuǎn)8秒定時(shí)中斷程序

ORG 0013H AJMP EOC ;轉(zhuǎn)EOC中斷處理程序START: MOV TMOD,#01H ;置定時(shí)器0為工作方式1

MOV TH0,#3CH初始化程序清單:ORG 0000HMOV TL0,#0B0H ;定時(shí)器初值設(shè)定

MOV 30H,#00H ;置計(jì)數(shù)初值

SETB IT0 ;中斷請(qǐng)求信號(hào)為脈沖方式

SETB IT1 ;中斷請(qǐng)求信號(hào)為脈沖方式

SETB EX0 ;外部中斷0中斷允許

SETB ET0 ;定時(shí)器0中斷允許

SETB EA ;開(kāi)中斷

SETB TR0 ;啟動(dòng)定時(shí)器HERE: AJMP HERE ;等待中斷MOV TL0,#0B0H ;定時(shí)器初值設(shè)定定時(shí)器中斷程序流程框圖如圖3-10所示。圖3-10定時(shí)器中斷程序流程框圖定時(shí)器中斷程序流程框圖如圖3-10所示。圖3-10定時(shí)器定時(shí)器中斷程序程序清單:TIME0: CLR EA ;關(guān)中斷

INC 30H MOV A,30H XRL A,#50H ;判斷是否到8秒

JZ S_8 ;8秒定時(shí)到,轉(zhuǎn)至S_8 AJMP RECOUN ;未到8秒,繼續(xù)計(jì)時(shí)S_8: SETB P3.2 ;觸發(fā)外部中斷0

NOP CLR P3.2 NOPRECOUN: MOV TH0,#3CH MOV TL0,#0B0H ;設(shè)定定時(shí)器初值

SETB EA ;開(kāi)中斷

RETI ;中斷返回定時(shí)器中斷程序程序清單:TIME0: CLR EA ;關(guān)中數(shù)據(jù)采樣程序流程框圖如圖3-11所示。數(shù)據(jù)采樣程序流程框圖如圖3-11所示。數(shù)據(jù)采樣程序程序清單:SAMPLE: SETB 00H ;設(shè)置標(biāo)志位

MOV DPTR,#0F00H ;設(shè)置通道初值

MOV R6,#08H ;設(shè)置通道數(shù)

MOV R7,#05H ;設(shè)置采樣次數(shù)MOV R0,#40H ;設(shè)置數(shù)據(jù)區(qū)首址TRAN_S: MOVX @DPTR,A ;啟動(dòng)A/D轉(zhuǎn)換程序流程圖WAIT: JB 00H,WAIT ;標(biāo)志位為1等待A/D轉(zhuǎn)換完成中斷數(shù)據(jù)采樣程序程序清單:SAMPLE: SETB 00H ;SETB 00H ;置標(biāo)志位

INC DPTR ;通道號(hào)加1

INC R0 INC R0 INC R0 INC R0 INC R0 ;45H為下一通道采樣數(shù)據(jù)存放首址

DJNZ R6,#TRAN_S ;8個(gè)通道采樣未完,繼續(xù)采樣

MOV DPTR,#0F00H ;8個(gè)通道采樣結(jié)束,重置通道初值

INC R0 ;修改采樣數(shù)據(jù)存放地址

DJNZ R7,TRAN_S ;未完成5次采樣,繼續(xù) … ;數(shù)據(jù)處理程序 ….

RETISETB 00H ;置標(biāo)志位2.采用12位A/D轉(zhuǎn)換芯片(AD574A)圖3-14AD574A和8031的硬件接口電路圖2.采用12位A/D轉(zhuǎn)換芯片(AD574A)圖3-14圖3-15AD574AA/D轉(zhuǎn)換程序流程框圖圖3-15AD574AA/D轉(zhuǎn)換程序流程框圖D574AA/D轉(zhuǎn)換程序清單:ORG 0000H AJMP START ORG 0003H AJMP SAMPLE ;轉(zhuǎn)至數(shù)據(jù)采樣程序START: MOV DPTR,#0000H ;建立AD574A的地址

MOV R0,#40H ;設(shè)置數(shù)據(jù)存儲(chǔ)初址

SETB EX0 ;允許外部中斷0

SETB IT0 ;設(shè)置外部中斷0請(qǐng)求信號(hào)方式為脈沖方式

SETB EA ;中斷允許

MOVX @DPTR,A ;啟動(dòng)A/D轉(zhuǎn)換HERE: AJMP HERE ;等待中斷D574AA/D轉(zhuǎn)換程序清單:ORG 0000H中斷服務(wù)程序清單:SAMPLE: CLR EA ;關(guān)中斷

MOV DPTR,#0002H MOVX A,@DPTR ;讀A/D轉(zhuǎn)換數(shù)據(jù)的高8位

MOV @R0,A ;保存數(shù)據(jù)

INC R0 INC DPTR MOVX A,@DPTR ;讀A/D轉(zhuǎn)換數(shù)據(jù)的低4位

SETB EA ;開(kāi)中斷

RETI返回本節(jié)中斷服務(wù)程序清單:SAMPLE: CLR EA ;關(guān)中斷返回3.3數(shù)字濾波程序設(shè)計(jì)3.3.1概述3.3.2數(shù)字濾波的方法返回本章首頁(yè)3.3數(shù)字濾波程序設(shè)計(jì)3.3.1概述返回本章首頁(yè)3.3.1概述和模擬濾波裝置相比,數(shù)字濾波有以下幾個(gè)優(yōu)點(diǎn):(1)數(shù)字濾波通過(guò)程序?qū)崿F(xiàn),不需硬件設(shè)備,系統(tǒng)的可靠性較高。(2)數(shù)字濾波可實(shí)現(xiàn)多通道共用。(3)可對(duì)低頻信號(hào)(如0.01Hz)實(shí)現(xiàn)濾波。(4)采用不同的算法和參數(shù)就可實(shí)現(xiàn)對(duì)不同信號(hào)的濾波,使用起來(lái)靈活、方便。返回本節(jié)3.3.1概述和模擬濾波裝置相比,數(shù)字濾波有以下幾個(gè)優(yōu)3.3.2數(shù)字濾波的方法1.程序判斷濾波2.中值濾波3.算術(shù)平均濾波4.加權(quán)平均濾波5.一階滯后濾波6.防脈沖干擾平均值法3.3.2數(shù)字濾波的方法1.程序判斷濾波1.程序判斷濾波限幅濾波就是把相鄰的兩次采樣值相減,求出其增量(以絕對(duì)值表示),然后與兩次采樣允許的最大偏差值(由被控對(duì)象的實(shí)際情況決定)△y進(jìn)行比較,如果小于等于△y,則取本次采樣值;如果大于△y,則仍取上次采樣值作為本次采樣值。即:│Yn-Yn-1│≤△y,則Yn=Yn,取本次采樣值│Yn-Yn-1│>△y,則Yn=Yn-1,取上次采樣值(3-1)1.程序判斷濾波限幅濾波就是把相鄰的兩次采樣值相減,求限幅濾波程序流程框圖如圖3-16所示。圖3-16限幅濾波程序流程框圖限幅濾波程序流程框圖如圖3-16所示。圖3-16限幅濾波限幅濾波程序程序清單:PUSH PSW ;保護(hù)現(xiàn)場(chǎng)

PUSH A CLR C ;進(jìn)位標(biāo)志位清零

MOV DATA,DATA2 MOV A,DATA1 SUBB A,DATA ;求Yn-1-Yn JNC COMPARE ;如果Yn-1-Yn≥0,轉(zhuǎn)COMPARE CPL A ;如果Yn-1-Yn<0,求補(bǔ)

INC A限幅濾波程序程序清單:PUSH PSW ;保護(hù)現(xiàn)場(chǎng)COMPARE: CLR C SUBB A,LIMIT ;│Yn-Yn-1│和△y比較

JC OVER ;如果│Yn-Yn-1│≤△y,DATA2→DATA MOV DATA,DATA1 ;如果│Yn-Yn-1│>△y,DATA1→DATAOVER: POP A ;恢復(fù)現(xiàn)場(chǎng)

POP PSW RET ;返回COMPARE: CLR C限速濾波的濾波原理如下:設(shè)在順序采樣時(shí)刻T1、T2、T3所采集的數(shù)據(jù)分別為Y1、Y2、Y3,則當(dāng)∣Y2-Y1∣≤△y,則Y2作為采樣值;∣Y2-Y1∣>△y,則保留Y2,但不作為采樣值,繼續(xù)采樣得Y3;如果∣Y3-Y2∣≤△y,則Y3作為采樣值;∣Y3-Y2∣>△y,則取作為采樣值。限速濾波的濾波原理如下:設(shè)在順序采樣時(shí)刻T1、T2、T3所采2.中值濾波所謂中值濾波法就是對(duì)某一被測(cè)參數(shù)連續(xù)采樣n次(n一般取奇數(shù)),然后把n次采樣值按順序排列,取其中間值做為本次采樣值。中值濾波程序的流程框圖如圖3-17所示。圖3-17中值濾波程序流程框圖現(xiàn)場(chǎng)保護(hù)設(shè)置數(shù)據(jù)個(gè)數(shù)讀數(shù)據(jù)排序取中值據(jù)現(xiàn)場(chǎng)恢復(fù)排序完成否?是設(shè)置數(shù)據(jù)區(qū)首址開(kāi)始返回是否2.中值濾波所謂中值濾波法就是對(duì)某一被測(cè)參數(shù)連續(xù)采樣n次中值濾波程序程序清單:PUSH PSW PUSH ASORT: MOV R0,DATA ;數(shù)據(jù)存儲(chǔ)區(qū)單元首址

MOV R7,TIME ;讀比較次數(shù)

CLR FLAG ;清交換標(biāo)志位LOOP: MOV A,@R0 ;取第一個(gè)數(shù)

MOV FIRST,A ;保存第一個(gè)數(shù)

INC R0 MOV SECOND,@R0 ;保存第二個(gè)數(shù)

CLR C SUBB A,@R0 ;兩數(shù)比較中值濾波程序程序清單:PUSH PSWJC NEXT ;第一數(shù)小于第二數(shù),不交換

MOV @R0,FIRST DEC R0 MOV @R0,SECOND ;交換兩數(shù)

INC R0 SETB FLAG ;置交換標(biāo)志位NEXT: DJNZ R7,LOOP ;進(jìn)行下一次比較

JB FLAG,SORT ;進(jìn)行下一輪比較

DEC R0 CLR C MOV A,TIMEJC NEXT ;第一數(shù)小于第二數(shù),不交換RRC A MOV R7,ACONT: DECR0 DJNZ R7,CONT MOV SAMP,@R0 ;取中值

POP A POP PSW RETRRC A3.算術(shù)平均濾波所謂算術(shù)平均濾波就是把n個(gè)采樣值相加,然后取其算術(shù)平均值作為本次有效的采樣信號(hào),即:圖3-18算術(shù)平均濾波程序流程圖3.算術(shù)平均濾波圖3-18算術(shù)平均濾波程序流程圖算術(shù)平均濾波程序清單:(本例中取采樣次數(shù)n=8)PUSH PSW ;現(xiàn)場(chǎng)保護(hù)

PUSH A MOV FLAG,#00H ;進(jìn)位位清零

MOV R0,DATA ;設(shè)置數(shù)據(jù)存儲(chǔ)區(qū)首址

MOV R7,#08H ;設(shè)置采樣數(shù)據(jù)個(gè)數(shù)

CLR A ;清累加器LOOP: ADD A,@R0 ;兩數(shù)相加

JNC NEXT ;無(wú)進(jìn)位,轉(zhuǎn)NEXT INC FLAG ;有進(jìn)位,進(jìn)位位加1NEXT: INC R0 ;數(shù)據(jù)指針加1

DJNZ R7,LOOP ;未加完,繼續(xù)加

MOV R7,#03H ;設(shè)置循環(huán)次數(shù)算術(shù)平均濾波程序清單:(本例中取采樣次數(shù)n=8)PUSH DIVIDE: MOV TEMP,A ;保存累加器中的內(nèi)容

MOV A,FLAG ;累加結(jié)果除2

CLR C RRC A MOV FLAG,A MOV A,TEMP RRC A DJNZ R7,DIVIDE ;未結(jié)束,繼續(xù)執(zhí)行

MOV SAMP,A ;保存結(jié)果至SAMP中

POP A ;恢復(fù)現(xiàn)場(chǎng)

POP PSW RETDIVIDE: MOV TEMP,A ;保存累加器中的內(nèi)容4.加權(quán)平均濾波在算術(shù)平均濾波程序中,n次采樣值在最后的結(jié)果中所占的比重是相等的,這樣雖然消除了隨機(jī)干擾,但有用信號(hào)的靈敏度也隨之降低。為了提高濾波效果,將各個(gè)采樣值取不同的比重,然后再相加求平均值,這種方法稱(chēng)為加權(quán)平均濾波。一個(gè)n項(xiàng)加權(quán)平均式為:4.加權(quán)平均濾波在算術(shù)平均濾波程序中,n次采樣值在最后的圖3-19加權(quán)平均濾波程序流程圖圖3-19加權(quán)平均濾波程序流程圖加權(quán)平均濾波程序清單:PUSH PSW ;保護(hù)現(xiàn)場(chǎng)

PUSH A MOV R7,TIME ;數(shù)據(jù)個(gè)數(shù)設(shè)置

MOV R0,DATA ;數(shù)據(jù)區(qū)首址設(shè)置

MOV R1,COEFF ;系數(shù)存儲(chǔ)首址設(shè)置

MOV FLAG,#00H ;累加結(jié)果存儲(chǔ)區(qū)清零

MOV SAMP_L,#00H MOV SAMP_H,#00HLOOP: MOV A,@R0 ;讀采樣值

MOV B,A MOV A,@R1 ;讀加權(quán)平均系數(shù)加權(quán)平均濾波程序清單:PUSH PSW ;保護(hù)現(xiàn)場(chǎng)MUL AB CLR C ADD A,SAMP_L ;累加和

MOV SAMP_L,A MOV A,B ADDC A,SAMP_H JNC NEXT INC FLAGNEXT: MOV SAMP_H,A INC R0 ;數(shù)據(jù)區(qū)地址加1

INC R1 ;系數(shù)地址加1

DJNZ R7,LOOP ;未加完,繼續(xù)

MOV R7,#07H ;設(shè)置循環(huán)次數(shù)MUL ABDIV128: CLR C MOV A,FLAG ;累加結(jié)果除2

RRC A MOV FLAG,A MOV A,SAMP_H RRC A MOV SAMP_H,A MOV A,SAMP_L RRC A MOV SAMP_L,A DJNZ R7,DIV128 ;未除完,繼續(xù)

MOV SAMP,SAMP_L ;保存濾波后采樣值

POP A ;恢復(fù)現(xiàn)場(chǎng)

POP PSW RETDIV128: CLR C5.一階滯后濾波圖3-20一階滯后濾波程序流程圖5.一階滯后濾波圖3-20一階滯后濾波程序流程圖一階滯后濾波程序清單:MOV MUL1_H,COEFF1_HMOV MUL1_L,COEFF1_LMOV MUL2_H,DATA1_HMOV MUL2_H,DATA1_LACALL MULTD ;MOV BUFF1,PR_HMOV BUFF2,PR_LMOV MUL1_H,COEFF2_HMOV MUL1_L,COEFF2_L一階滯后濾波程序清單:MOV MUL1_H,COEFF1_MOV MUL2_H,DATA2_HMOV MUL2_H,DATA2_LACALL MULTD ;CLR CMOV A,PR_H ;ADD A,BUFF1MOV PR_H,AMOV A,PR_LADDC A,BUFF2 ;MOV PR_L,AMOV MUL2_H,DATA2_H雙字節(jié)無(wú)符號(hào)位乘法子程序(MULTD)。入口條件:乘數(shù)MUL1存于MUL1_H和MUL1_L單元中,被乘數(shù)MUL2存于MUL2_H和MUL2_L單元中。出口條件:乘積按順序存于PR_H、PR_L、MUL1_H、MUL1_L單元中。雙字節(jié)無(wú)符號(hào)位乘法子程序(MULTD)。入口條件:乘數(shù)MUMULTD: CLRC ;清進(jìn)位標(biāo)志位

MOV PR_L,#00H ;乘積高8位清零

MOV PR_H,#00H MOV R7,#11H ;設(shè)置循環(huán)次數(shù)LOOP1: JNC LOOP2 ;進(jìn)位標(biāo)志位為零,轉(zhuǎn)LOOP2 MOV A,PR_L ;PR+MUL2 ADD A,MUL2_L MOV PR_L,A MOV A,PR_H ADDC A,MUL2_H MOV PR_H,AMULTD: CLRC ;清進(jìn)位標(biāo)志位LOOP2: MOV A,PR_H ;PR右移一位

RRC A MOV PR_H,A MOV A,PR_L RRC A MOV PR_L,A MOV A,MUL1_H ;MUL1右移一位

RRC A MOV MUL1_H,A MOV A,MUL1_L RRC A MOV MUL1_L,A DJNZ R7,LOOP1 ;循環(huán)未結(jié)束,繼續(xù)LOOP2: MOV A,PR_H ;PR右移一位6.防脈沖干擾平均值法圖3-21防脈沖干擾平均值法程序流程框圖6.防脈沖干擾平均值法圖3-21防脈沖干擾平均值法程防脈沖干擾平均值法程序清單:PUSH A ;保護(hù)現(xiàn)場(chǎng)

PUSH PSWSORT: MOV R0,DATA ;數(shù)據(jù)存儲(chǔ)區(qū)單元首址

MOV R7,#10H ;讀比較次數(shù)

CLR CHANGE ;清交換標(biāo)志位LOOP: MOV A,@R0 ;取第一個(gè)數(shù)

MOV FIRST,A ;保存第一個(gè)數(shù)

INC R0 MOV SECOND,@R0 ;保存第二個(gè)數(shù)

CLR C SUBB A,@R0 ;兩數(shù)比較防脈沖干擾平均值法程序清單:PUSH A ;保護(hù)現(xiàn)場(chǎng)JC NEXT ;第一數(shù)小于第二數(shù),不交換

MOV @R0,FIRST DEC R0 MOV @R0,SECOND ;交換兩數(shù)

INC R0 SETB CHANGE ;置交換標(biāo)志位NEXT: DJNZ R7,LOOP ;進(jìn)行下一次比較

JB CHANGE,SORT ;進(jìn)行下一輪比較

MOV FLAG,#00H ;進(jìn)位位清零

INC DATA ;去掉最小值

MOV R0,DATA ;設(shè)置數(shù)據(jù)存儲(chǔ)區(qū)首址

MOV R7,#08H ;設(shè)置累加循環(huán)次數(shù),去掉最大值

CLR A ;清累加器LOOP: ADD A,@R0 ;兩數(shù)相加

JNC NEXT ;無(wú)進(jìn)位,轉(zhuǎn)NEXT INC FLAG ;有進(jìn)位,進(jìn)位位加1JC NEXT ;第一數(shù)小于第二數(shù),不交換NEXT: INC R0 ;數(shù)據(jù)指針加1

DJNZ R7,LOOP ;未加完,繼續(xù)加

MOV R7,#03H ;設(shè)置循環(huán)次數(shù)DIVIDE: MOV TEMP,A ;保存累加器中的內(nèi)容

MOV A,FLAG ;累加結(jié)果除2

CLR C RRC A MOV FLAG,A MOV A,TEMP RRC A DJNZ R7,DIVIDE ;未結(jié)束,繼續(xù)執(zhí)行

MOV SAMP,A ;保存結(jié)果至SAMP中

POP A ;恢復(fù)現(xiàn)場(chǎng)

POP PSW RET返回本節(jié)NEXT: INC R0 ;數(shù)據(jù)指針加13.4標(biāo)度變換程序設(shè)計(jì)對(duì)于一般的線性?xún)x表而言,標(biāo)度變換公式為:為了簡(jiǎn)化程序設(shè)計(jì),一般把被測(cè)參數(shù)的起點(diǎn)A0所對(duì)應(yīng)的A/D轉(zhuǎn)換值設(shè)定為0,即N0=0,這樣式(3-6)可以改寫(xiě)為:返回本章首頁(yè)3.4標(biāo)度變換程序設(shè)計(jì)對(duì)于一般的線性?xún)x表而言,標(biāo)度變換例3-2某溫度測(cè)量?jī)x表的量程為100~900℃,利用8031和ADC0809進(jìn)行A/D轉(zhuǎn)換。在某一時(shí)刻計(jì)算機(jī)采樣并經(jīng)過(guò)數(shù)字濾波后的的數(shù)字量為0CDH求此時(shí)對(duì)應(yīng)的溫度值是多少?(設(shè)儀表的量程是線性的)解:由式(3-7)可知,A0=100℃,Am=900℃,Nx=0CDH=(205)D,Nm=0FFH=(255)D,所以此時(shí)對(duì)應(yīng)的溫度為:例3-2某溫度測(cè)量?jī)x表的量程為100~900℃,利用803標(biāo)度變換程序清單:BDCHAN: MOV SUB1_L,AM ;

INC AM MOV SUB1_H,AM MOV SUB2_L,A0 INC A0 MOV SUB2_H,A0 ACALL SUB2 MOV MUL1_H,DIFF_H MOV MUL1_L,DIFF_L MOV SUB1_L,NX ;標(biāo)度變換程序清單:BDCHAN: MOV SUB1_L,AINC NX MOV SUB1_H,NX MOV SUB2_L,N0 INC N0 MOV SUB2_H,N0 ACALL SUB2 MOV MUL2_H,DIFF_H MOV MUL2_L,DIFF_L ACALL MULTD ;求

MOV DIV1_H,PR_H MOV DIV1_L,PR_L MOV SUB1_L,NM ;INC NXINC NM MOV SUB1_H,NM MOV SUB2_L,N0 INC N0 MOV SUB2_H,N0 ACALL SUB2 MOV DIV2_H,DIFF_H MOV DIV2_L,DIFF_L ACALL DUBDIV ;

CLR C MOV A,DIV1_LINC NMADDC A,A0 MOV AX,A INC A0 MOV A,DIV1_H ADDC A,A0 MOV AX,A ;

RETADDC A,A0雙字節(jié)減法子程序(SUB2)雙字節(jié)減法子程序(SUB2)程序入口:被減數(shù)放在SUB1_H、SUB1_L單元中,減數(shù)放在SUB2_H、SUB2_L單元中;程序出口:差放在DIFF_H、DIFF_L單元中。SUB2: CLR C MOV A,SUB1_L ;A←SUB1_L SUBB A,SUB2_L ;低8位相減

MOV DIFF_L,A ;保存低8位差值

MOV A,SUB1_H ;A←SUB1_H SUBB A,SUB2_H ;高8位相減

MOV DIFF_H,A ;保存高8位差值

RET雙字節(jié)減法子程序(SUB2)雙字節(jié)減法子程序(SUB2)程雙字節(jié)無(wú)符號(hào)數(shù)除法(DUBDIV)程序入口:被除數(shù)存放在DIV1_H、DIV1_L單元中,除數(shù)存放在DIV2_H、DIV2_L單元中;程序出口:商存放在DIV1_H、DIV1_L單元中,余數(shù)存放在L_L和L_H單元中。DUBDIV: CLR A ;余數(shù)單元清零

MOV L_H,A MOV L_L,A MOV R0,#10H ;設(shè)置除法移位次數(shù)LOOP: CLR C ;移位

MOV A,DIV1_L

雙字節(jié)無(wú)符號(hào)數(shù)除法(DUBDIV)程序入口:被除數(shù)存放在DRLC A MOV DIV1_L,A MOV A,DIV1_H RLC AMOV DIV1_H,A MOV A,L_L RLC A MOV L_L,A MOV A,L_H RLC A MOV L_H,A MOV PSW.5,CRLC ALP1: MOV A,L_L ;余數(shù)單元減除數(shù)

SUBB A,DIV2_L MOV R1,A MOV A,L_HSUBB A,DIV2_H JB PSW.5ADD1 JC SMALLADD1: MOV L_H,A MOV A,R1 MOV L_L,A INC DIV1_L ;商加一SAMLL: DJNZ R0,LOOP

LP1: MOV A,L_L ;余數(shù)單元減除數(shù)MOV 20H,L_H ;四舍五入

JB 07H,

ADD_D ;商的最高位為1,則轉(zhuǎn)ADD_D CLR C ;判斷小數(shù)部分是否大于0.5

MOV A,L_LRLC A MOV L_L,A MOV A,L_H RLC A SUBB A,DIV2_H

MOV 20H,L_H ;四舍五入JC RETURN ;小數(shù)部分小于0.5,退出

JNZ ADD1 ;小數(shù)部分大于0.5,則轉(zhuǎn)ADD_D MOV A,L_L SUBB A,DIV2_L JC RETURNADD_D: CLR C ;商加一

INC DIV1_L MOV A,DIV1_H ADDC A,#00H MOV DIV1_H,ARETURN: RET返回本節(jié)JC RETURN ;小數(shù)部分小于0.5,退出返回本節(jié)3.5上下限報(bào)警處理程序設(shè)計(jì)報(bào)警程序主要有以下幾個(gè)步驟組成:(1)采樣被測(cè)參數(shù)。(2)比較采樣值和給定的上下限。(3)根據(jù)比較結(jié)果執(zhí)行相應(yīng)的處理程序。返回本章首頁(yè)3.5上下限報(bào)警處理程序設(shè)計(jì)報(bào)警程序主要有以下幾個(gè)步驟例3-3設(shè)計(jì)一簡(jiǎn)單的單字節(jié)上下限報(bào)警程序,當(dāng)采樣值超出上、下限時(shí),分別執(zhí)行相應(yīng)的報(bào)警處理程序。設(shè)上限報(bào)警值存放在Amax單元,下限報(bào)警值存放在Amin單元,采樣值存放在SAMP單元。簡(jiǎn)單上下限報(bào)警程序程序清單如下:例3-3設(shè)計(jì)一簡(jiǎn)單的單字節(jié)上下限報(bào)警程序,當(dāng)采樣值超出上、… ….

CLR C ;清進(jìn)位標(biāo)志位

MOV A,Amax ;讀上限報(bào)警值

SUBB A,SAMP ;判斷是否超過(guò)上限報(bào)警值

JC UPPER ;超過(guò)上限,轉(zhuǎn)報(bào)警處理程序

MOV A,Amin ;讀下限報(bào)警值

SUBB A,SAMP ;判斷是否超過(guò)下限報(bào)警值

JNC LOWER ;超過(guò)下限,轉(zhuǎn)報(bào)警處理程序 … …UPPER: 超上限處理程序。LOWER: 超下限處理程序。…例3-4設(shè)計(jì)一報(bào)警處理程序。只有采樣值連續(xù)3次異常時(shí),系統(tǒng)才進(jìn)行報(bào)警處理。報(bào)警程序流程框圖如圖3-23所示。例3-4設(shè)計(jì)一報(bào)警處理程序。只有采樣值連續(xù)3次異常時(shí),系圖3-23報(bào)警程序流程框圖圖3-23報(bào)警程序流程框圖報(bào)警程序清單:… …

MOV NUM,#03H … …CHECK: CLR C ;清進(jìn)位標(biāo)志位

MOV A,Amax ;讀上限報(bào)警值

SUBB A,SAMP ;判斷是否超過(guò)上限報(bào)警值

JC ABNORMAL ;超過(guò)上限,轉(zhuǎn)ABNORMAL MOV A,Amin ;讀下限報(bào)警值

SUBB A,SAMP ;判斷是否超過(guò)下限報(bào)警值

JNC ABNORMAL ;超過(guò)下限,轉(zhuǎn)ABNORMAL

報(bào)警程序清單:…CLR FLAG ;采樣正常,清采樣異常標(biāo)志位

AJMP RETUABNORMAL: JB FLAG,ABNOR_L ;上次采樣異常,轉(zhuǎn)ABNOR_L MOV NUM,#03H ;上次采樣正常,重置允許連續(xù)異常次數(shù)

SETB FLAG ;置位采樣異常標(biāo)志位

AJMP RETUABNOR_L: MOV A,NUM ;讀允許連續(xù)采樣異常次數(shù)

JZ ALARM ;允許采樣異常次數(shù)=0,執(zhí)行報(bào)警處理程序

DEC NUM ;允許采樣異常次數(shù)≠0,允許采樣異常次數(shù)減1

SETB FLAG ;置位采樣異常標(biāo)志位

AJMP RETUALARM1: ... ;報(bào)警處理程序 ...RETU: RET返回本節(jié)CLR FLAG ;采樣正常,清采樣異常標(biāo)志位返回本節(jié)3.6LED數(shù)碼管顯示程序設(shè)計(jì)3.6.1LED顯示器件工作原理3.6.2LED顯示方式3.6.3LED顯示程序設(shè)計(jì)返回本章首頁(yè)3.6LED數(shù)碼管顯示程序設(shè)計(jì)3.6.1LED顯示3.6.1LED顯示器件工作原理LED顯示器件是通過(guò)發(fā)光二極管顯示字段的器件。在單片機(jī)控制系統(tǒng)中常用的是由7段LED數(shù)碼管,它的顯示塊中有8個(gè)發(fā)光二極管,7個(gè)發(fā)光二極管組成字符“8”,1個(gè)發(fā)光二極管構(gòu)成小數(shù)點(diǎn),因此有人稱(chēng)7段LED數(shù)碼管為8段顯示器。LED數(shù)碼管的管腳配置如圖3-24所示。LED數(shù)碼管有共陰極和共陽(yáng)極兩類(lèi),如圖3-24所示。共陰極LED數(shù)碼管的發(fā)光二極管的陰極共地,如圖3.25(a),當(dāng)某個(gè)發(fā)光二極管的陽(yáng)極電壓為高電平時(shí),二極管發(fā)光;而共陽(yáng)極LED數(shù)碼管是發(fā)光二極管的陽(yáng)極共接,如圖3.25(b),當(dāng)某個(gè)二極管的陰極電壓為低電平時(shí),二極管發(fā)光。3.6.1LED顯示器件工作原理LED顯示器件是通過(guò)發(fā)圖3-24LED數(shù)碼管管腳配置圖(a)共陰極(b)共陽(yáng)極圖3-25兩類(lèi)LED數(shù)碼管圖3-24LED數(shù)碼管管腳配置圖(a)共陰極(表3-27段LED段選碼返回本節(jié)表3-27段LED段選碼返回本節(jié)3.6.2LED顯示方式在微機(jī)控制系統(tǒng)中,一般利用N塊LED顯示器件構(gòu)成N位LED顯示器。構(gòu)成原理圖如圖3-26所示。圖3-26N位LED顯示器原理圖3.6.2LED顯示方式在微機(jī)控制系統(tǒng)中,一般利用N塊1.LED靜態(tài)顯示方式圖3-27表示的是一個(gè)四位靜態(tài)LED顯示電路。圖3-27四位靜態(tài)LED顯示電路1.LED靜態(tài)顯示方式圖3-27四位靜態(tài)LED顯示電路2.LED動(dòng)態(tài)顯示方式LED動(dòng)態(tài)顯示就是將所有顯示位的段選線并聯(lián)在一起,由一個(gè)8位I/O口控制,而位選線則由其他的I/O口控制。圖3-28表示的是一個(gè)8位動(dòng)態(tài)LED顯示電路。圖3-288位動(dòng)態(tài)LED顯示電路返回本節(jié)2.LED動(dòng)態(tài)顯示方式圖3-288位動(dòng)態(tài)LED顯示電路3.6.3LED顯示程序設(shè)計(jì)1.硬件譯碼顯示程序設(shè)計(jì)MC14495是CMOSBCD——七段十六進(jìn)制鎖存、譯碼驅(qū)動(dòng)芯片。MC14495能完成BCD碼至十六進(jìn)制數(shù)的鎖存和譯碼,并具有驅(qū)動(dòng)能力。利用MC14495實(shí)現(xiàn)的8位靜態(tài)LED顯示接口電路如圖3-29所示。3.6.3LED顯示程序設(shè)計(jì)1.硬件譯碼顯示程序設(shè)計(jì)圖3-29利用MC14495實(shí)現(xiàn)的8位靜態(tài)LED顯示接口電路圖圖3-29利用MC14495實(shí)現(xiàn)的8位靜態(tài)LED顯示接口設(shè)要顯示的BCD碼放在以DATA為首址的RAM單元中。顯示程序設(shè)計(jì)如下:… …

MOV R0,DATA ;設(shè)置數(shù)據(jù)區(qū)首址

MOV A,@R0 ;讀要顯示的BCD碼

ADD A,#80H MOV P1,A ;顯示第一位

INC R0 MOV A,@R0 ADD A,#90H MOV P1,A ;顯示第二位

INC R0 … …. INC R0 MOV A,@R0 ADD A,#F0H MOV P1,A ;顯示第八位設(shè)要顯示的BCD碼放在以DATA為首址的RAM單元中。顯示程2.軟件譯碼顯示程序設(shè)計(jì)(1)軟件譯碼靜態(tài)顯示電路(2)軟件譯碼動(dòng)態(tài)顯示電路2.軟件譯碼顯示程序設(shè)計(jì)(1)軟件譯碼靜態(tài)顯示電路(1)軟件譯碼靜態(tài)顯示電路圖3-30為一采用8位串行輸入/串、并輸出移位寄存器74LS595的兩位軟件譯碼靜態(tài)顯示電路。該電路采用串行輸入控制方案實(shí)現(xiàn)字符的顯示,大大減少了I/O口線的占用。如果需要顯示更多的位數(shù)時(shí),只需級(jí)連多片74LS595即可,且不必占用其他的I/O口線。(1)軟件譯碼靜態(tài)顯示電路圖3-30為一采用8位串行輸入/圖3-30通過(guò)74LS595實(shí)現(xiàn)的軟件譯碼靜態(tài)顯示電路圖3-30通過(guò)74LS595實(shí)現(xiàn)的軟件譯碼靜態(tài)顯示電路顯示程序流程框圖如圖3-31所示。(a)顯示主程序(b)串行輸出程序顯示程序流程框圖如圖3-31所示。(a)顯示主程序顯示程序清單:DAT BIT P1.7 TRAN BIT P1.6 PUL BIT P1.5SHOW: CLR C MOV DPTR,#3000H ;設(shè)定段選碼的初始地址START: MOV A,DATA ;讀要顯示的數(shù)據(jù)

ANL A,#0F0H ;屏蔽低4位

SWAP A ;高4位和低4位互換

ACALL SET8WEI ;串行輸出子程序調(diào)用

MOV A,DATA ANL A,#0FH ;屏蔽高4位顯示程序清單:DAT BIT P1.7ACALL SET8WEI ;串行輸出子程序調(diào)用

NOP NOP SETB TRAN ;鎖存并顯示輸出數(shù)據(jù)

NOP NOP CLR TRAN NOP NOP RETSET8WEI: MOVC A,@A+DPTR ;讀顯示字符的段選碼

MOV R7,#08H ;設(shè)置循環(huán)次數(shù)ACALL SET8WEI ;串行輸出子程序調(diào)用SET81: RRC A ;段選碼的最低位移入進(jìn)位標(biāo)志位中

JC SETH ;CY=1,轉(zhuǎn)至SETHCLR DAT ;P1.7為低電平

NOP CLR PUL ;送移位脈沖

NOP SETB PUL NOP AJMP SET82SETH: SETB DAT ;P1.7為高電平SET81: RRC A ;段選碼的最低位移入進(jìn)位標(biāo)志位中NOP CLR PUL NOP SETB PUL NOPSET82: DJNZ R7,SET81 ;段選碼輸出未完成,繼續(xù)

RET ORG 3000H ;共陰極LED顯示段選碼

DB 3FH,06H,5BH,4FH,06H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71HNOP(2)軟件譯碼動(dòng)態(tài)顯示電路圖3.32給出的是通過(guò)8155擴(kuò)展實(shí)現(xiàn)的8位LED動(dòng)態(tài)顯示接口。圖中利用PA口輸出段選碼,PB口輸出位選碼。利用8155擴(kuò)展實(shí)現(xiàn)的動(dòng)態(tài)顯示程序流程如圖3-32所示。(2)軟件譯碼動(dòng)態(tài)顯示電路圖3.32給出的是通過(guò)8155擴(kuò)利用8155擴(kuò)展實(shí)現(xiàn)的動(dòng)態(tài)顯示程序清單:DISP: MOV A,#03H ;8155初始化數(shù)據(jù)

MOV DPTR,#7F00H ;8155命令/狀態(tài)寄存器地址

MOVX @DPTR,A ;設(shè)置顯示數(shù)據(jù)首址

MOV R7,#7FH ;設(shè)置位選字

MOV A,R7DS1: MOV DPTR,#7F02H ;指向PB口

MOVX @DPTR,A ;送位選字

DEC DPTR ;指向PA口

MOV A,@R0 ;讀顯示數(shù)據(jù)

ADD A,#0DH ;#0DH為從查表指令到段選碼的首址利用8155擴(kuò)展實(shí)現(xiàn)的動(dòng)態(tài)顯示程序清單:DISP: MOVMOVC A,@A+PC ;查段選碼

MOVX @DPTR,A ;送段選碼至PA口

ACALL DELAY1 ;延時(shí)1毫秒

INC R0 ;指向下一顯示數(shù)據(jù)

MOV A,R7 JNB ACC.0,OVER ;判斷是否顯示完8位數(shù)據(jù)

RR A ;未顯示完,改變位選字

MOV R7,A AJMP DS1 ;繼續(xù)顯示下一位OVER: RET DB 3FH,06H,5BH,4FH,06H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H返回本節(jié)MOVC A,@A+PC ;查段選碼返回本節(jié)3.7定時(shí)程序設(shè)計(jì)3.7.1軟件定時(shí)程序3.7.2硬件定時(shí)程序返回本章首頁(yè)3.7定時(shí)程序設(shè)計(jì)3.7.1軟件定時(shí)程序返回本章3.7.1軟件定時(shí)程序雙循環(huán)定時(shí)程序流程如圖3-33所示。3.7.1軟件定時(shí)程序雙循環(huán)定時(shí)程序流程如圖3-33所如取N=166(0A6H),上述簡(jiǎn)單軟件定時(shí)程序的定時(shí)時(shí)間就是1ms,如果需要250ms的定時(shí)時(shí)間,則所需的外循環(huán)的次數(shù)為250(0FAH)。程序如下:DELAY250: MOV R6,#0FAH ;置外循環(huán)次數(shù)DELAY1: MOV R7,#0A6H ;置內(nèi)循環(huán)次數(shù)

NOP ;空操作指令D1: NOP DJNZ R7,D1 ;內(nèi)循環(huán)未結(jié)束,繼續(xù)

DJNZ R6,DELAY1 ;外循環(huán)未結(jié)束,繼續(xù)

RET返回本節(jié)如取N=166(0A6H),上述簡(jiǎn)單軟件定時(shí)程序的定時(shí)時(shí)間就3.7.2硬件定時(shí)程序51系列單片機(jī)內(nèi)部有兩個(gè)16位的可編程定時(shí)器T0和T1,分別由TH0、TL0和TH1、TL1兩個(gè)8位計(jì)數(shù)器構(gòu)成。T0和T1的定時(shí)功能是通過(guò)對(duì)單片機(jī)內(nèi)部計(jì)數(shù)脈沖的計(jì)數(shù)實(shí)現(xiàn)的。因?yàn)槊總€(gè)機(jī)器周期產(chǎn)生一個(gè)計(jì)數(shù)脈沖,因此根據(jù)單片機(jī)的晶振頻率就可以計(jì)算出定時(shí)器的計(jì)數(shù)頻率。這樣,如果確定了計(jì)數(shù)值,就能計(jì)算出定時(shí)時(shí)間,而知道了定時(shí)時(shí)間也可計(jì)算出計(jì)數(shù)器的預(yù)置值。定時(shí)器控制寄存器(TCON)和工作方式控制寄存器(TMOD)分別控制定時(shí)器的運(yùn)行和工作方式。3.7.2硬件定時(shí)程序51系列單片機(jī)內(nèi)部有兩個(gè)16位的可1.定時(shí)器簡(jiǎn)介T(mén)MOD寄存器是控制定時(shí)器工作方式的8位專(zhuān)用寄存器。寄存器的高4位定義T1,低4位定T0。各位的具體定義如表3-3所示。1.定時(shí)器簡(jiǎn)介2.硬件定時(shí)程序設(shè)計(jì)例3-5設(shè)單片機(jī)的晶振頻率為6MHz,利用T0產(chǎn)生周期為500μs的等寬正方波脈沖,通過(guò)P1.7端口輸出。(1)選擇工作方式(2)計(jì)算預(yù)置計(jì)數(shù)值(3)TMOD寄存器初始化(4)程序設(shè)計(jì)2.硬件定時(shí)程序設(shè)計(jì)程序設(shè)計(jì)主程序:

MOV TMOD,#02H ;T0工作方式2

MOV TH0,#83H ;設(shè)置計(jì)數(shù)初始值

MOV TL0,#83H ;保存計(jì)數(shù)初始值

SETB EA ;開(kāi)中斷

SETB ET0 ;T0中斷允許

SETB TR0 ;啟動(dòng)定時(shí)WAIT: AJMP WAIT ;等待中斷中斷服務(wù)程序:

CPL P1.7 ;方波輸出

RETI ;中斷返回程序設(shè)計(jì)主程序:例3-6設(shè)計(jì)一個(gè)能夠自動(dòng)記錄秒、分和小時(shí)的計(jì)時(shí)時(shí)鐘。程序設(shè)計(jì)分為初始化和中斷服務(wù)程序兩部分。初始化程序清單:ORG 0000H AJMP MAIN ORG 0003H AJMP INT0 ;設(shè)置外部中斷0中斷入口地址

ORG 000BH例3-6設(shè)計(jì)一個(gè)能夠自動(dòng)記錄秒、分和小時(shí)的計(jì)時(shí)時(shí)鐘。AJMP TIME0 ;設(shè)置T0中斷入口地址

ORG 001BH AJMP COUN1 ;設(shè)置T1中斷入口地址MAIN: MOV SEC,#00H ;秒存儲(chǔ)單元清0

MOV MIN,#00H ;分存儲(chǔ)單元清0

MOV HUR,#00H ;小時(shí)存儲(chǔ)單元清0

MOV TMOD,#41H ;T1為計(jì)數(shù)方式,定時(shí)器0工作方式1

MOV TH0,#17H ;設(shè)置T0的計(jì)數(shù)初值

MOV TL0,#0B6H MOV TH1,#0FFH ;設(shè)置T1的計(jì)數(shù)初值

MOV TL1,#0F7HAJMP TIME0 ;設(shè)置T0中斷入口地址SETB EA ;開(kāi)中斷

SETB IT0 ;外中斷0中斷請(qǐng)求信號(hào)為脈沖方式

SETB ET1 ;T1中斷允許

SETB ET0 ;T0中斷允許

SETB EX0 ;外中斷0中斷允許

SETB TR0 ;啟動(dòng)定時(shí)器0

SETB TR1 ;啟動(dòng)計(jì)數(shù)器1HERE: AJMP HERE ;等待中斷SETB EA ;開(kāi)中斷中斷服務(wù)程序分以下幾部分。定時(shí)器T0定時(shí)中斷程序清單:TIME0: CLR EA ;關(guān)中斷

SETB P3.5 ;發(fā)計(jì)數(shù)脈沖

NOP CLR P3.5 NOP MOV TH0,#17H ;加載T0計(jì)數(shù)值

MOV TL0,#0B6H SETB EA ;開(kāi)中斷

RETI ;中斷返回中斷服務(wù)程序分以下幾部分。定時(shí)器T0定時(shí)中斷程序清單:計(jì)數(shù)器T1計(jì)數(shù)中斷程序清單:COUN1: CLR EA ;關(guān)中斷

SETB P3.2 ;發(fā)送脈沖,通知1秒計(jì)時(shí)到

NOP CLR P3.2 NOP MOV TH1,#0FFH ;加載T1計(jì)數(shù)值

MOV TL1,#0F7H SETB EA RETI計(jì)數(shù)器T1計(jì)數(shù)中斷程序清單:COUN1: CLR EA ;外部中斷0中斷程序流程如圖3-34所示。外部中斷0中斷程序流程如圖3-34所示。外部中斷0中斷程序清單:INT0: CLR EA ;關(guān)中斷

INC SEC ;秒存儲(chǔ)單元加1

MOV A,SEC CJNE A,#3CH,S_SHOW ;判斷是否到60秒

INC MIN ;60秒到,分存儲(chǔ)單元加1

MOV SEC,#00H ;秒存儲(chǔ)單元清0S_SHOW: ACALL HTOBCD ;調(diào)用16進(jìn)制數(shù)轉(zhuǎn)化為BCD碼子程序

ACALL DISP ;調(diào)用顯示子程序,顯示秒

MOV A,MIN CJNE A,#3CH,M_SHOW ;判斷是否到60分外部中斷0中斷程序清單:INT0: CLR EA ;關(guān)中斷INC HUR ;60分到,小時(shí)存儲(chǔ)單元加1

MOV MIN,#00H ;小時(shí)存儲(chǔ)單元清0M_SHOW: ACALL HTOBCD ;調(diào)用16進(jìn)制數(shù)轉(zhuǎn)化為BCD碼子程序

ACALL DISP ;調(diào)用顯示子程序,顯示分

MOV A,HUR CJNE A,#18H,H_SHOW ;判斷是否到24小時(shí)

MOV HUR,#00H ;24小時(shí)到,小時(shí)存儲(chǔ)單元清0H_SHOW: ACALL HTOBCD ;調(diào)用16進(jìn)制數(shù)轉(zhuǎn)化為BCD碼子程序

ACALL DISP ;調(diào)用顯示子程序,顯示小時(shí)

SETB EA ;開(kāi)中斷

RETI ;中斷返回返回本節(jié)INC HUR ;60分到,小時(shí)存儲(chǔ)單元加1返回本節(jié)3.8鍵盤(pán)控制程序設(shè)計(jì)3.8.1非編碼鍵盤(pán)的掃描程序設(shè)計(jì)3.8.2編碼鍵盤(pán)返回本章首頁(yè)3.8鍵盤(pán)控制程序設(shè)計(jì)3.8.1非編碼鍵盤(pán)的掃描程3.8.1非編碼鍵盤(pán)的掃描程序設(shè)計(jì)下面以通過(guò)8155擴(kuò)展I/O口組成的4×8非編碼鍵盤(pán)為例介紹行列式鍵盤(pán)工作原理及掃描程序設(shè)計(jì)。通過(guò)8155擴(kuò)展I/O口組成的4×8非編碼鍵盤(pán)如圖3-35所示。3.8.1非編碼鍵盤(pán)的掃描程序設(shè)計(jì)下面以通過(guò)8155擴(kuò)圖3-358155擴(kuò)展I/O口組成的4×8非編碼鍵盤(pán)圖3-358155擴(kuò)展I/O口組成的4×8非編碼鍵盤(pán)1.鍵盤(pán)工作原理確定按下的鍵的鍵號(hào):為了方便鍵處理程序的設(shè)計(jì),一般采用依次排列鍵值的方法,以保證鍵值和鍵號(hào)一致。比如,根據(jù)行列式鍵盤(pán)工作原理,圖3-35中的32個(gè)鍵的鍵值如下(X為任意值):FEXE FDXE FBXE F7XE EFXE DFXE BFXE 7FXEFEXD FDXD FBXD F7XD EFXD DFXD BFXD 7FXDFEXB FDXB FBXB F7XB EFXB DFXB BFXB 7FXBFEX7 FDX7 FBX7 F7X7 EFX7 DFX7 BFX7 7FX71.鍵盤(pán)工作原理2.鍵盤(pán)掃描程序設(shè)計(jì)較常用的鍵盤(pán)掃描的工作方式有編程掃描方式和中斷掃描方式兩種。(1)編程掃描方式設(shè)在主程序中已將8155的PA口為基本輸出口,PC口為基本輸入口。鍵盤(pán)掃描程序流程框圖如圖3-36所示。2.鍵盤(pán)掃描程序設(shè)計(jì)較常用的鍵盤(pán)掃描的工作方式有編程掃描圖3-36鍵盤(pán)掃描程序流程框圖圖3-36鍵盤(pán)掃描程序流程框圖鍵盤(pán)掃描子程序清單:KEY1: ACALL KS1 ;有無(wú)鍵按下子程序

JNZ LK1 ;有鍵按下,轉(zhuǎn)去抖延時(shí)

AJMP KEY1 ;無(wú)鍵按下,繼續(xù)掃描LK1: ACALL DELA12 ;12ms延時(shí)程序調(diào)用

ACALL KS1 ;判斷鍵是否真正按下

JNZ LK2 ;有鍵按下,轉(zhuǎn)逐列掃描

AJMP KEY1 ;無(wú)鍵按下,繼續(xù)掃描LK2: MOV R2,#0FEH ;設(shè)置首列掃描字

MOV R4,#00H ;保存首列號(hào)LK4: MOV DPTR,#7F01H ;列掃描字送至PA口鍵盤(pán)掃描子程序清單:KEY1: ACALL KS1 ;有無(wú)MOV A,R2 MOVX @DPTR,A INC DPTR ;指向PC口

INC DPTR MOVX A,@DPTR ;讀入行狀態(tài)

JB ACC.0,LONE ;第0行無(wú)鍵按下,轉(zhuǎn)LONE MOV A,#00H ;有鍵按下,設(shè)置行首鍵號(hào)

AJMP LKP ;轉(zhuǎn)求鍵號(hào)LONE: JB ACC.1,LTWO ;第1行無(wú)鍵按下,轉(zhuǎn)LTWO MOV A,#08H ;有鍵按下,設(shè)置行首鍵號(hào)

AJMP LKP ;轉(zhuǎn)求鍵號(hào)LTWO: JB ACC.2,LTHR ;第2行無(wú)鍵按下,轉(zhuǎn)LTHR MOV A,#10H ;有鍵按下,設(shè)置行首鍵?

AJMP LKP ;轉(zhuǎn)求鍵號(hào)MOV A,R2LTHR: JB ACC.3,NEXT ;第3行無(wú)鍵按下,查下一列

MOV A,#18H ;有鍵按下,設(shè)置行首鍵LKP: ADD A,R4 ;求鍵號(hào),鍵號(hào)=行首鍵號(hào)+列號(hào)

PUSH ACC ;保護(hù)鍵號(hào)LK3: ACALL KS1 ;等待鍵釋放

JNZ LK3 ;鍵未釋放,繼續(xù)等待

POP ACC ;鍵釋放,鍵號(hào)送A AJMP OVER ;鍵掃描結(jié)束NEXT: INC R4 ;列號(hào)加1,指向下一列

MOV A,R2 ;判斷8列掃描完否

JNB ACC.7,KND ;8列掃描完,繼續(xù)

RL A ;掃描字左移一位

MOV R2,A ;送掃描字

AJMP LK4 ;轉(zhuǎn)下一列掃描LTHR: JB ACC.3,NEXT ;第3行無(wú)鍵按下,查KND: AJMP KEY1OVER: RET ;鍵掃描結(jié)束KS1: MOV DPTR,#7F01H ;指向PA口

MOV A,#00H ;設(shè)置掃描字

MOVX @DPTR,A ;掃描字送PA口

INC DPTR ;指向PC口

INC DPTR MOVX A,@DPTR ;讀入PC口狀態(tài)

CPL ;以高電平表示有鍵按下

ANL A,#0FH ;屏蔽高4位

RETKND: AJMP KEY1(2)中斷掃描工作方式圖3-37中斷掃描方式鍵盤(pán)接口返回本節(jié)(2)中斷掃描工作方式圖3-37中斷掃描方式鍵盤(pán)接口返回3.8.2編碼鍵盤(pán)8279和51系列的單片機(jī)的連接非常簡(jiǎn)單,其接口電路的一般連接方法如圖3-38所示。圖3-38通過(guò)8279擴(kuò)展的鍵盤(pán)接口電路3.8.2編碼鍵盤(pán)8279和51系列的單片機(jī)的連接非常當(dāng)有鍵按下時(shí),8279內(nèi)部由硬件自動(dòng)生成一個(gè)與之相應(yīng)的代碼,編碼的格式如表3-4所示。當(dāng)有鍵按下圖3-38中8×8鍵盤(pán)的鍵值如表3-5所示。返回本節(jié)圖3-38中8×8鍵盤(pán)的鍵值如表3-5所示。返回本節(jié)3.9抗干擾技術(shù)3.9.1數(shù)字信號(hào)的輸入輸出技術(shù)3.9.2指令冗余技術(shù)3.9.3軟件陷阱技術(shù)3.9.4程序運(yùn)行監(jiān)視系統(tǒng)返回本章首頁(yè)3.9抗干擾技術(shù)3.9.1數(shù)字信號(hào)的輸入輸出技術(shù)3.9.1數(shù)字信號(hào)的輸入輸出技術(shù)由于干擾信號(hào)的持續(xù)時(shí)間非常短,因此在采集數(shù)字信號(hào)時(shí),可重復(fù)采集,直到連續(xù)兩次或兩次以上的采樣結(jié)果完全相同,才視輸入信號(hào)有效。如果多次采樣的結(jié)果總是變化不定,則視為采樣無(wú)效。在滿(mǎn)足實(shí)時(shí)性要求的前提下,如果在相鄰的信號(hào)采集過(guò)程之間插入延時(shí)程序,就可以抑制較寬的脈沖,抗干擾的效果會(huì)更好。返回本節(jié)3.9.1數(shù)字信號(hào)的輸入輸出技術(shù)由于干擾信號(hào)的持續(xù)時(shí)間3.9.2指令冗余技術(shù)由于51系列單片機(jī)指令長(zhǎng)度不超過(guò)3個(gè)字節(jié),當(dāng)PC值改變后,可能出現(xiàn)三種情況:(1)PC值指向一單字節(jié)指令,程序自動(dòng)納入正軌;(2)PC值指向一雙字節(jié)指令,由于雙字節(jié)指令有操作數(shù),則有可能將操作數(shù)當(dāng)成操作碼執(zhí)行;(3)PC值指向一三字節(jié)指令,由于三字節(jié)指令有兩個(gè)操作數(shù),出錯(cuò)的幾率更大。返回本節(jié)3.9.2指令冗余技術(shù)由于51系列單片機(jī)指令長(zhǎng)度不超過(guò)3.9.3軟件陷阱技術(shù)下面以?xún)蓴?shù)比較的程序演示如何在程序區(qū)設(shè)置軟件陷阱。CLR CY ;進(jìn)位標(biāo)志清零

MOV A,M SUBB A,N ;M-N JZ MNEQU ;轉(zhuǎn)M=N處理程序

JC LESS ;轉(zhuǎn)M<N處理程序BIG: … … ;M>N處理程序

AJMP BPIONT ;轉(zhuǎn)至斷裂點(diǎn)

3.9.3軟件陷阱技術(shù)下面以?xún)蓴?shù)比較的程序演示如何在程N(yùn)OP ;設(shè)置陷阱

NOP LJMP ERRORMNEQU: … ;M=N處理程序…

AJMP BPIONT NOP NOP LJMP ERRORLESS: … ;M<N處理程序 …NOP ;設(shè)置陷阱AJMP BPIONT NOP NOP LJMP ERRORBPIONT: RET ;斷裂點(diǎn)NOP ;陷阱

NOPLJMP ERR返回本節(jié)AJMP BPIONT返回本節(jié)3.9.4程序運(yùn)行監(jiān)視系統(tǒng)圖3-39是一種簡(jiǎn)單實(shí)用的程序運(yùn)行監(jiān)視系統(tǒng)。3.9.4程序運(yùn)行監(jiān)視系統(tǒng)圖3-39是一種簡(jiǎn)單實(shí)用的程下面的程序運(yùn)行監(jiān)視程序選用T0進(jìn)行系統(tǒng)監(jiān)視,定時(shí)時(shí)間為16ms。MOV TMOD,#01H ;設(shè)置T0為定時(shí)器

SEB ET0 ;允許T0中斷

SETB PT0 ;設(shè)置T0中斷為高優(yōu)先級(jí)

MOV TH0,#0E0H ;定時(shí)時(shí)間為16ms(6MHz晶振)

SETB TR0 ;啟動(dòng)定時(shí)器

SETB EA ;開(kāi)中斷返回本節(jié)下面的程序運(yùn)行監(jiān)視程序選用T0進(jìn)行系統(tǒng)監(jiān)視,定時(shí)時(shí)間為16m3.10電機(jī)控制程序設(shè)計(jì)3.10.1中小功率直流電機(jī)調(diào)速原理3.10.2開(kāi)環(huán)脈沖調(diào)速系統(tǒng)3.10.3帶方向控制的脈沖調(diào)速系統(tǒng)返回本章首頁(yè)3.10電機(jī)控制程序設(shè)計(jì)3.10.1中小功率直流電3.10.1中小功率直流電機(jī)調(diào)速原理設(shè)電機(jī)在恒定電壓下的轉(zhuǎn)速為Vmax,控制信號(hào)的占空比D=t/τ(其中t代表通電時(shí)間,τ代表脈沖周期),則電機(jī)的的轉(zhuǎn)速和控制信號(hào)的關(guān)系可用如下公式表示:

V=Vmax×D(3-10)返回本節(jié)3.10.1中小功率直流電機(jī)調(diào)速原理設(shè)電機(jī)在恒定電壓下3.10.2開(kāi)環(huán)脈沖調(diào)速系統(tǒng)1.開(kāi)環(huán)脈沖調(diào)速系統(tǒng)原理開(kāi)環(huán)脈沖調(diào)速系統(tǒng)的原理如圖3-40所示。3.10.2開(kāi)環(huán)脈沖調(diào)速系統(tǒng)1.開(kāi)環(huán)脈沖調(diào)速系統(tǒng)原理圖3-41是一個(gè)單片機(jī)控制的開(kāi)環(huán)脈沖調(diào)速系統(tǒng)示意圖。圖3-41是一個(gè)單片機(jī)控制的開(kāi)環(huán)脈沖調(diào)速系統(tǒng)示意圖。2.開(kāi)環(huán)脈沖調(diào)速系統(tǒng)程序設(shè)計(jì)脈沖寬度的調(diào)制可通過(guò)軟件延時(shí)法實(shí)現(xiàn)。設(shè)定圖3-41中8155的地址為7F00H,PA、PC口為基本輸入口,PB口為基本輸出口。則調(diào)速系統(tǒng)的軟件延時(shí)法程序流程圖如圖3-42所示。2.開(kāi)環(huán)脈沖調(diào)速系統(tǒng)程序設(shè)計(jì)軟件延時(shí)法的程序清單:MOV DPTR,#7F00H ;設(shè)置8155命令寄存器地址

MOV A,#06H MOVX @DPTR,A ;設(shè)置PA、PB、PC口的工作方式

MOV DPTR,#7F03H ;指向PC口CHECK: MOVX A,@DPTR ;檢測(cè)是否啟動(dòng)電機(jī)

JNB ACC.5,CHECK ;繼續(xù)檢測(cè)TURN: MOV DPTR,#7F01H ;設(shè)置PA口地址

MOVX A,@DPTR ;讀開(kāi)關(guān)數(shù)N軟件延時(shí)法的程序清單:MOV DPTR,#7F00H ;設(shè)MOV B,A ;保存N INC DPTR ;指向PB口

MOV A,#80H ;啟動(dòng)電機(jī)

MOV A,B ;延時(shí)N個(gè)單位時(shí)間

MOV R7,ADELA1: ACALL DELAY DJNZ R7,DELA1 MOV A,#00H ;輸出停止脈沖MOV B,A ;保存N

MOVX @DPTR,A MOV A,B CPL A ;求

MOV R7,A ;延時(shí)個(gè)單位時(shí)間DELA2: ACALL DELAY DJNZ R7,DELA2 INC DPTR ;指向PC口

MOVX A,@DPTR ;檢測(cè)是否停止運(yùn)行

JB ACC.5TURN ;繼續(xù)運(yùn)行,轉(zhuǎn)TURNOFF: RET ;停止運(yùn)行返回本節(jié) MOVX @DPTR,A返回本節(jié)3.10.3帶方向控制的脈沖調(diào)速系統(tǒng)在很多場(chǎng)合下,不僅要求電機(jī)能夠正向旋轉(zhuǎn),而且還能反向旋轉(zhuǎn)。電機(jī)旋轉(zhuǎn)方向控制原理圖如圖3-43所示。3.10.3帶方向控制的脈沖調(diào)速系統(tǒng)在很多場(chǎng)合下,不僅由圖3-43可以看出,當(dāng)開(kāi)關(guān)S1和S4閉合時(shí),電機(jī)正向旋轉(zhuǎn);開(kāi)關(guān)S2和S3閉合時(shí),電機(jī)反向旋轉(zhuǎn);開(kāi)關(guān)S3和S4閉合時(shí),電機(jī)繞組被短路處于剎車(chē)狀態(tài);所有開(kāi)關(guān)都打開(kāi)時(shí),電機(jī)處于自由滑行狀態(tài)。電機(jī)的工作狀態(tài)真值表如表3-6所示。由圖3-43可以看出,當(dāng)開(kāi)關(guān)S1和S4閉合時(shí),電機(jī)正向旋轉(zhuǎn);雙向電機(jī)控制系統(tǒng)原理圖如圖3-44所示。雙向電機(jī)控制系統(tǒng)原理圖如圖3-44所示。雙向電機(jī)的脈沖調(diào)速控制,首先要判斷電機(jī)的旋轉(zhuǎn)方向,根據(jù)要求的方向輸出相應(yīng)的控制代碼,然后再進(jìn)行脈沖寬度調(diào)速控制??刂瞥绦蛄鞒虉D如圖3-45所示。返回本節(jié)雙向電機(jī)的脈沖調(diào)速控制,首先要判斷電機(jī)的旋轉(zhuǎn)方向,根據(jù)要求的3.11步進(jìn)電機(jī)控制3.11.1步進(jìn)電機(jī)的工作原理3.11.2步進(jìn)電機(jī)控制系統(tǒng)3.11.3步進(jìn)電機(jī)控制程序的設(shè)計(jì)返回本章首頁(yè)3.11步進(jìn)電機(jī)控制3.11.1步進(jìn)電機(jī)的工作原理3.11.1步進(jìn)電機(jī)的工作原理步進(jìn)電機(jī)的結(jié)構(gòu)原理圖如圖3-46所示。返回本節(jié)3.11.1步進(jìn)電機(jī)的工作原理步進(jìn)電機(jī)的結(jié)構(gòu)原理圖如圖3.11.2步進(jìn)電機(jī)控制系統(tǒng)典型的步進(jìn)電機(jī)控制系統(tǒng)如圖

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論