單片機(jī)課程設(shè)計(jì)(步進(jìn)電機(jī)的控制無(wú)線(xiàn)通信)_第1頁(yè)
單片機(jī)課程設(shè)計(jì)(步進(jìn)電機(jī)的控制無(wú)線(xiàn)通信)_第2頁(yè)
單片機(jī)課程設(shè)計(jì)(步進(jìn)電機(jī)的控制無(wú)線(xiàn)通信)_第3頁(yè)
單片機(jī)課程設(shè)計(jì)(步進(jìn)電機(jī)的控制無(wú)線(xiàn)通信)_第4頁(yè)
單片機(jī)課程設(shè)計(jì)(步進(jìn)電機(jī)的控制無(wú)線(xiàn)通信)_第5頁(yè)
已閱讀5頁(yè),還剩15頁(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)介

1、. . . . 設(shè)計(jì)課程名稱(chēng) 單片機(jī)課程設(shè)計(jì) 設(shè)計(jì)項(xiàng)目名稱(chēng) 步進(jìn)電機(jī)的控制與無(wú)線(xiàn)通信 專(zhuān) 業(yè) 班 級(jí) 電子科學(xué)與技術(shù)081班 學(xué) 生 姓 名 盧 德 勇 王 永 平 學(xué) 號(hào) 0 1 指 導(dǎo) 教 師 馬 光 喜、 良 榮 等 理 學(xué) 院實(shí)驗(yàn)時(shí)間:2011年7月6日至15日20 / 20題目:步進(jìn)電機(jī)的控制與無(wú)線(xiàn)通信一設(shè)計(jì)任務(wù):1Protel軟件的學(xué)習(xí)與PCB版的制作2步進(jìn)電機(jī)控制。3紅外遙控的發(fā)送與接收。 二設(shè)計(jì)容:1. protel 99se軟件的學(xué)習(xí)與PCB版的制作學(xué)習(xí)Protel99 SE 軟件的時(shí)間不多,但是收獲也不少。至少知道了很多軟件都能實(shí)現(xiàn)PCB版圖的設(shè)計(jì)與制作。在Protel99

2、 SE里面學(xué)到了很多東西,由于上課的時(shí)間斷,所以就不得不在網(wǎng)上找相關(guān)的資料、教程、以與文庫(kù)。首先我就下載了有快捷鍵,讓我在使用的過(guò)程中方便有快捷。在Protel99 SE的庫(kù)文件中不是所有的原件都和我們用的原件一樣,有一樣的管腳。有很大一部分是不同的,比如數(shù)碼管本來(lái)是十個(gè)角而Protel99 SE里面就只有八個(gè),和實(shí)際的不一樣。用元件編輯可以編輯自己想要的元件,型號(hào)和管腳。很多封裝模型也沒(méi)有,這些都可以自己畫(huà)封裝。不過(guò)在畫(huà)之前,先要知道元件的尺寸大小。不然尺寸過(guò)大過(guò)小都不能正確的安裝元件,導(dǎo)致浪費(fèi)人力物力。各部分截圖如下:時(shí)鐘電路電路圖:PCB 圖:元件布局圖:2.單片機(jī)對(duì)步進(jìn)電機(jī)的控制與無(wú)線(xiàn)

3、通信單片機(jī)原理與應(yīng)用是電子信息工程專(zhuān)業(yè)的一門(mén)重要專(zhuān)業(yè)課,對(duì)應(yīng)用能力和動(dòng)手能力要求很高,課程設(shè)計(jì)環(huán)節(jié)是學(xué)生學(xué)習(xí)該課程后進(jìn)行的一項(xiàng)必不可少的基本訓(xùn)練。其主要目的是使學(xué)生增進(jìn)對(duì)單片機(jī)的感性認(rèn)識(shí),加深對(duì)單片機(jī)理論方面的理解,鞏固學(xué)生所學(xué)理論知識(shí);使學(xué)生掌握單片機(jī)的部功能模塊的應(yīng)用,培養(yǎng)學(xué)生系統(tǒng)設(shè)計(jì)的思想;培養(yǎng)學(xué)生的軟件設(shè)計(jì)能力,提高學(xué)生的動(dòng)手能力;培養(yǎng)學(xué)生查閱相關(guān)資料、撰寫(xiě)文檔的能力和自學(xué)、科研的能力。了解紅外通信知識(shí),掌握紅外數(shù)據(jù)收發(fā)的電路、編解碼的編程方法。容1、能控制步進(jìn)電機(jī)的正常工作,且做一定調(diào)整。(1)能控制步進(jìn)電機(jī)作正向和反向運(yùn)轉(zhuǎn),要有正轉(zhuǎn)和反轉(zhuǎn)控制按鈕。(2)步距角為45 度。(3)在一

4、定的圍可以控制運(yùn)轉(zhuǎn)的速度,有加速和減速控制按鈕。(4)要求隨時(shí)可以在不斷電源情況下可以暫停,有一個(gè)暫停按鈕。2、根據(jù)系統(tǒng)提供的紅外收發(fā)電路,單片機(jī)一方面從發(fā)送端發(fā)出數(shù)據(jù),一方面從接收端接收數(shù)據(jù),并比較收到的數(shù)據(jù)與發(fā)送的是否一致。方案3.1控制電機(jī)正/反向轉(zhuǎn)步進(jìn)電動(dòng)機(jī)有三相繞組A、B、C、D,當(dāng)某一項(xiàng)繞組通電時(shí),在其部形成N-S極,產(chǎn)生磁場(chǎng),在磁場(chǎng)的作用下,轉(zhuǎn)子將會(huì)轉(zhuǎn)動(dòng),步進(jìn)一步。若步進(jìn)電動(dòng)機(jī)按四相八拍方式來(lái)工作,則在A、B、C、D,四相繞組上依次輸入脈沖的順序?yàn)椋翰竭M(jìn)電動(dòng)機(jī)將沿順時(shí)針?lè)较蜣D(zhuǎn)動(dòng)。若在A、B、C、D四相繞組上依次輸入脈沖的順序?yàn)椋簞t步進(jìn)電動(dòng)機(jī)將沿逆時(shí)針?lè)较蜣D(zhuǎn)動(dòng)(D、C、B、A,則順

5、時(shí)針?lè)较蛐D(zhuǎn))。因而只要控制脈沖輸出的順序,就可實(shí)現(xiàn)對(duì)步進(jìn)電動(dòng)機(jī)正/反轉(zhuǎn)的控制。3.2控制電機(jī)運(yùn)轉(zhuǎn)速度     步進(jìn)電動(dòng)機(jī)運(yùn)轉(zhuǎn)的速度是由輸入到A、B、C、D四相繞組的頻率所決定的。頻率越高,電動(dòng)機(jī)運(yùn)轉(zhuǎn)的速度越快,否則,速度就越慢。因而通過(guò)延時(shí)程序控制輸出脈沖的頻率,就可以實(shí)現(xiàn)對(duì)步進(jìn)電動(dòng)機(jī)顓頊的控制。3.3控制電機(jī)轉(zhuǎn)動(dòng)角度通常,按AABBBCCCDDDAA(或AADDDCCCBBBAA)的順序輪流通電,則步進(jìn)電動(dòng)機(jī)會(huì)沿瞬時(shí)針(或逆時(shí)針)方向轉(zhuǎn)動(dòng),這種運(yùn)行方式被稱(chēng)為四相八三拍方式?!八南唷笔侵付ㄗ铀南嗬@組;“單”是指每次只有一相繞組通電;“拍”是指從一種通電

6、狀態(tài)轉(zhuǎn)換到另一種通電狀態(tài);“八拍”是指經(jīng)過(guò)八次切換控制繞組的通電狀態(tài)為一個(gè)循環(huán),第八拍通電狀態(tài)是重復(fù)第一拍的情況。如果將該方式下每周運(yùn)行的拍數(shù)(步數(shù))設(shè)為N,則四相八拍方式下每周運(yùn)行的拍數(shù)恰恰為2N。步進(jìn)電機(jī) 四相八拍工作,步距角是7.5度.如果我正轉(zhuǎn)1圈,則需要360/7.5=48個(gè)脈沖。但電機(jī)運(yùn)行拍數(shù)定義不同,是指電機(jī)轉(zhuǎn)過(guò)一個(gè)齒(輪)距所需脈沖數(shù),要區(qū)分步進(jìn)角和電機(jī)運(yùn)行拍數(shù)。紅外遙控控制在很多單片機(jī)應(yīng)用系統(tǒng)中,常常利用非電信號(hào)(如光信號(hào)、超聲波信號(hào)等)傳送控制信息和數(shù)據(jù)信息,以實(shí)現(xiàn)遙控或遙測(cè)的功能。紅外通信具有控制簡(jiǎn)單、實(shí)施方便、傳輸可靠性高的特點(diǎn),是一種較為常用的通信方式。實(shí)現(xiàn)單片機(jī)系統(tǒng)

7、紅外通信的關(guān)鍵在于紅外接口電路的設(shè)計(jì)以與接口驅(qū)動(dòng)程序的設(shè)計(jì)。1紅外通信的基本原理紅外通信是利用950nm近紅外波段的紅外線(xiàn)作為傳遞信息的媒體,即通信信道。發(fā)送端采用脈時(shí)調(diào)制(PPM)方式,將二進(jìn)制數(shù)字信號(hào)調(diào)制成某一頻率的脈沖序列,并驅(qū)動(dòng)紅外發(fā)射管以光脈沖的形式發(fā)送出去;接收端將接收到的光脈轉(zhuǎn)換成電信號(hào),再經(jīng)過(guò)放大、濾波等處理后送給解調(diào)電路進(jìn)行解調(diào),還原為二進(jìn)制數(shù)字信號(hào)后輸出。2紅外發(fā)送器紅外發(fā)送器電路包括脈沖振蕩器、驅(qū)動(dòng)管Q1和Q2、紅外發(fā)射管Q3等部分。其中脈沖振蕩器由2206組成,用以產(chǎn)生38kHz的脈沖序列作為載波信號(hào);紅外發(fā)射管Q3用來(lái)向外發(fā)射950nm的紅外光束。紅外發(fā)送器的工作原理

8、為:串行數(shù)據(jù)由單片機(jī)的串行輸出端DATA送出并驅(qū)動(dòng)Q1管,數(shù)位“0”使Q1管導(dǎo)通,通過(guò)Q2管調(diào)制成38kHz的載波信號(hào),并利用紅外發(fā)射管Q3以光脈沖的形式向外發(fā)送。數(shù)位“1”使Q1管截止,紅外發(fā)射管Q3不發(fā)射紅外光。若傳送的波特率設(shè)為1200bps,則每個(gè)數(shù)位“0”對(duì)應(yīng)32個(gè)載波脈沖調(diào)制信號(hào)的時(shí)序,如圖35-1所示。35-1 調(diào)制信號(hào)時(shí)序圖3紅外接收器紅外接收電路選用專(zhuān)用紅外接收模塊。該接收模塊是一個(gè)三端元件,使用單電源+5V電源,具有功耗低、抗干擾能力強(qiáng)、輸入靈敏度高、對(duì)其它波長(zhǎng)(950nm以外)的紅外光不敏感的特點(diǎn),其部結(jié)構(gòu)框圖如圖35-2所示。如圖35-2 紅外接收模塊部結(jié)構(gòu)框圖接收模塊

9、的工作原理為:首先,通過(guò)紅外光敏元件將接收到的載波頻率為38kHz的脈沖調(diào)制紅外光信號(hào)轉(zhuǎn)化為電信號(hào),再由前置放大器和自動(dòng)增益控制電路進(jìn)行放大處理。然后,通過(guò)帶通濾波器和進(jìn)行濾波,濾波后的信號(hào)由解調(diào)電路進(jìn)行解調(diào)。最后,由輸出級(jí)電路進(jìn)行反向放大輸出。為保證紅外接收模塊接收的準(zhǔn)確性,要求發(fā)送端載波信號(hào)的頻率應(yīng)盡可能接近38kHz,因此在設(shè)計(jì)脈沖振蕩器時(shí),要選用精密元件并保證電源電壓穩(wěn)定。再有,發(fā)送的數(shù)位“0”至少要對(duì)應(yīng)14個(gè)載波脈沖,這就要求傳送的波特率不能超過(guò)2400bps。4本實(shí)驗(yàn)需要用到CPU模塊(F3區(qū))和紅外收發(fā)模塊(A3區(qū))、函數(shù)信號(hào)發(fā)生器模塊(A2區(qū)),紅外收發(fā)電路原理參見(jiàn)圖35-3。

10、圖35-3 紅外收發(fā)電路實(shí)驗(yàn)步驟1、 我們先用老師給的事例程序調(diào)試了熟悉了一下,實(shí)驗(yàn)平臺(tái)的使用方法。單片機(jī)的下載和硬件電路都熟悉了以后開(kāi)始下一步的工作。2、 然后修改調(diào)試?yán)蠋熃o的事例程序,最后可以實(shí)現(xiàn),用四個(gè)按鍵控制步進(jìn)電機(jī)的啟動(dòng)停止、正反轉(zhuǎn)、加速、減速 四個(gè)功能,并且用LCD屏顯示出來(lái)。3、 在網(wǎng)上查詢(xún)紅外遙控的資料,了解紅外遙控的原理,以與實(shí)現(xiàn)控制的方式。然后把紅外遙控加到電機(jī)的控制中,用遙控器去控制電機(jī)的正轉(zhuǎn)、反轉(zhuǎn)、加速、減速、啟動(dòng)停止,并且將電機(jī)的所有狀態(tài)在LCD屏上顯示出來(lái)的。(由于不能用軟件仿真所以,只能硬件調(diào)試。很多步驟,所以用了很長(zhǎng)的時(shí)間才調(diào)試出來(lái),而且電路板一開(kāi)始晶振是不振動(dòng)

11、的。放了很久,后面我用手觸了幾下上面的一些管腳然后能用了。)修改、調(diào)試紅外控制電機(jī)程序(程序見(jiàn)附錄1 ):修改、調(diào)試后鍵盤(pán)控制電機(jī)并顯示(程序見(jiàn)附錄2):總結(jié)首先要感馬老師給我這次機(jī)會(huì),學(xué)習(xí)、熟悉、應(yīng)用單片機(jī),以與自己動(dòng)手設(shè)計(jì)的機(jī)會(huì)。通過(guò)這次的課程設(shè)計(jì),我了解了步進(jìn)電機(jī)的工作原理,了解的紅外控制的原理。知道了完成單片機(jī)最小系統(tǒng)課程設(shè)計(jì)的一般方法和步驟,對(duì)于我在以后的學(xué)習(xí)于應(yīng)用中都有很大的幫助。讓我更深層次的了解了單片機(jī)的工作原理以與使用方法。在實(shí)驗(yàn)的過(guò)程中也暴露了自己不少的缺點(diǎn),不如說(shuō)耐心不夠啊,在做的時(shí)候如果很長(zhǎng)時(shí)間都還沒(méi)有出結(jié)果的話(huà)就會(huì)有想放棄的想法。不過(guò)多虧了,一組的同學(xué)一起才能得以完成

12、。心得體會(huì)1、 我要再次感馬老師,在這次的課程設(shè)計(jì)中,提高了我們應(yīng)用單片機(jī)和自己動(dòng)手的能力。增進(jìn)我們對(duì)單片機(jī)的感性認(rèn)識(shí),加深對(duì)單片機(jī)的理解,(雖然近代電子學(xué)也用單片機(jī)做做,但是沒(méi)有這次的深,沒(méi)有這次透徹。)鞏固我們以前所學(xué)的單片機(jī)理論知識(shí);使我們掌握了單片機(jī)的部功能模塊的應(yīng)用,同時(shí)也鍛煉了我們系統(tǒng)設(shè)計(jì)的思想;提高了軟件深層次了解和應(yīng)用軟件以與用軟件設(shè)計(jì)的能力;同時(shí)我們也在網(wǎng)上學(xué)到了不少的東西,在查詢(xún)資料的時(shí)候自己做搜索到的東西不全都是自己現(xiàn)在需要的東西。不過(guò)我們?cè)诓榈臅r(shí)候也在不斷的閱讀那些現(xiàn)在不要的東西,擴(kuò)大了我們的閱讀面,在查閱的過(guò)程中效率越來(lái)越高。知道了怎么去查詢(xún),所以在以后查詢(xún)的時(shí)候就不

13、用走太多的彎路。在實(shí)驗(yàn)設(shè)計(jì)的過(guò)程中,提高了我們的團(tuán)隊(duì)協(xié)作能力。一個(gè)人的能力畢竟是有限的,在一個(gè)很大的工程項(xiàng)目下,一個(gè)人是完成不了的,必須要有團(tuán)隊(duì)的配合。所以對(duì)以后我們工作的團(tuán)隊(duì)合作也有很大的幫助附錄1:/步進(jìn)電機(jī)1.0,P1.1,P1.2,P1.3,遙控器p3.2喇叭p3.7*/遙控器1號(hào)鍵:運(yùn)行/停止 確認(rèn) 鍵:圈數(shù)增加2號(hào)鍵:速度增加 鍵:圈數(shù)減少 1 號(hào)鍵:速度減少 鍵:方向正 鍵 :方向反 鍵 * / /*#include <reg51.h> /51芯片管腳定義頭文件#include <intrins.h> /部包含延時(shí)函數(shù) _nop_();#define uc

14、har unsigned char#define uint unsigned int#define delayNOP(); _nop_();_nop_();_nop_();_nop_();uchar code FFW8= 0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9;uchar code REV8= 0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1;uchar IRCOM6=(0x00,0x00,0x00,0x00,0x00,0x00);char code SST5163 _at_ 0x003b;sbit BEEP = P35;

15、/蜂鳴器sbit IRIN= P32; /紅外接收端口sbit LCD_RS = P24; sbit LCD_RW = P23;sbit LCD_EN = P22;bit on_off=0; /運(yùn)行與停止標(biāo)志bit direction=1; /方向標(biāo)志bit rate_dr=1; /速率標(biāo)志bit snum_dr=1; /圈數(shù)標(biāo)志bit flag; /紅外接收有效標(biāo)志bit pause1=0; /暫停標(biāo)志/uchar code cdis1 = " STEPPING MOTOR "/uchar code cdis2 = "CONTROL PROCESS"u

16、char code cdis1 = " IR CONTROL "uchar code cdis2 = " STEPPING MOTOR "uchar code cdis3 = "IR:-H STOP "uchar code cdis4 = "NUM: RATE: "uchar code cdis5 = " RUN "uchar code cdis6 = " STOP"uchar code cdis7 = "PUSE"uchar m,v=0,q=0;ucha

17、r number=0,number1=0; uchar snum=50,snum1=50; /預(yù)設(shè)定圈數(shù)uchar rate=8; /預(yù)設(shè)定速率uchar data_temp,data_temp1,data_temp2; uchar TEMP;void IR_IN();/*/ /* 延時(shí)t毫秒 /* 11.0592MHz時(shí)鐘,延時(shí)約1ms /*/void delay(uint t) uchar k; while(t-) for(k=0; k<125; k+) /*/void delayB(uchar x) / x*0.14MS uchar i; while(x-) for (i=0; i

18、<13; i+) /*/void beep() uchar j; for (j=0;j<100;j+) delayB(5); BEEP=!BEEP; /BEEP取反 BEEP=1; /關(guān)閉蜂鳴器/*/ /*檢查L(zhǎng)CD忙狀態(tài) /*lcd_busy為1時(shí),忙,等待。為0時(shí),閑,可寫(xiě)指令與數(shù)據(jù)。 /*/ bit lcd_busy() bit result; LCD_RS = 0; LCD_RW = 1; LCD_EN = 1; delayNOP(); result = (bit)(P0&0x80); LCD_EN = 0; return(result); /*/* /*寫(xiě)指令數(shù)據(jù)

19、到LCD /*RS=L,RW=L,E=H,D0-D7=指令碼。 /* /*/void lcd_wcmd(uchar cmd) while(lcd_busy(); LCD_RS = 0; LCD_RW = 0; LCD_EN = 0; _nop_(); _nop_(); P0 = cmd; delayNOP(); LCD_EN = 1; delayNOP(); LCD_EN = 0; /*/ /*寫(xiě)顯示數(shù)據(jù)到LCD /*RS=H,RW=L,E=高脈沖,D0-D7=數(shù)據(jù)。 /*/void lcd_wdat(uchar dat) while(lcd_busy(); LCD_RS = 1; LCD_R

20、W = 0; LCD_EN = 0; P0 = dat;/ delayNOP(); LCD_EN = 1; delayNOP(); LCD_EN = 0; /*/ /* LCD初始化設(shè)定 /*/void lcd_init() delay(30); lcd_wcmd(0x38); /16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù) delay(5); lcd_wcmd(0x38); delay(5); lcd_wcmd(0x38); delay(5); lcd_wcmd(0x0c); /顯示開(kāi),關(guān)光標(biāo) delay(5); lcd_wcmd(0x06); /移動(dòng)光標(biāo) delay(5); lcd_wcmd(0x0

21、1); /清除LCD的顯示容 delay(5);/*/ /* 設(shè)定顯示位置 /*/void lcd_pos(uchar pos) lcd_wcmd(pos | 0x80); /數(shù)據(jù)指針=80+地址變量/*/ /* LCD1602初始顯示子程序 /*/void LCD_init_DIS() delay(10); /延時(shí) lcd_init(); /初始化LCD lcd_pos(0); /設(shè)置顯示位置為第一行的第1個(gè)字符 for(m=0;m<16;m+) lcd_wdat(cdis1m); lcd_pos(0x40); /設(shè)置顯示位置為第二行第1個(gè)字符 for(m=0;m<16;m+)

22、lcd_wdat(cdis2m); delay(3000); /延時(shí) lcd_pos(0); /設(shè)置顯示位置為第一行的第1個(gè)字符 for(m=0;m<16;m+) lcd_wdat(cdis3m); lcd_pos(0x40); /設(shè)置顯示位置為第二行第1個(gè)字符 for(m=0;m<16;m+) lcd_wdat(cdis4m); for(m=0;m<2;m+) lcd_pos(0x0d+m); /顯示方向符號(hào) lcd_wdat(0x3e); /*/*數(shù)據(jù)轉(zhuǎn)換子程序/*/void data_conv() data_temp1=data_temp/10; /高位 if(data

23、_temp1=0) data_temp1=0x20; /高位為0不顯示 else data_temp1=data_temp1+0x30; data_temp2=data_temp%10; /低位 data_temp2=data_temp2+0x30;void code_conv() IRCOM5=IRCOM2; IRCOM6=IRCOM5&0x0f; /低位 if(IRCOM6>0x09) IRCOM6=IRCOM6+0x37; else IRCOM6=IRCOM6+0x30; IRCOM5=(IRCOM5&0xf0)>>4; /高位 if(IRCOM5>

24、;0x09) IRCOM5=IRCOM5+0x37; else IRCOM5=IRCOM5+0x30; /*/*數(shù)據(jù)顯示子程序/*/void data_dis() code_conv(); lcd_pos(0x03); lcd_wdat(IRCOM5);/ lcd_pos(0x08); lcd_wdat(IRCOM6); data_temp = snum; /顯示圈數(shù) data_conv(); lcd_pos(0x44); lcd_wdat(data_temp1);/ lcd_pos(0x45); lcd_wdat(data_temp2); data_temp = rate; /顯示速率 da

25、ta_conv(); lcd_pos(0x4d); lcd_wdat(data_temp1);/ lcd_pos(0x4e); lcd_wdat(data_temp2);/*/* 顯示運(yùn)行方向符號(hào)/*/void motor_DR() if(direction=1) /正轉(zhuǎn)方向標(biāo)志 for(m=0;m<2;m+) lcd_pos(0x0d+m); /顯示方向符號(hào) lcd_wdat(0x3e); else for(m=0;m<2;m+) /反轉(zhuǎn)方向標(biāo)志 lcd_pos(0x0d+m); /顯示方向符號(hào) lcd_wdat(0x3c); /*/* 顯示運(yùn)行狀態(tài)/*/void motor_R

26、UN() if(on_off=1) TR0=1; lcd_pos(7); /設(shè)置顯示位置為第一行的第1個(gè)字符 for(m=0;m<5;m+) lcd_wdat(cdis5m); /RUN motor_DR(); / else TR0=0; P1 =0xf0; lcd_pos(7); /設(shè)置顯示位置為第一行的第1個(gè)字符 for(m=0;m<5;m+) lcd_wdat(cdis6m); /STOP motor_DR(); / snum=snum1; / number1=0; /清圈數(shù)計(jì)數(shù)器 /* * 主程序 */main() LCD_init_DIS();/ IE=0x81; /允許

27、總中斷中斷,使能 INT0 外部中斷/ TCON=0x01; /觸發(fā)方式為脈沖負(fù)邊沿觸發(fā) TMOD = 0x01; /T0定時(shí)方式1 TL0 = 0x33; TH0 = 0xf5; ET0 = 1; EA = 1; P1 = 0xf0; while(1) IR_IN(); TEMP=IRCOM2; if(flag) /* 運(yùn)行控制*/ if(TEMP=0x05) /啟動(dòng)、停止 on_off=on_off; motor_RUN(); /* 設(shè)定圈數(shù)*/ if(TEMP=0x19) /增加圈數(shù) if(snum!=0x14) snum+; snum1=snum; if(TEMP=0x0D) /減少圈

28、數(shù) if(snum!=0x00) snum-; snum1=snum; /* 方向轉(zhuǎn)換*/ if(TEMP=0x1E) /正轉(zhuǎn) direction=1; motor_DR(); if(TEMP=0x0A) /反轉(zhuǎn) direction=0; motor_DR(); /* 速率調(diào)整*/ if(TEMP=0x0E) /增加速率,減速 if(rate!=0x10) rate+; if(TEMP=0x1A) /減少速率,加速 if(rate!=0x01) rate-; if(TEMP=0x44) if(on_off&(!pause1) pause1=1; TR0=0; /暫停 lcd_pos(7); /設(shè)置顯示位置 for(m=0;m<5;m+) lcd_wdat(cdis7m); /PAUSE else if(pause1) motor_RUN(); pause1=0; TR0=1; flag=0; / end of if(flag)/*/ if(number1=snum1) /與設(shè)定圈數(shù)是否相等 number1=0; on_off=0; TR0=0; snum=snum1; P1 =0xf0; motor_RUN(); data_dis(); / while(1) end /main end/*/* 定時(shí)器 0 中斷 /*/void motor_onoff() inte

溫馨提示

  • 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)論