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

正文內(nèi)容

畢業(yè)設(shè)計(jì)畢業(yè)論文:基于單片機(jī)的步進(jìn)電機(jī)升降頻控制(編輯修改稿)

2024-12-10 04:55 本頁面
 

【文章內(nèi)容簡(jiǎn)介】 1. AT89C51 單片機(jī)的時(shí)鐘 電路: AT89C51 單片機(jī)的時(shí)鐘信通常用兩種電路形式得到:內(nèi)部振蕩方式和外部振蕩方式。本設(shè)計(jì)由內(nèi)部振蕩方式產(chǎn)生。如圖 22 中所示,在引腳 XTAL1和 XTAL2 外接晶體振蕩器 (簡(jiǎn)稱晶振 ),就構(gòu)成了內(nèi)部振蕩方式。由于單片機(jī)內(nèi)部有一個(gè)高增益反相放大器,當(dāng)外接晶振后,就構(gòu)成了自激振蕩器并產(chǎn)生振蕩時(shí)鐘脈沖。兩個(gè)電容器起穩(wěn)定振蕩頻率、快速起振的作用,其電容值一般在 530pF。當(dāng)晶振頻率的值為 12MHZ 時(shí)內(nèi)部振蕩方式所得的時(shí)鐘信號(hào)比較穩(wěn)定,實(shí)用電路中應(yīng)用較多。 2. 單片機(jī)復(fù)位電路: 當(dāng) MCS5l系列單片機(jī)的復(fù)位引腳 RST(全稱 RESET)出現(xiàn) 2 個(gè)機(jī)器周期以 上的高電平時(shí),單片機(jī)就執(zhí)行復(fù)位操作。根據(jù)應(yīng)用的要求,復(fù)位操作通常有兩種基本形式:上電復(fù)位和上電或開關(guān)復(fù)位。 上電或開關(guān)復(fù)位要求電源接通后,單片機(jī)自動(dòng)復(fù)位,并且在單片機(jī)運(yùn)行期間,用開關(guān)操作也能使單片機(jī)復(fù)位。上電后,由于電容的充電作用,使 RST 持續(xù)一段時(shí)間的高電平。當(dāng)單片機(jī)已在運(yùn)行當(dāng)中時(shí),按下復(fù)位鍵后松開,也能使 RST 保持 一段時(shí)間的高電平,從而實(shí)現(xiàn) 通電時(shí)的自動(dòng)復(fù)位操作,系統(tǒng)運(yùn)行過程中的 開關(guān)復(fù)位操作。 167。 控制鍵電路 鍵盤是由若干按鈕組成的開關(guān)矩陣,它是單片機(jī)系統(tǒng)中最常用的輸入設(shè)備,用戶能通過鍵盤向計(jì)算機(jī)輸入指令、地址和數(shù)據(jù) 。 按鍵是一種常開型按鈕開關(guān)。 由于按鈕是機(jī)械觸點(diǎn),當(dāng)機(jī)械觸點(diǎn)斷開、閉合時(shí),會(huì)有抖動(dòng) , 這種抖動(dòng)對(duì)于人來說是感覺不到的,但對(duì)計(jì)算機(jī)來說,則是完全能感應(yīng)到的, 因?yàn)橛?jì)算機(jī)處理的速度是在微秒級(jí),而機(jī)械抖動(dòng)的時(shí)間至 少是毫秒級(jí) , 對(duì)計(jì)算機(jī)而言,這已是一個(gè) “ 漫長(zhǎng) ” 的時(shí)間了。 畢業(yè)設(shè)計(jì)(論文) 12 為使 CPU 能正確地讀出 輸入口 的狀態(tài),對(duì) 每一次按鈕只作一次響應(yīng),就必須考慮如何去除抖動(dòng),常用的去抖動(dòng)的辦法有兩種:硬件辦法和軟件辦法。單片機(jī) 系統(tǒng) 中常用軟件法 。 就是在單片機(jī)獲得 P0 口為低的信息后,不是立即認(rèn)定 按鍵 已被按下,而是延時(shí) 10 毫秒或更長(zhǎng)一些時(shí)間后再次檢測(cè) P0 口,如果仍為低,說明 按鍵 的確按下了,這實(shí)際上是避開了按鈕按下時(shí)的抖動(dòng)時(shí)間。 按鍵 與控制系統(tǒng) P0 口鍵連接,其連接如下表: 表 21 P0 口與控制鍵連接 控制鍵電路圖如 圖 23 所示: 圖 23 控制鍵電 路圖 167。 步進(jìn)電機(jī)驅(qū)動(dòng)電路 AT89C51 控制電機(jī)運(yùn)行的各種工作狀態(tài)。但不能直接驅(qū)動(dòng)步進(jìn)電機(jī),這需要由功率電路來擴(kuò)展輸出電流以滿足被控元件的電流、電壓。 ULN2020 達(dá)林頓晶體管陣列系列產(chǎn)品就屬于這類可控大功率器件。ULN2020 是高耐壓、大電流、內(nèi)部由七個(gè)硅 NPN 達(dá)林頓管成的驅(qū)動(dòng)芯片。 它是一個(gè) 7 路反向器電路,即當(dāng)輸入端為高電平時(shí), ULN2020 輸出端為低電平,當(dāng)輸入端為低電平時(shí) ULN2020 輸出端為高電平。 ULN2020 的每一對(duì)達(dá)林頓都啟動(dòng) 升頻 降頻 停止 KW1 KW2 KW3 KW4 畢業(yè)設(shè)計(jì)(論文) 13 串聯(lián)一個(gè) 的基極電阻,在 5V 的工作電壓下它 能與 TTL 和 CMOS 電路直接相連,可以直接處理原先需要標(biāo)準(zhǔn)邏輯緩沖器來 處理的數(shù)據(jù)。 ULN2020 芯片如 圖 24 所示: 圖 24 ULN2020 芯片 ULN2020 芯片輸入端 與控制系統(tǒng) P1口連接,其連接方式如 表 22 所示 : 表 22 ULN2020 芯片輸入端 與控制系統(tǒng) P1 口鍵連接 1B 2B 3B 4B ULN2020 芯片輸出端 與步進(jìn)電機(jī)連接,其連接如 表 23 所示 : 表 23 ULN2020 芯片輸出端 與步進(jìn)電機(jī)連 接 1C 2C 3C 4C A+ A B+ B 167。 步進(jìn)電機(jī)控制系統(tǒng)硬件電路圖 (見附錄 1) 畢業(yè)設(shè)計(jì)(論文) 14 第 3 章 步進(jìn)電機(jī)控制系統(tǒng)軟件設(shè)計(jì) 167。 步進(jìn)電機(jī)控制系統(tǒng)應(yīng)用流程圖 167。 主流程圖(見附錄 2) 167。 升頻流程圖 圖 31 升頻流程圖 畢業(yè)設(shè)計(jì)(論文) 15 167。 降頻流程圖 圖 32 降頻流程圖 本文以 35BY48S03 步進(jìn)電機(jī)為例,首先根據(jù)步進(jìn)電機(jī)的特性設(shè)計(jì)一個(gè)數(shù)據(jù)區(qū),再編寫程序?qū)Υ藬?shù)據(jù)的的數(shù)據(jù)進(jìn)行調(diào)試。設(shè)計(jì)的最小啟動(dòng)頻率為100HZ,在升頻過程中每按一次升頻鍵,步進(jìn) 電機(jī)升頻后勻速運(yùn)行,這樣易于發(fā)現(xiàn)因數(shù)據(jù)區(qū)的數(shù)據(jù)不合理而導(dǎo)致電機(jī)出現(xiàn)失步的狀況。降頻階段可采用 畢業(yè)設(shè)計(jì)(論文) 16 升頻區(qū)的數(shù)據(jù)進(jìn)行反指數(shù)降頻。 167。 走一步子程序流程圖 圖 33 走一步子程序流程圖 167。 步進(jìn)電機(jī)數(shù)據(jù)區(qū)設(shè)計(jì) 步進(jìn)電機(jī)帶負(fù)載時(shí)的運(yùn)行頻率低于起動(dòng)頻率時(shí),步進(jìn)電機(jī)能以運(yùn)行頻率直接起動(dòng),并以該頻率連續(xù)運(yùn)行。需要停止的時(shí)候,可以從運(yùn)行頻率直接降到零速。而當(dāng)步進(jìn)電機(jī)的運(yùn)行頻率為負(fù)載啟動(dòng)頻率或負(fù)載過大時(shí),易出現(xiàn)丟步或堵轉(zhuǎn)的現(xiàn)象;停止時(shí)頻率過高, 又 易出現(xiàn)過沖的現(xiàn)象,造成位置精度降低。因此,需要對(duì)步進(jìn)電機(jī)采用 升降頻控制,以使電機(jī)從啟動(dòng)頻率 中 或者低于啟動(dòng)頻率的某個(gè)合適的值(此值與負(fù)載和步進(jìn)驅(qū)動(dòng)有關(guān))開始 啟動(dòng) ,逐漸加速升到運(yùn)行頻率然后進(jìn)入勻速運(yùn)行。最后的降頻可以看作是升頻的逆過程。 采用 51 系列單片機(jī)進(jìn)行升降頻控制時(shí),設(shè)單片機(jī)的晶振頻率 12MHZ, 經(jīng)過 升 頻達(dá)到目標(biāo)頻率,在升頻 的 第 n 個(gè)臺(tái)階 的頻率為 F(n)。 設(shè)定 定時(shí)器工作設(shè)置 在方式 1。 為了達(dá)到精確定位的目的, 在 編程時(shí),將頻率 F(n)的保持時(shí) 畢業(yè)設(shè)計(jì)(論文) 17 間換算為步數(shù),并對(duì)步數(shù) Z(n)進(jìn)行計(jì)數(shù)。每次計(jì)滿時(shí),定時(shí)器重裝下一頻率的初值。 開始下一次升降頻。 以 AT89C51 單片機(jī),頻率 100HZ 為例,進(jìn)行數(shù)據(jù)區(qū)設(shè)計(jì)。 如圖 34 所示,我們?cè)O(shè)頻率最高升至 1000HZ,用時(shí)為 5S,依此確定縱坐標(biāo)每一小格所對(duì)應(yīng)的頻率,橫坐標(biāo)每一小格對(duì)應(yīng)的時(shí)間。 圖 34 升頻曲線 當(dāng)頻率為 100HZ 時(shí),對(duì)應(yīng)橫坐標(biāo)時(shí)間為: T=(10/60)*5= 兩步之間定時(shí)時(shí)間 t0 (μ s)為: t0=f1=1001 =( s) =10000( μ s) 步數(shù)為: BC=T/ t0 =以此方法可以得到如表 31 所示的 升頻數(shù)據(jù)區(qū): 畢業(yè)設(shè)計(jì)(論文) 18 表 31 升頻數(shù)據(jù)區(qū) 頻率 步數(shù) 頻率 步數(shù) 100 83 420 140 130 108 520 130 180 120 650 150 230 115 850 200 290 145 1000 100 350 145 以升頻曲線的反指數(shù)曲線可以得到如表 32 所示的 降頻數(shù)據(jù)區(qū) 表 32 降頻數(shù)據(jù)區(qū) 頻率 步數(shù) 頻率 步數(shù) 1000 750 680 230 970 725 580 150 920 700 450 140 870 435 250 60 810 405 100 10 750 310 AT89C51 有兩個(gè)定時(shí) /計(jì)數(shù)器,本系統(tǒng)選用 T1 作為定時(shí)器使用。 T1 的模式存放在模式控制寄存器 TMOD 中( T1 作為 16 位定時(shí)器,為模式 1) 方式字為: 10H 模式 1中,定時(shí)器寄存器 TH1 和 TL1是以全 16 位參與操作,作為計(jì)數(shù)器使用,計(jì)數(shù)輸入信號(hào)內(nèi)部時(shí)鐘脈沖,每個(gè)機(jī)器周期使寄存器值增 1,當(dāng)計(jì)數(shù)值由全 1 再增 1 變?yōu)槿?0 時(shí),便 TF1 置 1 請(qǐng)求中斷。 定時(shí)常數(shù)為: 計(jì)數(shù)器 方式 定時(shí)器方式 選通位 工作模式 控制位 畢業(yè)設(shè)計(jì)(論文) 19 t0(H)=65536[ t0/(t’ 0*C)]=60536 167。 程序源代碼 系統(tǒng)詳細(xì)設(shè) 計(jì)程序如下: 文件: include include define uint unsigned int define uchar unsigned char //引腳定義 sbit Start=P0^0。 sbit SpeedUp=P0^1。 sbit SpeedDown=P0^2。 sbit Stop=P0^3。 sbit AP=P1^0。 sbit AN=P1^1。 sbit BP=P1^2。 sbit BN=P1^3。 //定時(shí)器 T1 溢出延時(shí) void T1_Delay(uint temp)。 //以指定頻率運(yùn)行 void MotRun(uint F)。 //停止電機(jī) void MotStop(void)。 //_stepmot_h_ // 文件 //定時(shí)器 T1 溢出延時(shí)函數(shù) void T1_delay(uint temp) { 畢業(yè)設(shè)計(jì)(論文) 20 uint t。 t=65536temp。 TMOD=0X20。 TH1=(uchar)(t8)。 TL1=tamp。0xff。 TR1=1。 while(TF1!=1)。 TF1=0。 TR1=0。 return。 } //以指定頻率運(yùn)行函數(shù) void MotRun(uint F) {uint t。 t=500000/F。 AP=1。 AN=0。 BP=0。 BN=0。 T1_delay(t)。 AP=0。 AN=1。 BP=0。 BN=0。 T1_delay(t)。 AP=0。 AN=0。 BP=1。 畢業(yè)設(shè)計(jì)(論文) 21 BN=0。 T1_delay(t)。 AP=0。 AN=0。 BP=0。 BN=1。 T1_delay(t)。 AP=0。 AN=0。 BP=0。 BN=0。 Return。 } //停止電機(jī)函數(shù) void Motstop(void) { AP=0。 AN=0。 BP=0。 BN=0。 return。 } // 文件 uint F。 void InitIO() { Start=1。 SpeedUp=1。 畢業(yè)設(shè)計(jì)(論文) 22 SpeedDown=1。 Stop=1。 AP=0。 AN=0。 BP=0。 BN=0。 } void main() { InitIO()。 F=100。 while(1) { while(Start!=0amp。Stop=0)。 MotRun(F)。 //升頻 if((!SpeedUp)amp。(F1000)) { uint i, j, bc, a[]={100, 130, 180, 230, 290, 350, 420, 520, 650, 850, 1000}, b[]={83, 108, 120, 115, 145, 145, 140, 130, 150, 200, 100}。 for(i=0。i12。i++) { F=a[i]。 bc=b[i]。 for(j=bc。j0。j) MotRun(F)。 } 畢業(yè)設(shè)計(jì)(論文) 23 } //降頻 if((!SpeedDown)amp。(F0)) { uint c[]={1000, 970, 920, 870, 810, 750, 680, 580, 450, 250, 100}, d[]={750, 725, 700, 425, 405, 310, 230, 150, 140, 60, 10}。 uint i, j, bc。 for(i=0。i12。i++) { F=c[i]。 bc=d[i]。 for(j=bc。j0。j) MotRun(F)。 } } //停止 if(!Stop) { while(F10) { F=100。 MotRun(F)。 } MotStop()。 } } } 畢業(yè)設(shè)計(jì)(論文) 24 結(jié) 論 本文主要論述了如何使用單片機(jī)實(shí)現(xiàn)步進(jìn)電機(jī)的升降頻控制。硬件設(shè)計(jì)由于每個(gè)電機(jī)及負(fù)載的機(jī)械特性不同,所以它不能很好的與所有電機(jī)適配。而且隨著系統(tǒng)使用時(shí)間越來越長(zhǎng),元器件會(huì)發(fā)生變值。本文采用程序的方法來實(shí)現(xiàn)升降頻控制,克服了硬件設(shè)計(jì)那些不能靈活變動(dòng)和元器件容易變值的缺點(diǎn)。在系統(tǒng)設(shè)計(jì)中我們采用了 AT89C51 現(xiàn)在工業(yè)控制系統(tǒng)中廣泛使用的芯片,整個(gè)控制電路設(shè)計(jì)簡(jiǎn)單易行,運(yùn)行可靠,改動(dòng)也很方便,而且可以降低運(yùn)行成本。 在程序設(shè)計(jì)上,本文采用了指數(shù)曲線的控制方式控制電機(jī)的升降頻。程序可用于調(diào)試步進(jìn)電機(jī)升降頻的數(shù)據(jù) 區(qū),在步進(jìn)電機(jī)的性能檢測(cè)、機(jī)械特性檢測(cè)上都有一定的用途,也可為數(shù)控系統(tǒng)提供一些數(shù)據(jù)。實(shí)踐證明,在大功率步進(jìn)電機(jī)控制中,采用指數(shù)曲線控制方法能有效的減少電機(jī)啟動(dòng)所用的時(shí)間,且能保證力矩最大,在很大程度提高了電機(jī)的工作效率。 由于本人經(jīng)驗(yàn)尚淺,各方面的知識(shí)還不是
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1