單片機課程設計-基于單片機活動門控制系統(tǒng)的設計與實現(xiàn)_第1頁
單片機課程設計-基于單片機活動門控制系統(tǒng)的設計與實現(xiàn)_第2頁
單片機課程設計-基于單片機活動門控制系統(tǒng)的設計與實現(xiàn)_第3頁
單片機課程設計-基于單片機活動門控制系統(tǒng)的設計與實現(xiàn)_第4頁
單片機課程設計-基于單片機活動門控制系統(tǒng)的設計與實現(xiàn)_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、科信學院課程設計說明書(2010/2011學年第 二 學期)課程名稱 : 單片機課程設計 題 目 : 基于單片機的活動門設計 專業(yè)班級 : 學生姓名 : 學 號: 指導教師 : 設計周數(shù) : 2周 設計成績 : 年 月 日 目錄1課設主要任務與技術要求3 1.1主要任務3 1.2技術要求32系統(tǒng)分析與設計32.1系統(tǒng)分析3 2.2活動門總體設計方案43. 單片機簡介5 3.1 80C51單片機功能與引腳介紹64主要硬件電路6 4.1電機驅(qū)動電路6 4.2門限電路8 4.3按鍵去抖電路84.3.1作用84.3.2技術方案85. 單片機與PC機串口通訊96. 程序設計9 6.1 單片機程序設計96

2、.1.1程序流程圖106.1.2源程序的代碼13 6.2 上位機程序設計156.2.1控制界面166.2.2程序代碼:167. 總結(jié)208. 參考文獻20附錄一 電路圖21附錄二 PCB版圖22附錄三 實物圖231.課設主要任務與技術要求1.1主要任務系統(tǒng)分析與設計:對系統(tǒng)進行調(diào)研,詳細分析系統(tǒng),設計出基于單片機的活動門控制系統(tǒng)的技術方案;設計實現(xiàn)系統(tǒng)的關系技術:電機驅(qū)動、門限電路、軟件控制;系統(tǒng)電路的設計與實現(xiàn):器件選擇、地址分配和硬件連接;系統(tǒng)軟件的設計與實現(xiàn):單片機代碼的實現(xiàn),計算機控制代碼的實現(xiàn);系統(tǒng)調(diào)試:調(diào)試串口、調(diào)試按鍵、調(diào)試驅(qū)動;系統(tǒng)聯(lián)調(diào)。1.2技術要求實現(xiàn)活動門的開關動作:在單

3、片機的作用下,通過活動門上安裝的控制按鈕,控制外部電機實現(xiàn)活動門的開關動作(即用單片機控制電機的正反轉(zhuǎn));實現(xiàn)上位機軟件控制活動門:利用計算機的軟件實現(xiàn)對活動門的開關動作(即單片機與上位機的通信,完成對活動門的正確控制);使用單一供電電源,控制電機使用直流電機,活動門必須安裝限位開關,實現(xiàn)門的自動控制。2系統(tǒng)分析與設計2.1系統(tǒng)分析要想實現(xiàn)活動門的開關動作,從理論上分析,最簡單的方法就是用開關控制電機的通斷,帶動開關門機構(gòu)作相應的動作。也就是說,只要安裝一個電機就可以了?;窘Y(jié)構(gòu)如下:圖2.1 活動門結(jié)構(gòu)圖但是采用圖2.1所示的控制方案,只能實現(xiàn)最為簡單的開關工作。然而實際的工作情況要復雜得多

4、,這樣的工作方式還存在著如下的問題。如何控制電機的正反轉(zhuǎn)由于電機的動作十分簡單,只能是正轉(zhuǎn)或者是反轉(zhuǎn)。對與圖2.1所示的方案,需要采用觸點開關才能實現(xiàn)每一個活動門的開關動作。并且需要判斷當前活動門的開關狀態(tài)。這就的需要在活動門的操作機構(gòu)之上加入邏輯控制模塊。是否能用單一電源方案圖2.1所示的方案中,為了控制電機的正反轉(zhuǎn),采用了正、負雙電源的供電方式。一般說來,這樣的面板機構(gòu)中,最好采用單電源供電的方式。采用單電源的方式控制電機的正反轉(zhuǎn)就牽涉到電機的驅(qū)動電路的設計問題。能否利用軟件控制活動門的開關活動門操作結(jié)構(gòu)中的電機一般都是小型的直流電機,通過按鈕改變電機的正反轉(zhuǎn)動作用。但是,對于某些特殊的要

5、求或者是在某些程序中需要涉及到利用軟件實現(xiàn)活動門的開關動作,這對于如圖2.1所示的電路方案而言,是無法做到的,所以還需要對電路作進一步的改進,并在PC機軟件中加入活動門的開關控制功能。2.2活動門總體設計方案機箱活動門控制原理框圖如圖2.2所示:PC機單片機驅(qū)動電路小電機發(fā)光二極管接近傳感器觸點開關圖2.2 活動門控制原理框圖各部分功能:PC機:使用C#.NET提供用戶微機程序界面,并將用戶對發(fā)光二極管的操作轉(zhuǎn)化為控制指令發(fā)送到下位機上。單片機:監(jiān)測和接收外部狀態(tài)信號,控制發(fā)光二極管的亮和滅,并發(fā)送控制指令給驅(qū)動電路,控制小電機正轉(zhuǎn)或反轉(zhuǎn)。驅(qū)動電路:驅(qū)動電機的動作,實現(xiàn)二極管的亮和滅。接近傳感

6、器:將當前二極管的狀態(tài)信息反饋給單片機。觸點開關:反映發(fā)光二極管的狀態(tài)變化,并告知單片機發(fā)光二極管的狀態(tài)。PC機與單片機通信:用串口通信。3. 單片機簡介單片機是一種集成電路芯片。它采用超大規(guī)模技術將具有數(shù)據(jù)處理能力的微處理器(CPU)、存儲器(含程序存儲器ROM和數(shù)據(jù)存儲器RAM)、輸入、輸出接口電路(I/O接口)集成在同一塊芯片上,構(gòu)成一個即小巧又很完善的計算機硬件系統(tǒng),在單片機程序的控制下能準確、迅速、高效地完成程序設計者事先規(guī)定的任務。所以說,一片單片機芯片就具有了組成計算機的全部功能,從某種意義上來說,一塊單片機就是一臺微型計算機。由此來看,單片機有著一般微處理器(CPU)芯片所不具

7、備的功能,它可單獨地完成現(xiàn)代工業(yè)控制所要求的智能化控制功能,這是單片機最大的特征。然而單片機又不同于單板機(一種將微處理器芯片、存儲器芯片、輸入輸出接口芯片安裝在同一塊印制電路板上的微型計算機),單片機芯片在沒有開發(fā)前,它只是具備功能極強的超大規(guī)模集成電路,如果對它進行應用開發(fā),它便是一個小型的微型計算機控制系統(tǒng),但它與單板機或個人電腦(PC機)有著本質(zhì)的區(qū)別,與微型計算機相比單片機具有一下特點:體積小、結(jié)構(gòu)簡單、可靠性高 單片機把各功能不僅集成在一塊芯片上,內(nèi)部采用總線結(jié)構(gòu),減少了各芯片之間的連線,大大提高了單片機的可靠性與抗干擾能力。另外,其體積小,對于強磁場環(huán)境易于采取屏蔽措施,適合在惡

8、劣環(huán)境下工作??刂乒δ軓?單片機雖然結(jié)構(gòu)簡單,但是它“五臟俱全”,已經(jīng)具備了足夠的控制功能。單片機具有較多的I/O口,CPU可以直接對I/O進行I/O操作、算術操作、邏輯操作和位操作,指令簡單而豐富。所以單片機也是“面向控制”的計算機。低電壓、低功耗 單片機已可在2.2V的電壓下運行,有的已能在1.2V或0.9V下工作;功能降至為uA級,一顆紐扣電池供電就可以長期工作。優(yōu)異的性能、價格比 由于單片機構(gòu)成的控制系統(tǒng)硬件結(jié)構(gòu)簡單、開發(fā)期短、控制功能強、可靠性能高,因此,在達到同樣功能的條件下,用單片機來發(fā)的控制系統(tǒng)比其他類型的微型計算機開發(fā)的控制系統(tǒng)價格更便宜。3.1 80C51單片機功能與引腳介

9、紹本設計采用的單片機型號為80C51,80C51單片機系列源于MCS-51系列。把所有廠家以8051為基核推出的各種型號80C51兼容型單片機統(tǒng)稱為80C51系列。8051是MCS-51系列中最基礎的單片機型號,其供應狀態(tài)有8051(MaskROM)、8751(EPROM)、8031(ROMless)。 51系列單片機的主要功能特點: 一個8位微處理器CPU;片內(nèi)振蕩器,振蕩頻率范圍為1.212MHZ;4KB/8KB的片內(nèi)ROM(8031、8032、80C31無);128/256字節(jié)的片內(nèi)RAM;片外ROM的尋址范圍為64KB;片外RAM的尋址范圍為64KB;21個特殊功能寄存器(SFR);四

10、個8位并行I/O接口(P0P3),32根I/O口線; 1個全雙工UART串行口,可多級通信;2/3個16位定時/計數(shù)器;具有5/6個中斷源,可編程為兩個優(yōu)先級;有位尋址功能,適于布爾處理的位處理機;111條指令;片內(nèi)采用單總線結(jié)構(gòu);用單一+5V電源。4主要硬件電路 4.1電機驅(qū)動電路由于采用分立元件構(gòu)成的直流電機的驅(qū)動電路原理上較為簡單,但要考慮到器件的應用條件等一些因素,本次設計采用了專用的小功率直流電機驅(qū)動芯片。設計中采用的是東芝公司的TA7267BP,改芯片在相應的邏輯電平的控制下,能夠?qū)崿F(xiàn)電機的正轉(zhuǎn),反轉(zhuǎn),停止,和剎車4種動作。其邏輯電平的工作電壓為6V18V,驅(qū)動電機的工作電壓為0V

11、18V,是一款單電源供電的芯片。其封裝如圖4.1所示,各引腳功能定義如表4.1所示。圖4.1 TA7267BP封裝圖表4.1 TA7267BP引腳功能定義引腳號名稱作用1IN1控制指令輸入12IN2控制指令輸入23OUT1電機驅(qū)動輸出14GND地信號5OUT2電機驅(qū)動輸出26VS驅(qū)動級電源7VCC邏輯電路電源根據(jù)TA7267BP引腳功能定義,只要將單片機的控制信號接到TA7267BP的1、2兩個引腳上,并把其驅(qū)動輸出連接到被控制電機的輸入端,就可以實現(xiàn)電機的正反轉(zhuǎn)控制了。表4.2給出了TA7267BP的輸入控制信號與驅(qū)動輸出和電機的狀態(tài)變化情況。表4.2 TA7267BP輸入控制信號與輸出和電

12、機的狀態(tài)IN1IN2OUT1OUT2電機狀態(tài)11LL剎車01LH正傳10HL反轉(zhuǎn)00高阻抗高阻抗停止4.2門限電路一般情況下,活動門的啟停位置上都會安裝限位開關。當活動門到達開或關的停止位置上時,限位開關被合上,從而發(fā)出一個電平變化的信號,提供給單片機,從而實現(xiàn)門的自動控制功能。本設計使用觸點開關代替常用的限位開關,當活動門合上時,觸點開關被閉合;當活動門打開時,觸點開關打開,從而反映活動門開關狀態(tài)變化所造成的電平變化。因而門限電路所起的作用就是告知單片機活動門狀態(tài)的電路。當需要對活動門操作時,首先應根據(jù)門限電路的電平狀態(tài)判斷出活動門所處的狀態(tài),然后根據(jù)門的狀態(tài)決定電機的正反轉(zhuǎn);最后,用單片機

13、發(fā)出相應的開門、關門的指令電平,控制電機實現(xiàn)開門和關門的指令電平,表4.3顯示了門限和活動門的對應關系。表4.3 門限電路和活動門開關的對應關系門限電平門開關電機狀態(tài)低按下開門高按下關門4.3按鍵去抖電路4.3.1作用當活動門的按鍵被按下時,首先應當進行去抖動處理。這是因為按鍵本身是一個機械開關,由于機械觸點的彈性以及電壓突跳等原因,在觸點閉合或者是斷開的瞬間會出現(xiàn)電壓抖動的情況。在發(fā)生抖動時,單片機很難判別此時鍵是否按下,為此就要進行按鍵去抖處理。4.3.2技術方案按鍵去抖動處理的方法一般有兩種,一種是采用硬件電路去抖,例如,加入R-S觸發(fā)器;另一種方法是采用軟件去抖,利用軟件的時間延遲程序

14、以躲過抖動時間,待信號穩(wěn)定后再進行按鍵掃描。本實驗主要利用了軟件去抖動的方法。軟件去抖動的程序:DL:MOV R0,#0AH DL2:MOV R1,#250 DL1:NOP NOP DJNZ R1,DL1 DJNZ R0,DL2 RET5單片機與PC機串口通訊51單片機有一個全雙工的串行通訊口,所以單片機和電腦之間可以方便地進行串口通訊。進行串行通訊時要滿足一定的條件,比如電腦的串口是RS232電平的,而單片機的串口是TTL電平的,兩者之間必須有一個電平轉(zhuǎn)換電路,我們采用了專用芯片MAX232進行轉(zhuǎn)換,我們采用了三線制連接串口,也就是說和電腦的9針串口只連接其中的3根線:第5腳的GND、第2腳

15、的RXD、第3腳的TXD。這是最簡單的連接方法,但是對我們來說已經(jīng)足夠使用了,電路如下圖所示,MAX232的第10腳和單片機的11腳連接,第9腳和單片機的10腳連接,第15腳和單片機的20腳連接。全雙工的串行通訊口原理圖如圖5.1所示:圖5.1全雙工的串行通訊口原理圖6. 程序設計與實驗活動門控制的程序包括兩方面的內(nèi)容;一個是單片機方面的編程,包括對活動門狀態(tài)的監(jiān)測和控制,以及微機指令的接收;另一方面是計算機軟件編程,包括人機控制界面的編寫和控制指令的發(fā)送。計算機軟件編程方面的內(nèi)容已在上一章作了詳細介紹。下面主要介紹單片機的程序設計。6.1 單片機程序設計單片機的程序完成兩個功能,首先是監(jiān)測活

16、動門開關狀態(tài),并以此為依據(jù)輸出活動門的控制指令。6.1.1程序流程圖主程序MAIN的流程圖: 外部中斷零程序INT的流程圖:設置串口工作方式設置定時器T1工作方式并賦值開串口中斷并設置串口中斷觸發(fā)方式開CPU中斷和外部中斷零等待中斷中斷返回開始保護現(xiàn)場是否有鍵按下NYP2.0=1?Y電機正轉(zhuǎn)D1亮D2滅N調(diào)用延時4秒程序電機停止D1和D2滅恢復現(xiàn)場中斷返回中斷入口電機反轉(zhuǎn)D1滅D2亮圖6.1主程序的流程圖 圖6.2外部中斷程序流程圖串口中斷程序TC流程圖:中斷入口保護現(xiàn)場和清RI從SBUF中讀數(shù)送累加器AA=10H?YN把01寫SBUF送到上位機NY電機反轉(zhuǎn)D2亮P2.0=0?NY電機正轉(zhuǎn)D1

17、亮調(diào)用4秒的延時程序調(diào)用4秒的延時程序P2.0=0?把10寫入SBUF送到上位機電機停轉(zhuǎn)燈滅清RI恢復現(xiàn)場中斷返回圖6.3 串口中斷程序流程圖6.1.2源程序的代碼 ORG 0000H LJMP MAIN ORG 0003H LJMP INT ORG 0023H LJMP TC ORG 0030HMAIN: MOV SP,#60H MOV SCON,#50H;串口工作方式1 MOV TMOD,#20H;T1為定時方式2MOV PC0N,#80H MOV TH1,#0F3H MOV TL1,#0F3H;置初值 SETB EX0 ;開外部中斷零 CLR IT0 ;電平觸發(fā)方式 SETB ES ;開

18、串口中斷 SETB EA ;開CPU中斷 SETB TR1;啟動定時器T1 LJMP $ ;等待中斷/*串口中斷程序*/ TC: CLR EA CLR RI PUSH PSW PUSH ACC/*讀上位機發(fā)送的控制指令*/ MOV A,SBUF CJNE A,#01H,B1;不等于01轉(zhuǎn)去執(zhí)行開門動作 JB P2.0,CLOSE ;p2.0=1,轉(zhuǎn)CLOSE SJMP B5 CLOSE:MOV P1,#0F9H;執(zhí)行關門動作 ACALL DLL;調(diào)用延時程序 MOV P1,#0FFH;電機停轉(zhuǎn),燈滅 AJMP B5 B1: JB P2.0 ,B6;p2.0=1,轉(zhuǎn)B6(門已開,告知上位機) M

19、OV P1,#0F6H;執(zhí)行開門動作 ACALL DLL;調(diào)用延時程序 MOV P1,#0FFH;電機停轉(zhuǎn),燈滅 B6:;ClR P3.1 MOV A,#10H;向上位機發(fā)10H,門已開 MOV SBUF,A JNB TI,$ CLR TI AJMP B3 B5:;ClR P3.1 MOV A,#01H;向上位機發(fā)01H,門已關 MOV SBUF,A JNB TI,$ CLR TI /*恢復現(xiàn)場*/ B3:CLR RI POP ACC POP PSW SETB EA RETI /*外部中斷零程序 */ INT:CLR EA PUSH PSW PUSH ACC;判斷是否有按鍵按下,并進行按鍵去抖

20、 A2 BIT 21H A3 BIT 23H MOV C,P3.2;暫存按鍵現(xiàn)狀 MOV A2,C ACALL DL MOV C,P3.2 ;再取按鍵狀態(tài) ORL C,A2 ;C=0有按鍵 MOV A3,C JB A3,Q ;為1跳出 ;有鍵按下是判斷接近觸發(fā)器的狀態(tài),給驅(qū)動電路相應的控制信號,控制相應的燈亮和滅 T2:JNB P2.0,T5;p2.0=0,轉(zhuǎn)T5(門已關閉,執(zhí)行開門) CLR P1.1 SETB P1.0;執(zhí)行關門動作(反轉(zhuǎn)) CLR P1.2 SETB P1.3 SJMP T4 T5:CLR P1.0 SETB P1.1;執(zhí)行開門動作(正傳) CLR P1.3 SETB P

21、1.2 T4:ACALL DLL;調(diào)用延時程序 SETB P1.0 SETB P1.1 SETB P1.2 SETB P1.3;電機剎車,燈滅 T6:POP ACC POP PSW SETB EA ;恢復現(xiàn)場 Q:RETI ;用于按鍵去抖的延時程序 DL:MOV R0,#0AH DL2:MOV R1,#250 DL1:NOP NOP DJNZ R1,DL1 DJNZ R0,DL2 RET;用于控制電機正反轉(zhuǎn)時間的程序 DLL:MOV R2,#20DDL3:MOV R0,#200DLL2:MOV R1,#250DLL1:NOP NOP DJNZ R1,DLL1 DJNZ R0,DLL2 DJNZ

22、 R2,DDL3 RETEND6.2 上位機程序設計軟件控制活動門需要實現(xiàn)兩個功能:一是人機控制界面的編寫,二是活動門控制信號的傳送和執(zhí)行。第一個功能的主要內(nèi)容是Windows環(huán)境下可視化程序的開發(fā);第二個功能主要是微機與單片機之間的通信。6.2.1控制界面圖6.4上位機控制界面6.2.2程序代碼:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Window

23、s.Forms;using System.IO.Ports;namespace HDMKZ public partial class Form1 : Form public Form1() InitializeComponent(); private void Form1_Load(object sender, EventArgs e) comboBox1.SelectedIndex = 0; byte Dout = new byte1; byte Din = new byte1; private void button1_Click(object sender, EventArgs e) i

24、f (serialPort1.IsOpen) serialPort1.Close(); button1.Text = 關閉串口; textBox1.Text = 串口未打開,不可以進行串口通信!; listBox1.Items.Add(初始化失敗,禁止可以進行通信!); else try textBox3.Text = 4800bps; textBox4.Text = 8; textBox6.Text = 1; serialPort1.PortName = (String)comboBox1.SelectedItem; serialPort1.BaudRate = 4800; serialPo

25、rt1.DataBits = 8; serialPort1.StopBits = StopBits.One; serialPort1.Parity = Parity.None; serialPort1.RtsEnable = true; serialPort1.Open(); button1.Text = 打開串口; textBox1.Text = 串口已打開,可以進行串口通信!; catch MessageBox.Show(串口未打開!, 出錯啦!, MessageBoxButtons.OK, MessageBoxIcon.Error); private void button2_Click(object sender, EventArgs e) try if ( serialPort1.IsOpen) Dout0 = 10; this.serialPort1.Write(Dout, 0, Dout.Length); catch MessageBox.Show(發(fā)送命令失??!, 出錯啦!, MessageBoxButtons.OK, MessageBoxIcon.Error); private void button3_Click(object sender, Even

溫馨提示

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

評論

0/150

提交評論