1 設(shè)計(jì)任務(wù)與要求
工業(yè)生產(chǎn)中過(guò)程控制是流量測(cè)量與儀表應(yīng)用的一大領(lǐng)域,流量與溫度、壓力和物位一起統(tǒng)稱為過(guò)程控制中的四大參數(shù),人們通過(guò)這些參數(shù)對(duì)生產(chǎn)過(guò)程進(jìn)行監(jiān)視與控制。對(duì)流體流量進(jìn)行正確測(cè)量和調(diào)節(jié)是保證生產(chǎn)過(guò)程安全經(jīng)濟(jì)運(yùn)行、提高產(chǎn)品質(zhì)量、降低物質(zhì)消耗、提高經(jīng)濟(jì)效益、實(shí)現(xiàn)科學(xué)管理的基礎(chǔ)。流量的檢測(cè)和控制在化工、能源電力、冶金、石油等領(lǐng)域應(yīng)用廣泛。
本設(shè)計(jì)的主要內(nèi)容是對(duì)流量進(jìn)行檢測(cè),主要由流量傳感器采集流量信息,然后經(jīng)過(guò)AD轉(zhuǎn)換器將連續(xù)的模擬信號(hào)離散化后傳給單片機(jī),單片機(jī)在軟件系統(tǒng)的控制下,根據(jù)預(yù)先的設(shè)置和預(yù)期的控制要求,通過(guò)步進(jìn)電機(jī)來(lái)精確控制閥門的開(kāi)度,實(shí)現(xiàn)對(duì)流量的精確控制。其中,硬件電路的搭接是本設(shè)計(jì)的重點(diǎn),控制系統(tǒng)軟件的設(shè)計(jì)是本課題的核心。硬件電路部分,采用AT89C51單片機(jī),外擴(kuò)EPROM存儲(chǔ)器,構(gòu)成單片機(jī)控制系統(tǒng)的主體部分。通過(guò)電磁流量傳感器,AD轉(zhuǎn)換器進(jìn)行輸入,通過(guò)控制步進(jìn)電機(jī)帶動(dòng)閥門來(lái)控制輸出。一些其他的功能,如設(shè)定值輸入,數(shù)碼管顯示則通過(guò)擴(kuò)展I/O接口芯片8155來(lái)完成相應(yīng)的功能。系統(tǒng)軟件設(shè)計(jì)部分,分別對(duì)撥碼盤設(shè)定值輸入,步進(jìn)電機(jī)控制,AD轉(zhuǎn)換控制,數(shù)碼管顯示等程序進(jìn)行了設(shè)計(jì),并且設(shè)計(jì)了主程序和流量控制PID程序。
2 系統(tǒng)設(shè)計(jì)方案
2.1 系統(tǒng)設(shè)計(jì)思路
系統(tǒng)的總體設(shè)計(jì)思想是流量傳感器采集到流量信息,通過(guò)變換器,轉(zhuǎn)化為電信號(hào),AD轉(zhuǎn)換器將模擬電信號(hào)轉(zhuǎn)化為離散信號(hào),傳給單片機(jī)。單片機(jī)軟件系統(tǒng)根據(jù)事先的設(shè)定值對(duì)采集的信息進(jìn)行處理,輸出離散的控制信號(hào)。DA轉(zhuǎn)換器將離散的控制信號(hào)轉(zhuǎn)化為模擬電量。通過(guò)模擬電量來(lái)控制閥門的動(dòng)作,從而調(diào)節(jié)流量,實(shí)現(xiàn)流量的精確控制。
2.2 系統(tǒng)設(shè)計(jì)原理
系統(tǒng)的工作原理是流量傳感器采集到流量信息,通過(guò)變換器,轉(zhuǎn)化為電信號(hào),AD轉(zhuǎn)換器將模擬電信號(hào)轉(zhuǎn)化為離散信號(hào),傳給單片機(jī)。單片機(jī)軟件系統(tǒng)根據(jù)事先的設(shè)定值對(duì)采集的信息進(jìn)行處理,輸出離散的控制信號(hào)。DA轉(zhuǎn)換器將離散的控制信號(hào)轉(zhuǎn)化為模擬電量。通過(guò)模擬電量來(lái)控制閥門的動(dòng)作,從而調(diào)節(jié)流量,實(shí)現(xiàn)流量的精確控制。
系統(tǒng)原理框圖如下:
圖2 系統(tǒng)原理框圖
其中,電磁流量計(jì)作為流量傳感器,采集流量信息,經(jīng)放大器放大后送到AD轉(zhuǎn)換器。AD轉(zhuǎn)換器將連續(xù)的模擬量轉(zhuǎn)化為單片機(jī)能接受的離散的數(shù)字量。單片機(jī)收到流量信號(hào)后,在控制系統(tǒng)軟件的作用下,發(fā)出相應(yīng)的執(zhí)行命令給執(zhí)行機(jī)構(gòu)——步進(jìn)電機(jī)。步進(jìn)電機(jī)帶動(dòng)閥門動(dòng)作,對(duì)流體流量進(jìn)行控制
2.3 系統(tǒng)實(shí)現(xiàn)的功能
該控制系統(tǒng)的基本功能有如下幾點(diǎn):
(1).流量顯示功能
a 復(fù)位顯示功能:
b 平均流量顯示內(nèi)容折算成立方米
c 累積流量顯示內(nèi)容為立方米
d 累積流量數(shù)值的保護(hù)不受停電的影響
e 顯示精度均保留到小數(shù)點(diǎn)后兩位
(2).對(duì)水泵的工作狀態(tài)進(jìn)行監(jiān)視
a 水泵工作正常,則顯示平均流量和累積流量的值
b 當(dāng)水泵停止工作時(shí)LED顯示部分顯示的內(nèi)容和復(fù)位時(shí)相同
(3).對(duì)電動(dòng)閥門有較好的控制功能
3硬件設(shè)計(jì)
3.1 硬件系統(tǒng)的組成
本系統(tǒng)主要由水泵、流量傳感器、電動(dòng)閥門和MCS-51單片機(jī)控制系統(tǒng)以及液體管線和控制線、監(jiān)視線等組成。
系統(tǒng)結(jié)構(gòu)框圖如下所示:
圖3.1 系統(tǒng)結(jié)構(gòu)框圖
3.2 硬件電路及接口設(shè)計(jì)
3.2.1 MCS-51單片機(jī)與BCD碼撥盤的接口設(shè)計(jì)
(1)BCD碼撥盤
撥盤種類很多,作為人機(jī)接口使用的最方便的撥盤是十進(jìn)制輸入,BCD碼輸出的BCD碼撥盤。這種撥盤為四片BCD碼撥盤拼接的4位十進(jìn)制輸入撥盤組。每片撥盤具有0~9十個(gè)位置,每個(gè)位置都有相應(yīng)的數(shù)字顯示,代表?yè)鼙P輸入的十進(jìn)制數(shù)。因此,每片撥盤可代表一位十進(jìn)制數(shù)。
表3.1 BCD碼撥盤的輸入輸出狀態(tài)表
*:輸出狀態(tài)為1時(shí),表示該輸出線與A相遇。
(2)BCD碼撥盤與單片機(jī)的接口
單片BCD碼撥盤可以與任何一個(gè)4位I/O口或擴(kuò)展I/O口相連,以輸入BCD碼,A端接+5V。為了使輸出端在不與控制端A相連時(shí)有確定的電平,常將8,4,2,1輸出端通過(guò)電阻拉低。圖3.2是AT89C51通過(guò)P1.0~P1.3與單片BCD碼撥盤的接口電路。
圖3.2 AT89C51與撥盤的接口電路
3.2.2 步進(jìn)電機(jī)控制接口
步進(jìn)電機(jī)是一種將電脈沖轉(zhuǎn)換成相應(yīng)角位移或線位移的電磁機(jī)械裝置,也是一種能把輸出機(jī)械位移增量和輸入數(shù)字脈沖對(duì)應(yīng)的驅(qū)動(dòng)器件。步進(jìn)電機(jī)具有快速啟停能力,只要電機(jī)的負(fù)荷不超過(guò)它所能提供的動(dòng)態(tài)轉(zhuǎn)矩,就能通過(guò)輸入脈沖來(lái)控制它在一瞬間啟動(dòng)和停止。步進(jìn)電機(jī)的步距角和轉(zhuǎn)速只和輸入的脈沖頻率有關(guān),和環(huán)境溫度、氣壓、沖擊和振動(dòng)無(wú)關(guān),也不受電網(wǎng)電壓的波動(dòng)和負(fù)載變化的影響,它每轉(zhuǎn)一周都有固定的步數(shù),步進(jìn)精確和步距誤差不會(huì)長(zhǎng)期積累。因此,步進(jìn)電機(jī)在需要精確定位場(chǎng)合應(yīng)用廣泛。
(一)步進(jìn)電機(jī)的工作原理
電機(jī)定子上均勻分布有六個(gè)磁極,相鄰兩磁極間夾角為60°,磁極上繞有三相控制繞組,分別對(duì)應(yīng)于A、B和C三相電源。轉(zhuǎn)子外側(cè)均勻分布有40個(gè)齒,每個(gè)齒的齒距為9°。定子的每個(gè)極弧上也有5個(gè)齒,定子和轉(zhuǎn)子的齒寬和齒距都相同,而每個(gè)定子磁極的極距為60°,故每個(gè)磁極所占的齒距數(shù)不是整數(shù)。若按ABCA順序輪流循環(huán)通電,則步進(jìn)馬達(dá)就會(huì)沿順時(shí)針?lè)较蛞悦總(gè)脈沖3°的規(guī)律轉(zhuǎn)動(dòng)起來(lái);若把通電順序改為ABCA,則步進(jìn)馬達(dá)就會(huì)沿逆時(shí)針?lè)较蛞幻總(gè)脈沖3°的規(guī)律轉(zhuǎn)動(dòng)。這就是所謂的三相單三拍通電方式。
(二)步進(jìn)電機(jī)控制系統(tǒng)
上述分析表明:步進(jìn)電機(jī)是否旋轉(zhuǎn)是由控制繞組中輸入脈沖的有無(wú)來(lái)控制的,每步轉(zhuǎn)過(guò)的角度和方向是由三相控制繞組中的通電方式?jīng)Q定的。因此,步進(jìn)電機(jī)的控制是要求單片機(jī)軟件產(chǎn)生按上述規(guī)律變化的時(shí)序脈沖,然后通過(guò)接口和驅(qū)動(dòng)放大電路來(lái)驅(qū)動(dòng)步進(jìn)電機(jī)控制繞組工作。步進(jìn)電機(jī)控制系統(tǒng)由硬件電路和軟件程序兩部分組成。89C51對(duì)三相步進(jìn)電機(jī)的控制電路如圖3.3所示。
圖3.3 AT89C51與步進(jìn)電機(jī)接口電路
3.2.3 電磁流量計(jì)電路
電磁流量計(jì)電路如圖3.4和圖3.5所示,它是利用法拉第法則檢測(cè)管內(nèi)流動(dòng)流體的流量。激勵(lì)線圈中流過(guò)的電流通常采用矩形波,電極間產(chǎn)生的流量信號(hào)與激勵(lì)波形相似,而電平為40
V~4mV左右。將該電壓信號(hào)放大并采樣,變換為4~20mV的輸出信號(hào)。檢測(cè)流體的性質(zhì),通常與流體的共同電位C對(duì)比,流量信號(hào)特別是A、B兩極間的直流成分相重疊。輸出阻抗跟樣,變換為4~20mV的輸出信號(hào)。檢測(cè)流體的性質(zhì),通常與流體的共同電位C對(duì)比,
流量信號(hào)特別是A、B兩極間的直流成分相重疊。輸出阻抗跟流體的電導(dǎo)率有關(guān),最大為3M
。因此輸入部件的構(gòu)件要求能把交流放大,并且阻抗高。
圖3.4示出了電磁流量計(jì)初級(jí)輸入放大電路,加入C5和C6是為了消除因A1、A2的輸入偏置電流和失調(diào)電流流過(guò)R2、R3、R5、R6而產(chǎn)生的直流偏壓。該直流偏壓含有由溫度引起變化約300mV電壓。
圖3.5示出第二級(jí)的采樣和保持電路,通常4066型模擬開(kāi)關(guān)在輸入輸出端間的電壓為18V、85℃時(shí)規(guī)定為1
A,因此輸入輸出端間開(kāi)路時(shí)的電位差,應(yīng)抑制在二極管正向電壓0.6V以下。為了提高A4、A5的保持特性,輸入級(jí)使用結(jié)型場(chǎng)效應(yīng)管的運(yùn)算放大器。
圖3.4 電磁流量計(jì)初級(jí)輸入放大電路
3.2.4 MCS-51對(duì)LED的接口
1.LED數(shù)碼顯示管原理
LED數(shù)碼管結(jié)構(gòu)簡(jiǎn)單,價(jià)格便宜。八段LED顯示管有八只發(fā)光二極管組成,編號(hào)是a、b、c、d、e、f、g和SP,分別和同名管腳相連。七段LED顯示管比八段LED少一只發(fā)光二極管SP,其他的和八段LED相同。
八段LED數(shù)碼顯示管原理很簡(jiǎn)單,是通過(guò)同名管腳是所加電平高低來(lái)控制發(fā)光二極管是否點(diǎn)亮而顯示不同字形的。例如:若在共陰LED管的SP、g、f、e、d、c、b、a管腳上分別加上7FH控制電平(即:SP上為0伏,不亮;其余為TTL高電平,全亮),則LED顯示管顯示字形為“8”。7FH是按SP、g、f、e、d、c、b、a順序排列后的十六進(jìn)制編碼(0為TTL低電平,1為TTL高電平),常稱為字形碼。因此,LED上所顯示字形不同,相應(yīng)字形碼也不一樣。八段共陰能顯示的字形及相應(yīng)字形碼如表7-5所列。該表常放在內(nèi)存,SGTB為表的起始地址,各地址騙移量為相應(yīng)字形碼對(duì)表始址的項(xiàng)數(shù)。由于“B”和“8”、“D”和“0”字形相同,故“B”和“D”均以小寫字母“b”和“d”顯示。
圖3.5 第二級(jí)的采樣和保持電路
LED數(shù)碼顯示管分為共陰和共陽(yáng)兩種。為共陰八段LED管時(shí),所有發(fā)光二極管陰極共連后接到引腳G,G腳為控制端,用于控制LED是否點(diǎn)亮。
為共陽(yáng)八段LED數(shù)碼顯示管時(shí),所有發(fā)光二極管陽(yáng)極共連后接到G腳。5因此,共陰和共陽(yáng)所需字形碼正好相反,如表3.2所列
2.MCS-51對(duì)LED的顯示接口電路
MCS-51對(duì)LED管的顯示可以分為靜態(tài)和動(dòng)態(tài)兩種。靜態(tài)顯示的特點(diǎn)是各LED管能穩(wěn)定地同時(shí)顯示各自字形;動(dòng)態(tài)顯示是指各LED輪流一遍一遍顯示各自字符,人們因視覺(jué)惰性而看到的是各LED似乎在同時(shí)顯示不同字形。
(1)靜態(tài)顯示
在單片機(jī)應(yīng)用系統(tǒng)中,常采用MC14495芯片作為L(zhǎng)ED的靜態(tài)顯示接口,它可以和LED顯示器直接連接。MC14495芯片是由4位鎖存器、地址譯碼器和筆段ROM陣列以及帶有限流電阻的驅(qū)動(dòng)電路(輸出電流為10mA)等三部分電路組成。
(2)動(dòng)態(tài)顯示
為了減少硬件開(kāi)鎖,提高系統(tǒng)可靠性和降低成本,單片機(jī)控制系統(tǒng)通常采用動(dòng)態(tài)掃描顯示。圖4.7示出了89C51通過(guò)8155對(duì)六只共陽(yáng)LED的接口電路。圖中,B口和所有LED的a、b、c、d、e、f、g、SP引線相連,各LED控制端G和8155C口相連,故B口為字形口和C口為字位口,因?yàn)镃PU可以通過(guò)C口控制各LED是否點(diǎn)亮。8155的端口地址分配如下:
8000H 命令/狀態(tài)口
8001H A口
8002H B口(字形口)
8003H C口(字位口)
8004H 定時(shí)器低8位口
8005H 定時(shí)器高8位口
8000H—FFFFH 8155I/O重疊地址區(qū)
8000H—00FFH 8155 RAM 基本地址區(qū)
8000H—7FFFH 8155 RAM 重疊地址區(qū)
動(dòng)態(tài)顯示采用軟件法把欲顯示十六進(jìn)制數(shù)(或BCD碼)轉(zhuǎn)換為相應(yīng)字形碼,故它通常需要在RAM區(qū)建立一個(gè)顯示緩沖區(qū)。顯示緩沖區(qū)內(nèi)包含的存儲(chǔ)單元個(gè)數(shù)常和系統(tǒng)中LED顯示器個(gè)數(shù)相等。顯示緩沖區(qū)的起始地址很重要,它決定了顯示緩沖區(qū)在RAM中的位置。
當(dāng)顯示器位數(shù)較少時(shí),采用靜態(tài)顯示的方法是適合的。當(dāng)位數(shù)較多時(shí),用靜態(tài)顯示所需的I/O太多,一般采用動(dòng)態(tài)顯示方法。
圖 3.6 LED接口電路
3.2.5 MCS-51和A/D的接口
圖3.7 ADC0809與單片機(jī)的接口
MCS-51和ADC接口必須弄清和處理好三個(gè)問(wèn)題:①要給START線送一個(gè)100ns寬的起動(dòng)正脈沖;②獲取EOC線上的狀態(tài)信息,因?yàn)樗茿/D轉(zhuǎn)換的結(jié)束標(biāo)志;③要給“三態(tài)輸出鎖存器”分配一個(gè)端口地址,也就是給OE線上送一個(gè)地址譯碼器輸出信號(hào)。
MCS-51和ADC接口通?梢圆捎貌樵兒椭袛鄡煞N方式。采用查詢法傳送數(shù)據(jù)時(shí),MCS-51應(yīng)對(duì)EOC線查詢它的狀態(tài):若它為低電平,表示A/D轉(zhuǎn)換正在進(jìn)行,則MCS-51應(yīng)當(dāng)繼續(xù)查詢;若查詢到EOC變?yōu)楦唠娖,則就給OE線一個(gè)高電平,以便2-1—2-6線上提取A/D轉(zhuǎn)換后的數(shù)字量。CPU響應(yīng)中斷后,應(yīng)在中斷服務(wù)程序中使OE線變?yōu)楦唠娖,以提取A/D轉(zhuǎn)換后的數(shù)字量。
4 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件設(shè)計(jì)是該設(shè)計(jì)的核心,也是設(shè)計(jì)的重點(diǎn)和難點(diǎn)部分?刂葡到y(tǒng)軟件設(shè)計(jì)的好壞直接影響到該控制系統(tǒng)的控制功能,因此,要想做好本設(shè)計(jì),一個(gè)好的系統(tǒng)軟件是關(guān)鍵。
該控制系統(tǒng)的程序主要分為三部分:主程序、流量控制程序和各種中斷子程序。主程序完成系統(tǒng)的地址分配、系統(tǒng)初始化和各子程序的調(diào)用。流量控制程序通過(guò)PID控制算法,實(shí)現(xiàn)系統(tǒng)的數(shù)字化控制。各子程序完成相應(yīng)的各功能。
4.1 主程序設(shè)計(jì)
主程序部分,主要完成存儲(chǔ)器分配、系統(tǒng)初始化和系統(tǒng)整體控制等,并通過(guò)調(diào)用各子程序段,實(shí)現(xiàn)軟件的總體設(shè)計(jì)功能。
圖4.1 主程序流程圖
初始化:系統(tǒng)初始化程序的功能是對(duì)8155和89C51進(jìn)行初始化,使D/A輸出為0,步進(jìn)電機(jī)處于停機(jī)狀態(tài),將RAM中的標(biāo)志位和工作單元置為初始狀態(tài),提示符CPUREADY寫入緩沖器。更新顯示器子程序的功能是將顯示緩沖器的內(nèi)容,分別轉(zhuǎn)化為段數(shù)據(jù),輸出到8155。當(dāng)系統(tǒng)處于停機(jī)狀態(tài)時(shí),顯示器0~4顯示參數(shù),顯示器5~7顯示參數(shù)地址,所以73H~77H作為數(shù)據(jù)緩沖器,78H~7AH作為地址緩沖器,在運(yùn)行狀態(tài)時(shí),73H~77H作為瞬時(shí)流量緩沖器,78H~7FH作為累計(jì)流量緩沖器。初始化程序的流程如圖所示。
圖4.2 初始化流程圖
4.2 流量控制子程序
在流量測(cè)試的基礎(chǔ)上,把流量設(shè)定值和實(shí)際測(cè)試得到的瞬時(shí)流量進(jìn)行比較計(jì)算出誤差,采用數(shù)字PID調(diào)節(jié)算法,計(jì)算輸出到AD0809的變量Uio增量式PID控制算法的計(jì)算公式為:

式中:ei為本次實(shí)際測(cè)得的流量和設(shè)定值之差;
-
;

=
-
;
P為比例系數(shù);
I為積分系數(shù);
D為微分系數(shù);
輸出控制變量表達(dá)式為:
+ 
本程序占用資源:A,B,R0~R7,CY,F(xiàn)0。
程序如下:
PID1:MOV R0,#52H
MOV R1,#49H
LCALL FSUB
MOV R1,#46H
LCALL FSTR
MOV R1,#4CH
MOV R2,#06H
LCALL LPDM
LCALL LPDM
MOV R0,#4CH
MOV R1,#4FH
MOV 45H,48H
MOV A,4CH
MOV C,A。7
MOV F0,C
程序中 FSUB:3字節(jié)浮點(diǎn)數(shù)減法子程序;
FADD:3字節(jié)浮點(diǎn)數(shù)加法子程序;
FMUL:3字節(jié)浮點(diǎn)數(shù)乘法子程序;
FSTR:3字節(jié)浮點(diǎn)數(shù)減存放子程序。
4.3 中斷服務(wù)子程序
4.3.1 設(shè)定值輸入程序
本程序?qū)?位BCD碼按千、百、十、個(gè)依次存放在89C51片內(nèi)RAM的30H~33H單元中,每個(gè)地址單元的高4位為0,低4位為BCD碼。
RDS:MOV R0,#30H;初始化,存放單元首址
MOV R2,#7FH;P1口高4位置控制字及低4位置輸入方式MOV R3,#04H;讀入4個(gè)BCD碼
LOOP:MOV P1,A;P1口送控制字及低4位置輸入方式
MOV A,P1;讀如BCD碼
ANL A,#0FH;屏蔽高4位
MOV @R0,A;送入存儲(chǔ)單元
INC R0;指向下個(gè)存儲(chǔ)單元
MOV A,R2;準(zhǔn)備下一片撥盤的控制端置0
DJNZ R3,LOOP;未讀完返回
RET;讀完結(jié)束
4.3.2 A/D中斷子程序
A/D中斷子程序流程圖如下所示:
圖4.3 A/D中斷子程序
程序如下:
INT0: PUSH ACC ;保護(hù)現(xiàn)場(chǎng)
SETB PSW.3 ;選工作寄存器區(qū)1
MOV DPTR,#0DF01H;讀取8155A口數(shù)據(jù)
ANL A, #0F0H ;屏蔽低4位
JNB 02H, D51 ;判斷是否采樣零信號(hào)
D51: MOV C,ACC.0 ;萬(wàn)位和標(biāo)志位→荷重信號(hào)緩沖器
ND5: MOV A,R2 ;判斷是否讀出千位
JNB ACC.7,ND4
JNB 02H,D41 ;判斷是否采樣零信號(hào)
ANL A, #0FH ;千位→零信號(hào)緩沖器
SWAP A
ND4: JNB ACC.6, ND3 ;判斷是否讀出百位
JNB 02H,D31 ;判斷是否采樣零信號(hào)
MOV R1, #25H ;百位→零信號(hào)緩沖器
ND3: JNB ACC.5, ND2 ;判斷是否讀出十位
JNB 02H, D21 ;判斷是否采樣信號(hào)
MOV DPTR,#0DFF3H ;啟動(dòng)A/D轉(zhuǎn)換
MOV 2AH,24H ; 采樣數(shù)據(jù)送處理緩沖器
MOV 2FH,29H
SETB 03H ;置一次A/D采樣結(jié)束標(biāo)志
D14: POP PSW ;恢復(fù)現(xiàn)場(chǎng)
POP ACC
RETI
4.3.3 定時(shí)器中斷子程序
定時(shí)器T0中斷程序流程圖如下圖所示。程序如下:
圖4.4 定時(shí)器T0中斷
4.3.4 數(shù)碼管顯示子程序
在單片機(jī)內(nèi)部RAM的20H和21H單元中有四位十六進(jìn)制數(shù)(20H中為高兩位),以下是將其自左到右顯示出來(lái)的程序。
相應(yīng)程序如下:
ORG 2000H
SDIAPLAY:MOV A,20H ;20H中數(shù)送A
ANL A,#0F0H ;截取高4位
MOV P1,A ;送1#MC14495
MOV A,20H ;20H中數(shù)送A
SWAP A ;低4位送高4位
ANL A,#0F0H ;去掉低4位
INC A ;A1A0指向2#MC14495
ADD A,#02H ;A1A0指向3#MC14495
MOV P1,A ;送3#MC14495
MOV A,21H ;21H中數(shù)送A
SWAP A ;低4位送高4位
ANL A,#0F0H ;去掉低4位
RET
END
程序流程圖如下所示:
圖4.5 數(shù)碼管顯示子程序
4.3.5 步進(jìn)電機(jī)控制程序
步進(jìn)電機(jī)控制程序:
- ORG 2100H
- PUSH ACC ;保護(hù)現(xiàn)場(chǎng)
- MOV R4,#N ;步進(jìn)馬達(dá)步進(jìn)數(shù)送R4
- CLR C ;Cy清零
- ORL C,PSW.5 ;轉(zhuǎn)向標(biāo)志狀態(tài)送Cy
- JC ROTE ;若為反轉(zhuǎn),則轉(zhuǎn)ROTE
- MOV R0,#20H ;正轉(zhuǎn)模型始址送R0
- AJMP NEXT ; 轉(zhuǎn)入NEXT
- ROTE:MOV R0,#27H ;反轉(zhuǎn)模型始址送R0
- ACALL DELAY ;延時(shí)(形成脈寬)
- INC R0 ;準(zhǔn)備下個(gè)模型指針
- MOV A,#00H ;判斷送完一遍模型值
- JZ TPL ;若模型結(jié)束,則TPL
- LOOP:DJNZ R4,NEXT ;若步進(jìn)數(shù)未走完,則NEXT
- POP ACC ;恢復(fù)現(xiàn)場(chǎng)
- RET :返回
- TPL:MOV A,R0
- MOV R0,A ;恢復(fù)模型始址
- AJMP LOOP ;判斷步進(jìn)馬達(dá)步數(shù)走完?
- DELAY:MOV R2,#M1 ;延時(shí)
- DELAY1:MOV R2,#M2
- DELAY2:DEC A
- JNZ DELAY2
- DJNZ R2,DELAY1
- RET
- END
復(fù)制代碼
5 小結(jié)
通過(guò)課程設(shè)計(jì),使我加深了對(duì)所學(xué)理論知識(shí)的理解與鞏固,并能將課本上的純理論應(yīng)用到實(shí)踐中,進(jìn)一步加深了對(duì)知識(shí)的認(rèn)識(shí)。同時(shí),也有助于對(duì)其他知識(shí)的理解,F(xiàn)在,我不但對(duì)圖解法和解析法有了更深入的理解,而且熟練了應(yīng)用圖解法對(duì)機(jī)構(gòu)進(jìn)行運(yùn)動(dòng)分析以及力分析。
培養(yǎng)了我耐心、仔細(xì)、謹(jǐn)慎的工作態(tài)度。這次課程設(shè)計(jì)的內(nèi)容最多的是繪畫機(jī)構(gòu)簡(jiǎn)圖。在繪圖過(guò)程中,對(duì)比例尺的選定以及合理的布圖都要有細(xì)致的規(guī)劃,這是最考驗(yàn)一個(gè)人的耐心與嚴(yán)謹(jǐn)態(tài)度的過(guò)程,只有這樣才能使繪制的機(jī)構(gòu)簡(jiǎn)圖更準(zhǔn)確、更美觀。
通過(guò)這次課程設(shè)計(jì),使我更充分認(rèn)識(shí)了團(tuán)隊(duì)合作的重要性。由于這次課設(shè)是以小組為單位對(duì)機(jī)構(gòu)不同的運(yùn)動(dòng)位置進(jìn)行運(yùn)動(dòng)分析和受力分析,還要查找資料,每個(gè)人都有分工。所以在進(jìn)行分析的過(guò)程中每個(gè)成員都要保證自己計(jì)算數(shù)據(jù)的準(zhǔn)確,查找資料時(shí)都要有耐心,這樣才能確保小組順利完成任務(wù)。在這次課設(shè)過(guò)程中,我們小組成員之間都互幫互助、共同思考,相互查漏補(bǔ)缺,互相給予信心。
最后,我對(duì)我們小組的成員同學(xué)表示衷心的感謝,因?yàn)槲覀兪鞘强炕突ブ拍芡瓿烧n程設(shè)計(jì)的,我想其他同學(xué)也跟我有一樣感受,同時(shí)也要誠(chéng)摯地感謝指導(dǎo)教室宜老師在課程設(shè)計(jì)過(guò)程中給予幫助和指導(dǎo)。