freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機(jī)的無刷電機(jī)控制系統(tǒng)設(shè)計(jì)(編輯修改稿)

2025-07-17 12:41 本頁面
 

【文章內(nèi)容簡介】 ,最后進(jìn)行整合,形成一個(gè)完整的軟件控制系統(tǒng)。 系統(tǒng)程序總體設(shè)計(jì)考慮此控制程序不是很復(fù)雜,為了不影響程序執(zhí)行速度,程序全部采用匯編語言編寫。單片機(jī)控制應(yīng)用系統(tǒng)的硬件確定后,接下來就要進(jìn)行軟件的設(shè)計(jì),設(shè)計(jì)的主要內(nèi)容是應(yīng)用系統(tǒng)的主程序和各應(yīng)用模塊程序。整個(gè)系統(tǒng)是在應(yīng)用程序的控制下進(jìn)行的,應(yīng)用程序由主程序和各個(gè)子程序構(gòu)成。 此系統(tǒng)采用結(jié)構(gòu)化程序設(shè)計(jì)方法(對(duì)于較大的系統(tǒng),更應(yīng)如此)。這是一種自上而下的編程方法,即把總的控制過程逐步細(xì)分,分化成一個(gè)個(gè)的子過程。一直分化到所導(dǎo)出的子過程能直接用編程語言來實(shí)現(xiàn)時(shí)為止。這種設(shè)計(jì)思路把注意力集中到編程中最容易出錯(cuò)的一點(diǎn),即程序的邏輯結(jié)構(gòu),只要總體邏輯結(jié)構(gòu)是正確的,再復(fù)雜的程序也可以按劃分出來的邏輯功能模塊逐個(gè)設(shè)計(jì)出來。有了這一設(shè)計(jì)思想,下來的工作就是編寫各模塊子代碼,最后再整合。 軟件流程圖與部分代碼 主程序設(shè)計(jì),。系統(tǒng)上電后,為高則啟動(dòng)系統(tǒng)(清零各工作區(qū),開中斷),亮工作指示燈,否則等待系統(tǒng)啟動(dòng)。系統(tǒng)啟動(dòng)后進(jìn)入工作查詢狀態(tài)(, ),是否有正轉(zhuǎn),反轉(zhuǎn),停止命令。有,進(jìn)入相應(yīng)程序工作,否則繼續(xù)查詢。:開始初始化各控制端口,清零顯示速度寄存器(40H43H)轉(zhuǎn)到正轉(zhuǎn)子程序轉(zhuǎn)到反轉(zhuǎn)子程序開中斷T1,(2S定時(shí))置100MS定時(shí)器初值TH1=3CH,TL1=0B0H啟動(dòng)命令?NYYY轉(zhuǎn)到停止子程序正轉(zhuǎn)命令?反轉(zhuǎn)命令?停止命令?YNNN啟動(dòng)命令查詢 主程序流程圖 模塊子程序設(shè)計(jì)1. 中斷子程序系統(tǒng)選用6M晶振,定時(shí)100MS,計(jì)數(shù)器初值為TH1=3CH,TL1=B0H。系統(tǒng)測(cè)速是間隔2S讀取并更新一次速度寄存器的值,所以還得設(shè)一寄存器(30H),檢測(cè)是否定時(shí)到2S,定時(shí)到,調(diào)用數(shù)值轉(zhuǎn)換子程序,將速度寄存器(SP_L,SP_H)的值倍乘30后,轉(zhuǎn)換為十進(jìn)制BCD碼,分別依次存入40H43H單元。最后重新開中斷,返回原程序。中斷子程序流程圖如下圖 :中斷入口重新裝入定時(shí)器初值(30H)+1送30H30H送寄存器A清零30H,調(diào)用Z_HUAN子程序,清零速度寄存器(SP_L,SP_H)開中斷A=14H ?中斷返回NY30H,定時(shí)計(jì)數(shù)器單元,SP_L(32H)速度寄存器地位,SP_H(33H)速度寄存器高位圖 中斷子程序流程圖2. 正、反轉(zhuǎn)控制模塊子程序設(shè)計(jì) 本模塊的硬件連接如下:, 。系統(tǒng)運(yùn)行時(shí),若接到正/反轉(zhuǎn)命令,則跳到正/反轉(zhuǎn)程序入口,首先進(jìn)行軟件消抖(延時(shí)10MS,再判斷按鍵是否按下)后,發(fā)現(xiàn)按鍵并未真正按下,返回源程序;若按鍵的確按下,執(zhí)行正/反轉(zhuǎn)程序,首先置正/反轉(zhuǎn)標(biāo)志(Z_B/F_B)為“1” ,設(shè)定啟動(dòng)速度,給SD(34H)速度控制寄存器設(shè)定一正轉(zhuǎn)/反轉(zhuǎn)啟動(dòng)初值。指針寄存器(DPTR)指向正轉(zhuǎn)/反轉(zhuǎn)控制字表首地址。讀取霍爾信號(hào),判斷電機(jī)位置信息,根據(jù)位置信息查表,輸出相應(yīng)的控制字,查詢有無加/減速,急停命令,有調(diào)用相應(yīng)程序,否則程序繼續(xù)往下執(zhí)行,查詢有無停止命令,有轉(zhuǎn)到停止,否則返回正轉(zhuǎn)/反轉(zhuǎn)程序,繼續(xù)輸出下一控制字。:正/反轉(zhuǎn)程序入口滅告警指示燈,置正反轉(zhuǎn)標(biāo)志延時(shí)10MS按鍵按下?NY設(shè)定正轉(zhuǎn)/反轉(zhuǎn)啟動(dòng)速度SD調(diào)用檢測(cè)電機(jī)當(dāng)前位置子程序,SD值送(31H)表號(hào)值送A根據(jù)位置信息送相應(yīng)的控制字表號(hào)A=05H ?速度寄存器加1根據(jù)相對(duì)應(yīng)的表地址,查正轉(zhuǎn)/反轉(zhuǎn)表控制字送P1口,調(diào)用10MS延時(shí)程序NYY調(diào)用加速程序轉(zhuǎn)到急停程序轉(zhuǎn)到停止程序31H減1值送31H加速命令?急停命令?停止命令?31H=0 ?返回YNYNYNN 正反轉(zhuǎn)子程序流程圖3. 速度顯示模塊子程序開始速度寄存器值倍乘30調(diào)數(shù)值轉(zhuǎn)換程序十六進(jìn)制轉(zhuǎn)換為十進(jìn)制分別將轉(zhuǎn)換后的BCD碼,個(gè)位(40H),十位(41H),百位(42H),千位(43H)調(diào)動(dòng)態(tài)顯示程序返回 速度顯示子程序流程圖4. 停止子程序流程圖進(jìn)入停止程序,首先消抖,確認(rèn)按鍵的確按下。緊接著判斷是哪里程序接受到得的停止命令,若是系統(tǒng)剛啟動(dòng),電機(jī)還沒接到正反轉(zhuǎn)命令時(shí),選擇直接停止,退出系統(tǒng),再跳轉(zhuǎn)到等待系統(tǒng)啟動(dòng)查詢。若是正反轉(zhuǎn)時(shí)接收到得停止命令,先判斷是正轉(zhuǎn)還是反轉(zhuǎn),然后進(jìn)入相應(yīng)的緩慢減速停止程序,最后跳轉(zhuǎn)到等待系統(tǒng)啟動(dòng)查詢。開始延時(shí)10MS,判斷停止按鍵是否的確按下=1 ?Z_B=1 ?F_B=1 ?Z_TAB值送DPTR直接停止F_TAB值送DPTR正轉(zhuǎn)緩慢減速停止反轉(zhuǎn)緩慢減速停止退出NYYNYN啟動(dòng)命令查詢F_B:正轉(zhuǎn)標(biāo)志位,內(nèi)存單元(35H) Z_B:反轉(zhuǎn)標(biāo)志位, 內(nèi)存單元(36H)Z_TAB:正轉(zhuǎn)控制字表首地址 F_TAB:反轉(zhuǎn)控制字表首地址 停止子程序流程圖5. 其他小模塊核心代碼(1)加減速功能核心代碼 轉(zhuǎn)速主要決定于相位變換的頻率,而頻率的變換則由單片機(jī)輸出的控制字決定,所以只要控制輸出控制字的頻率就可以達(dá)到控制轉(zhuǎn)速的目的。程序中SD(34H)為控制字輸出頻率寄存器。J_SU:JNB ,EXIT1 。判斷加速按鍵是否按下ACALL DELAY 。延時(shí)10MS,判斷按鍵是否的確按下JNB ,EXIT1 。按鍵未按下,返回原工作程序DEC SDDEC SD 。設(shè)定加速度系數(shù)。INC SD 。INC SD 。設(shè)定減速度系數(shù)EXIT1:RET(2)急停功能核心代碼實(shí)現(xiàn)急停,就是讓所有的功率管截止。J_TING:ACALL DISPLAY 。延時(shí)10MS,判斷按鍵是否的確按下JNB ,G_K0 。停止按鍵未按下,返回原工作程序CLR 。亮告警指示燈CLR 。AH管截止CLR 。BH管截止CLR 。CH管截止SETB 。AL管截止SETB 。BL管截止SETB 。CL管截止JMP GONGZUO 。返回工作查詢G_K0:LJMP G_KONGRET(3)測(cè)速核心代碼 測(cè)速采用反復(fù)查詢的方式,只要檢測(cè)到轉(zhuǎn)滿一圈,速度寄存器就加一C_SU: 。電機(jī)轉(zhuǎn)速測(cè)量程序,最高顯示值9999R/MINC SP_LMOV A,SP_LCJNE A,64H,C_0MOV SP_L,0INC SP_HMOV A,SP_HCJNE A,64H,C_0MOV SP_H,00HC_0:RET(4)霍爾信號(hào)查詢核心代碼 CHA_H_R:MOV A,P3 。,H1,H2SWAP A 。高四位與低四位互換ANL A,00000111B 。讀取霍爾信號(hào)MOV H_R,A 。霍爾信號(hào)送霍爾值存儲(chǔ)器RET(5)數(shù)值轉(zhuǎn)換(十六進(jìn)制轉(zhuǎn)換為十進(jìn)制BCD碼)核心代碼Z_HUAN: 。十六進(jìn)制數(shù)轉(zhuǎn)換未BCD碼,送動(dòng)態(tài)顯示寄存器40H43HCALL MULD 。調(diào)用乘法程序MOV B,0AHMOV A,SP_L 。十六進(jìn)制轉(zhuǎn)換為十進(jìn)制(十位,個(gè)位)DIV ABMOV 40H,BMOV B,0AHDIV ABMOV 41H,BADD A,SP_H 。十六進(jìn)制轉(zhuǎn)換為十進(jìn)制(千位,百位)MOV B,0AHDIV ABMOV 42H,BMOV 43H,ARET(6)十六位二進(jìn)制數(shù)乘法核心代碼MULD: 。速度處理程序(倍乘30),將速度轉(zhuǎn)換到R/MMOV A,SP_LMOV B,30MUL ABMOV R4,BMOV SP_L,AMOV A,SP_HMOV B,30MUL ABADD A,R4MOV SP_H,ARET第五章 系統(tǒng)調(diào)試 硬件調(diào)試 首先在焊接前檢查元件是否有壞的(很容易檢查的),確認(rèn)無誤后開始安裝元件,焊接時(shí)一定要做到細(xì)心認(rèn)真,必須避免假焊,以上兩步完成后,才開始進(jìn)入硬件調(diào)試。1. 硬件靜態(tài)的調(diào)試 (1)排除邏輯故障   這類故障往往由于設(shè)計(jì)和加工制板過程中工藝性錯(cuò)誤所造成的。主要包括錯(cuò)線、開路、短路。排除的方法是首先將加工的印制板認(rèn)真對(duì)照原理圖,看兩者是否一致。應(yīng)特別注意電源系統(tǒng)檢查,以防止電源短路和極性錯(cuò)誤,并重點(diǎn)檢查系統(tǒng)總線(地址總線、數(shù)據(jù)總線和控制總線)是否存在相互之間短路或與其它信號(hào)線路短路。必要時(shí)利用數(shù)字萬用表的短路測(cè)試功能,可以縮短排錯(cuò)時(shí)間。 (2)排除元器件失效   造成這類錯(cuò)誤的原因有兩個(gè):一個(gè)是元器件買來時(shí)就已壞了;另一個(gè)是由于安裝錯(cuò)誤,造成器件燒壞。可以采取檢查元器件與設(shè)計(jì)要求的型號(hào)、規(guī)格和安裝是否一致。在保證安裝無誤后,用替換方法排除錯(cuò)誤。 (3)排除電源故障 在通電前,一定要檢查電源電壓的幅值和極性,否則很容易造成集成塊損壞。加電后檢查各插件上引腳的電位,一般先檢查VCC與GND之間電位,若在5V~4.8V之間屬正常。若有高壓,聯(lián)機(jī)仿真器調(diào)試時(shí),將會(huì)損壞仿真器等,有時(shí)會(huì)使應(yīng)用系統(tǒng)中的集成塊發(fā)熱損壞。2. 單片機(jī)測(cè)試(1)測(cè)試單片機(jī)I/O口執(zhí)行一條簡單指令,外接是8個(gè)發(fā)光二極管,通過二極管的發(fā)光觀察I/O口是否完好。MOV P1/P2,55H;MOV P1/P2,0AAH;(2)測(cè)試單片機(jī)中斷系統(tǒng) ,觀察二極管是不是一秒亮一秒滅。ORG 0000HLJMP MAIN 。轉(zhuǎn)到主程序ORG 001BHlJMP INT_T1 。轉(zhuǎn)到中斷程序ORG 0030HMOV TMOD,10H 。定時(shí)器工作方式1(十六位計(jì)數(shù)器)MOV TH1,3CH 。定時(shí)100MS(晶振6MHZ)MOV TL1,0B0HMOV IE,88H 。允許T1中斷MOV 30H,00H 。清零時(shí)間計(jì)數(shù)器SETB TR1 。開中斷SETB LJMP $ 。轉(zhuǎn)到工作命令查詢INT_T1:MOV TH1,3CH 。重新裝載定時(shí)器值,定時(shí)100MSMOV TL1,0B0HINC 30H 。中斷計(jì)數(shù)器MOV A,30HCJNE A,0AH,L1 。2S定時(shí)CLR MOV 30H,00HL1:SETB TR1 。重新開中斷RETI 。中斷返回 軟件調(diào)試軟件主要使用的Keil C編譯軟件,下面就將調(diào)試過程中遇到的問題和調(diào)試經(jīng)驗(yàn)做一簡要說明:1. 由于Keil C對(duì)中文支持不太好,因而會(huì)出現(xiàn)顯示的光標(biāo)與光標(biāo)實(shí)際所在不一致的現(xiàn)象,這會(huì)對(duì)修改中文注釋造成影響。在Windows2000下面,我們可以把字體設(shè)置為Courier,這樣就可以顯示正常。WindowsXP系統(tǒng)基本不會(huì)出現(xiàn)此問題。 2. 當(dāng)使用有片外內(nèi)存的MCU的時(shí)候,肯定要設(shè)置標(biāo)志位,并且編譯方式要選擇大模式,否則會(huì)出錯(cuò)。 3. 當(dāng)使用Keil C跟蹤程序運(yùn)行狀態(tài)的時(shí)候,要把引起Warning的語句屏蔽,否則有可能跟蹤語句的時(shí)候會(huì)出錯(cuò)。
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1