单片机课程设计基于单片机活动门控制系统的设计与实现
《单片机课程设计基于单片机活动门控制系统的设计与实现》由会员分享,可在线阅读,更多相关《单片机课程设计基于单片机活动门控制系统的设计与实现(24页珍藏版)》请在装配图网上搜索。
1、基于单片机活动门控制系统的设计与实现科信学院课程设计说明书(2010/2011学年第 二 学期)课程名称 : 单片机课程设计 题 目 : 基于单片机的活动门设计 专业班级 : 学生姓名 : 学 号: 指导教师 : 设计周数 : 2周 设计成绩 : 年 月 日 目录1课设主要任务与技术要求3 1.1主要任务3 1.2技术要求32系统分析与设计32.1系统分析3 2.2活动门总体设计方案43. 单片机简介5 3.1 80C51单片机功能与引脚介绍64主要硬件电路6 4.1电机驱动电路6 4.2门限电路8 4.3按键去抖电路84.3.1作用84.3.2技术方案85. 单片机与PC机串口通讯96. 程
2、序设计9 6.1 单片机程序设计96.1.1程序流程图106.1.2源程序的代码13 6.2 上位机程序设计156.2.1控制界面166.2.2程序代码:167. 总结208. 参考文献20附录一 电路图21附录二 PCB版图22附录三 实物图231.课设主要任务与技术要求1.1主要任务系统分析与设计:对系统进行调研,详细分析系统,设计出基于单片机的活动门控制系统的技术方案;设计实现系统的关系技术:电机驱动、门限电路、软件控制;系统电路的设计与实现:器件选择、地址分配和硬件连接;系统软件的设计与实现:单片机代码的实现,计算机控制代码的实现;系统调试:调试串口、调试按键、调试驱动;系统联调。1.
3、2技术要求实现活动门的开关动作:在单片机的作用下,通过活动门上安装的控制按钮,控制外部电机实现活动门的开关动作(即用单片机控制电机的正反转);实现上位机软件控制活动门:利用计算机的软件实现对活动门的开关动作(即单片机与上位机的通信,完成对活动门的正确控制);使用单一供电电源,控制电机使用直流电机,活动门必须安装限位开关,实现门的自动控制。2系统分析与设计2.1系统分析要想实现活动门的开关动作,从理论上分析,最简单的方法就是用开关控制电机的通断,带动开关门机构作相应的动作。也就是说,只要安装一个电机就可以了。基本结构如下:图2.1 活动门结构图但是采用图2.1所示的控制方案,只能实现最为简单的开
4、关工作。然而实际的工作情况要复杂得多,这样的工作方式还存在着如下的问题。如何控制电机的正反转由于电机的动作十分简单,只能是正转或者是反转。对与图2.1所示的方案,需要采用触点开关才能实现每一个活动门的开关动作。并且需要判断当前活动门的开关状态。这就的需要在活动门的操作机构之上加入逻辑控制模块。是否能用单一电源方案图2.1所示的方案中,为了控制电机的正反转,采用了正、负双电源的供电方式。一般说来,这样的面板机构中,最好采用单电源供电的方式。采用单电源的方式控制电机的正反转就牵涉到电机的驱动电路的设计问题。能否利用软件控制活动门的开关活动门操作结构中的电机一般都是小型的直流电机,通过按钮改变电机的
5、正反转动作用。但是,对于某些特殊的要求或者是在某些程序中需要涉及到利用软件实现活动门的开关动作,这对于如图2.1所示的电路方案而言,是无法做到的,所以还需要对电路作进一步的改进,并在PC机软件中加入活动门的开关控制功能。2.2活动门总体设计方案机箱活动门控制原理框图如图2.2所示:PC机单片机驱动电路小电机发光二极管接近传感器触点开关图2.2 活动门控制原理框图各部分功能:PC机:使用C#.NET提供用户微机程序界面,并将用户对发光二极管的操作转化为控制指令发送到下位机上。单片机:监测和接收外部状态信号,控制发光二极管的亮和灭,并发送控制指令给驱动电路,控制小电机正转或反转。驱动电路:驱动电机
6、的动作,实现二极管的亮和灭。接近传感器:将当前二极管的状态信息反馈给单片机。触点开关:反映发光二极管的状态变化,并告知单片机发光二极管的状态。PC机与单片机通信:用串口通信。3. 单片机简介单片机是一种集成电路芯片。它采用超大规模技术将具有数据处理能力的微处理器(CPU)、存储器(含程序存储器ROM和数据存储器RAM)、输入、输出接口电路(I/O接口)集成在同一块芯片上,构成一个即小巧又很完善的计算机硬件系统,在单片机程序的控制下能准确、迅速、高效地完成程序设计者事先规定的任务。所以说,一片单片机芯片就具有了组成计算机的全部功能,从某种意义上来说,一块单片机就是一台微型计算机。由此来看,单片机
7、有着一般微处理器(CPU)芯片所不具备的功能,它可单独地完成现代工业控制所要求的智能化控制功能,这是单片机最大的特征。然而单片机又不同于单板机(一种将微处理器芯片、存储器芯片、输入输出接口芯片安装在同一块印制电路板上的微型计算机),单片机芯片在没有开发前,它只是具备功能极强的超大规模集成电路,如果对它进行应用开发,它便是一个小型的微型计算机控制系统,但它与单板机或个人电脑(PC机)有着本质的区别,与微型计算机相比单片机具有一下特点:体积小、结构简单、可靠性高 单片机把各功能不仅集成在一块芯片上,内部采用总线结构,减少了各芯片之间的连线,大大提高了单片机的可靠性与抗干扰能力。另外,其体积小,对于
8、强磁场环境易于采取屏蔽措施,适合在恶劣环境下工作。控制功能强 单片机虽然结构简单,但是它“五脏俱全”,已经具备了足够的控制功能。单片机具有较多的I/O口,CPU可以直接对I/O进行I/O操作、算术操作、逻辑操作和位操作,指令简单而丰富。所以单片机也是“面向控制”的计算机。低电压、低功耗 单片机已可在2.2V的电压下运行,有的已能在1.2V或0.9V下工作;功能降至为uA级,一颗纽扣电池供电就可以长期工作。优异的性能、价格比 由于单片机构成的控制系统硬件结构简单、开发期短、控制功能强、可靠性能高,因此,在达到同样功能的条件下,用单片机来发的控制系统比其他类型的微型计算机开发的控制系统价格更便宜。
9、3.1 80C51单片机功能与引脚介绍本设计采用的单片机型号为80C51,80C51单片机系列源于MCS-51系列。把所有厂家以8051为基核推出的各种型号80C51兼容型单片机统称为80C51系列。8051是MCS-51系列中最基础的单片机型号,其供应状态有8051(MaskROM)、8751(EPROM)、8031(ROMless)。 51系列单片机的主要功能特点: 一个8位微处理器CPU;片内振荡器,振荡频率范围为1.212MHZ;4KB/8KB的片内ROM(8031、8032、80C31无);128/256字节的片内RAM;片外ROM的寻址范围为64KB;片外RAM的寻址范围为64KB
10、;21个特殊功能寄存器(SFR);四个8位并行I/O接口(P0P3),32根I/O口线; 1个全双工UART串行口,可多级通信;2/3个16位定时/计数器;具有5/6个中断源,可编程为两个优先级;有位寻址功能,适于布尔处理的位处理机;111条指令;片内采用单总线结构;用单一+5V电源。4主要硬件电路 4.1电机驱动电路由于采用分立元件构成的直流电机的驱动电路原理上较为简单,但要考虑到器件的应用条件等一些因素,本次设计采用了专用的小功率直流电机驱动芯片。设计中采用的是东芝公司的TA7267BP,改芯片在相应的逻辑电平的控制下,能够实现电机的正转,反转,停止,和刹车4种动作。其逻辑电平的工作电压为
11、6V18V,驱动电机的工作电压为0V18V,是一款单电源供电的芯片。其封装如图4.1所示,各引脚功能定义如表4.1所示。图4.1 TA7267BP封装图表4.1 TA7267BP引脚功能定义引脚号名称作用1IN1控制指令输入12IN2控制指令输入23OUT1电机驱动输出14GND地信号5OUT2电机驱动输出26VS驱动级电源7VCC逻辑电路电源根据TA7267BP引脚功能定义,只要将单片机的控制信号接到TA7267BP的1、2两个引脚上,并把其驱动输出连接到被控制电机的输入端,就可以实现电机的正反转控制了。表4.2给出了TA7267BP的输入控制信号与驱动输出和电机的状态变化情况。表4.2 T
12、A7267BP输入控制信号与输出和电机的状态IN1IN2OUT1OUT2电机状态11LL刹车01LH正传10HL反转00高阻抗高阻抗停止4.2门限电路一般情况下,活动门的启停位置上都会安装限位开关。当活动门到达开或关的停止位置上时,限位开关被合上,从而发出一个电平变化的信号,提供给单片机,从而实现门的自动控制功能。本设计使用触点开关代替常用的限位开关,当活动门合上时,触点开关被闭合;当活动门打开时,触点开关打开,从而反映活动门开关状态变化所造成的电平变化。因而门限电路所起的作用就是告知单片机活动门状态的电路。当需要对活动门操作时,首先应根据门限电路的电平状态判断出活动门所处的状态,然后根据门的
13、状态决定电机的正反转;最后,用单片机发出相应的开门、关门的指令电平,控制电机实现开门和关门的指令电平,表4.3显示了门限和活动门的对应关系。表4.3 门限电路和活动门开关的对应关系门限电平门开关电机状态低按下开门高按下关门4.3按键去抖电路4.3.1作用当活动门的按键被按下时,首先应当进行去抖动处理。这是因为按键本身是一个机械开关,由于机械触点的弹性以及电压突跳等原因,在触点闭合或者是断开的瞬间会出现电压抖动的情况。在发生抖动时,单片机很难判别此时键是否按下,为此就要进行按键去抖处理。4.3.2技术方案按键去抖动处理的方法一般有两种,一种是采用硬件电路去抖,例如,加入R-S触发器;另一种方法是
14、采用软件去抖,利用软件的时间延迟程序以躲过抖动时间,待信号稳定后再进行按键扫描。本实验主要利用了软件去抖动的方法。软件去抖动的程序:DL:MOV R0,#0AH DL2:MOV R1,#250 DL1:NOP NOP DJNZ R1,DL1 DJNZ R0,DL2 RET5单片机与PC机串口通讯51单片机有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通讯。进行串行通讯时要满足一定的条件,比如电脑的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,我们采用了专用芯片MAX232进行转换,我们采用了三线制连接串口,也就是说和电脑的9针串口只连接
15、其中的3根线:第5脚的GND、第2脚的RXD、第3脚的TXD。这是最简单的连接方法,但是对我们来说已经足够使用了,电路如下图所示,MAX232的第10脚和单片机的11脚连接,第9脚和单片机的10脚连接,第15脚和单片机的20脚连接。全双工的串行通讯口原理图如图5.1所示:图5.1全双工的串行通讯口原理图6. 程序设计与实验活动门控制的程序包括两方面的内容;一个是单片机方面的编程,包括对活动门状态的监测和控制,以及微机指令的接收;另一方面是计算机软件编程,包括人机控制界面的编写和控制指令的发送。计算机软件编程方面的内容已在上一章作了详细介绍。下面主要介绍单片机的程序设计。6.1 单片机程序设计单
16、片机的程序完成两个功能,首先是监测活动门开关状态,并以此为依据输出活动门的控制指令。6.1.1程序流程图主程序MAIN的流程图: 外部中断零程序INT的流程图:设置串口工作方式设置定时器T1工作方式并赋值开串口中断并设置串口中断触发方式开CPU中断和外部中断零等待中断中断返回开始保护现场是否有键按下NYP2.0=1?Y电机正转D1亮D2灭N调用延时4秒程序电机停止D1和D2灭恢复现场中断返回中断入口电机反转D1灭D2亮图6.1主程序的流程图 图6.2外部中断程序流程图串口中断程序TC流程图:中断入口保护现场和清RI从SBUF中读数送累加器AA=10H?YN把01写SBUF送到上位机NY电机反转
17、D2亮P2.0=0?NY电机正转D1亮调用4秒的延时程序调用4秒的延时程序P2.0=0?把10写入SBUF送到上位机电机停转灯灭清RI恢复现场中断返回图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
18、;电平触发方式 SETB ES ;开串口中断 SETB EA ;开CPU中断 SETB TR1;启动定时器T1 LJMP $ ;等待中断/*串口中断程序*/ TC: CLR EA CLR RI PUSH PSW PUSH ACC/*读上位机发送的控制指令*/ MOV A,SBUF CJNE A,#01H,B1;不等于01转去执行开门动作 JB P2.0,CLOSE ;p2.0=1,转CLOSE SJMP B5 CLOSE:MOV P1,#0F9H;执行关门动作 ACALL DLL;调用延时程序 MOV P1,#0FFH;电机停转,灯灭 AJMP B5 B1: JB P2.0 ,B6;p2.0=
19、1,转B6(门已开,告知上位机) MOV P1,#0F6H;执行开门动作 ACALL DLL;调用延时程序 MOV P1,#0FFH;电机停转,灯灭 B6:;ClR P3.1 MOV A,#10H;向上位机发10H,门已开 MOV SBUF,A JNB TI,$ CLR TI AJMP B3 B5:;ClR P3.1 MOV A,#01H;向上位机发01H,门已关 MOV SBUF,A JNB TI,$ CLR TI /*恢复现场*/ 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;暂存按键现状 MOV A2,C ACALL DL MOV C,P3.2 ;再取按键状态 ORL C,A2 ;C=0有按键 MOV A3,C JB A3,Q ;为1跳出 ;有键按下是判断接近触发器的状态,给驱动电路相应的控制信号,控制相应的灯亮和灭 T2:JNB P2.0,T5;p2.0=0,转T5(门已关闭,执行开门) CLR P1.1 SETB P1.0;执行关门动作(反转) CLR P1.2 SETB P1.3 SJMP T4 T5:CLR P1.0 SETB P1.1;执行开门动作(正
21、传) CLR P1.3 SETB P1.2 T4:ACALL DLL;调用延时程序 SETB P1.0 SETB P1.1 SETB P1.2 SETB P1.3;电机刹车,灯灭 T6:POP ACC POP PSW SETB EA ;恢复现场 Q:RETI ;用于按键去抖的延时程序 DL:MOV R0,#0AH DL2:MOV R1,#250 DL1:NOP NOP DJNZ R1,DL1 DJNZ R0,DL2 RET;用于控制电机正反转时间的程序 DLL:MOV R2,#20DDL3:MOV R0,#200DLL2:MOV R1,#250DLL1:NOP NOP DJNZ R1,DLL1
22、 DJNZ R0,DLL2 DJNZ R2,DDL3 RETEND6.2 上位机程序设计软件控制活动门需要实现两个功能:一是人机控制界面的编写,二是活动门控制信号的传送和执行。第一个功能的主要内容是Windows环境下可视化程序的开发;第二个功能主要是微机与单片机之间的通信。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;u
23、sing System.Windows.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 send
24、er, EventArgs e) if (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.BaudRat
25、e = 4800; serialPort1.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
26、void button2_Click(object sender, EventArgs e) try if ( serialPort1.IsOpen) Dout0 = 10; this.serialPort1.Write(Dout, 0, Dout.Length); catch MessageBox.Show(发送命令失败!, 出错啦!, MessageBoxButtons.OK, MessageBoxIcon.Error); private void button3_Click(object sender, EventArgs e) try if ( serialPort1.IsOpen)
27、Dout0 = 01; this.serialPort1.Write(Dout, 0, Dout.Length); catch MessageBox.Show(发送命令失败!, 出错啦!, MessageBoxButtons.OK, MessageBoxIcon.Error); private void serialPort1_DataReceived_1(object sender, SerialDataReceivedEventArgs e) Control.CheckForIllegalCrossThreadCalls = false;/不使用委托 string str = ; str
28、= serialPort1.ReadExisting(); switch (str) case 01: listBox1.Items.Add(门为关闭状态!); break; case 10: listBox1.Items.Add(门为打开状态!); break; default: listBox1.Items.Add(数据传输失败,无法获取门状态!); break; 7总结8参考文献1 周元一.电机与电气控制.机械工业出版社.2006.82 汤天浩.电机与拖动基础. 机械工业出版社.2004.73 曹克澄.单片机原理及应用. 机械工业出版社.2005.4 孙家启等编著.Visual Basic程序设计教程.合肥:安徽大学出版社,20055 靳达编著.单片机应用系统开发实例导航.北京:人民邮电出版社,20036 南建辉、熊鸣、王军茹.MCS-51单片机原理及应用实例.清华大学出版社,20047 万福君.单片微机原理系统设计与开发应用.中国科学出版社,19958 张友德、赵志英等.单片机原理应用与实验.上海复旦大学出版社,1992附录一 电路图附录二 PCB版图附录三 实物图课程设计评 语课程设计成 绩指导教师(签字) 年 月 日第 24 页 共 24 页
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。