基于单片机活动门控制系统的设计与实现.doc

上传人:李司机 文档编号:1091099 上传时间:2022-06-23 格式:DOC 页数:22 大小:1.67MB
返回 下载 相关 举报
基于单片机活动门控制系统的设计与实现.doc_第1页
第1页 / 共22页
基于单片机活动门控制系统的设计与实现.doc_第2页
第2页 / 共22页
基于单片机活动门控制系统的设计与实现.doc_第3页
第3页 / 共22页
基于单片机活动门控制系统的设计与实现.doc_第4页
第4页 / 共22页
基于单片机活动门控制系统的设计与实现.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《基于单片机活动门控制系统的设计与实现.doc》由会员分享,可在线阅读,更多相关《基于单片机活动门控制系统的设计与实现.doc(22页珍藏版)》请在三一办公上搜索。

1、目录:1.课设主要任务与技术要求31.1主要任务31.2技术要求32系统分析与设计32.1系统分析32.1活动门总体设计方案43 单片机简介53.1 80C51单片机功能与引脚介绍64主要硬件电路74.1电机驱动电路74.2门限电路84.3按键去抖电路84.3.1作用84.3.2技术方案95单片机与PC机串口通讯96. 程序设计与实验106.1 单片机程序设计106.1.1程序流程图106.1.2源程序的代码116.2 上位机程序设计166.2.1控制界面166.2.2程序代码:16参考文献20附录一电路图20附录二 PCB版图21附录三实物图211.课设主要任务与技术要求1.1主要任务1系统

2、分析与设计:对系统进行调研,详细分析系统,设计出基于单片机的活动门控制系统的技术方案;2设计实现系统的关系技术:电机驱动、门限电路、软件控制;3系统电路的设计与实现:器件选择、地址分配和硬件连接;4系统软件的设计与实现:单片机代码的实现,计算机控制代码的实现;5系统调试:调试串口、调试按键、调试驱动;6系统联调。1.2技术要求1实现活动门的开关动作:在单片机的作用下,通过活动门上安装的控制按钮,控制外部电机实现活动门的开关动作即用单片机控制电机的正反转;2实现上位机软件控制活动门:利用计算机的软件实现对活动门的开关动作即单片机与上位机的通信,完成对活动门的正确控制;3使用单一供电电源,控制电机

3、使用直流电机,活动门必须安装限位开关,实现门的自动控制。2系统分析与设计2.1系统分析要想实现活动门的开关动作,从理论上分析,最简单的方法就是用开关控制电机的通断,带动开关门机构作相应的动作。也就是说,只要安装一个电机就可以了。基本结构如下:图1.1 活动门结构图但是采用图1.1所示的控制方案,只能实现最为简单的开关工作。然而实际的工作情况要复杂得多,这样的工作方式还存在着如下的问题。1如何控制电机的正反转由于电机的动作十分简单,只能是正转或者是反转。对与图1.1所示的方案,需要采用触点开关才能实现每一个活动门的开关动作。并且需要判断当前活动门的开关状态。这就的需要在活动门的操作机构之上加入逻

4、辑控制模块。2是否能用单一电源方案图1.1所示的方案中,为了控制电机的正反转,采用了正、负双电源的供电方式。一般说来,这样的面板机构中,最好采用单电源供电的方式。采用单电源的方式控制电机的正反转就牵涉到电机的驱动电路的设计问题。3能否利用软件控制活动门的开关活动门操作结构中的电机一般都是小型的直流电机,通过按钮改变电机的正反转动作用。但是,对于某些特殊的要求或者是在某些程序中需要涉及到利用软件实现活动门的开关动作,这对于如图1.1所示的电路方案而言,是无法做到的,所以还需要对电路作进一步的改进,并在PC机软件中加入活动门的开关控制功能。2.1活动门总体设计方案机箱活动门控制原理框图如图1.2所

5、示:PC机单片机驱动电路小电机发光二极管触点开关关接近传感器发光二极管图1.2各部分功能:PC机:使用C#.NET提供用户微机程序界面,并将用户对发光二极管的操作转化为控制指令发送到下位机上。单片机:监测和接收外部状态信号,控制发光二极管的亮和灭,并发送控制指令给驱动电路,控制小电机正转或反转。驱动电路:驱动电机的动作,实现二极管的亮和灭。接近传感器:将当前二极管的状态信息反馈给单片机。触点开关:反映发光二极管的状态变化,并告知单片机发光二极管的状态。PC机与单片机通信:用串口通信。3 单片机简介单片机是一种集成电路芯片。它采用超大规模技术将具有数据处理能力的微处理器、存储器含程序存储器ROM

6、和数据存储器RAM、输入、输出接口电路集成在同一块芯片上,构成一个即小巧又很完善的计算机硬件系统,在单片机程序的控制下能准确、迅速、高效地完成程序设计者事先规定的任务。所以说,一片单片机芯片就具有了组成计算机的全部功能,从某种意义上来说,一块单片机就是一台微型计算机。由此来看,单片机有着一般微处理器CPU芯片所不具备的功能,它可单独地完成现代工业控制所要求的智能化控制功能,这是单片机最大的特征。然而单片机又不同于单板机一种将微处理器芯片、存储器芯片、输入输出接口芯片安装在同一块印制电路板上的微型计算机,单片机芯片在没有开发前,它只是具备功能极强的超大规模集成电路,如果对它进行应用开发,它便是一

7、个小型的微型计算机控制系统,但它与单板机或个人电脑有着本质的区别,与微型计算机相比单片机具有一下特点:1体积小、结构简单、可靠性高 单片机把各功能不仅集成在一块芯片上,部采用总线结构,减少了各芯片之间的连线,大大提高了单片机的可靠性与抗干扰能力。另外,其体积小,对于强磁场环境易于采取屏蔽措施,适合在恶劣环境下工作。2控制功能强 单片机虽然结构简单,但是它五脏俱全,已经具备了足够的控制功能。单片机具有较多的I/O口,CPU可以直接对I/O进行I/O操作、算术操作、逻辑操作和位操作,指令简单而丰富。所以单片机也是面向控制的计算机。3低电压、低功耗 单片机已可在2.2V的电压下运行,有的已能在1.2

8、V或0.9V下工作;功能降至为uA级,一颗纽扣电池供电就可以长期工作。4优异的性能、价格比 由于单片机构成的控制系统硬件结构简单、开发期短、控制功能强、可靠性能高,因此,在达到同样功能的条件下,用单片机来发的控制系统比其他类型的微型计算机开发的控制系统价格更便宜。3.1 80C51单片机功能与引脚介绍本设计采用的单片机型号为80C51,80C51单片机系列源于MCS-51系列。把所有厂家以8051为基核推出的各种型号80C51兼容型单片机统称为80C51系列。8051是MCS-51系列中最基础的单片机型号,其供应状态有8051、8751、8031。 51系列单片机的主要功能特点: 1、一个8位

9、微处理器CPU;2、片振荡器,振荡频率围为1.212MHZ;3、4KB/8KB的片ROM8031、8032、80C31无;4、128/256字节的片RAM;5、片外ROM的寻址围为64KB;6、片外RAM的寻址围为64KB;7、21个特殊功能寄存器;8、四个8位并行I/O接口,32根I/O口线; 9、1个全双工UART串行口,可多级通信;10、2/3个16位定时/计数器;11、具有5/6个中断源,可编程为两个优先级;12、有位寻址功能,适于布尔处理的位处理机;13、111条指令;14、片采用单总线结构;15、用单一+5V电源。4主要硬件电路4.1电机驱动电路由于采用分立元件构成的直流电机的驱动

10、电路原理上较为简单,但要考虑到器件的应用条件等一些因素,本次设计采用了专用的小功率直流电机驱动芯片。设计中采用的是东芝公司的TA7267BP,改芯片在相应的逻辑电平的控制下,能够实现电机的正转,反转,停止,和刹车4种动作。其逻辑电平的工作电压为6V18V,驱动电机的工作电压为0V18V,是一款单电源供电的芯片。其封装如图3.3所示,各引脚功能定义如表3.1所示。图3.3 TA7267BP封装图表3.1 TA7267BP引脚功能定义引脚号名称作用1IN1控制指令输入12IN2控制指令输入23OUT1电机驱动输出14GND地信号5OUT2电机驱动输出26VS驱动级电源7VCC逻辑电路电源根据TA7

11、267BP引脚功能定义,只要将单片机的控制信号接到TA7267BP的1、2两个引脚上,并把其驱动输出连接到被控制电机的输入端,就可以实现电机的正反转控制了。表3.2给出了TA7267BP的输入控制信号与驱动输出和电机的状态变化情况。表3.2 TA7267BP输入控制信号与输出和电机的状态IN1IN2OUT1OUT2电机状态11LL刹车01LH正传10HL反转00高阻抗高阻抗停止4.2门限电路一般情况下,活动门的启停位置上都会安装限位开关。当活动门到达开或关的停止位置上时,限位开关被合上,从而发出一个电平变化的信号,提供给单片机,从而实现门的自动控制功能。本设计使用触点开关代替常用的限位开关,当

12、活动门合上时,触点开关被闭合;当活动门打开时,触点开关打开,从而反映活动门开关状态变化所造成的电平变化。因而门限电路所起的作用就是告知单片机活动门状态的电路。当需要对活动门操作时,首先应根据门限电路的电平状态判断出活动门所处的状态,然后根据门的状态决定电机的正反转;最后,用单片机发出相应的开门、关门的指令电平,控制电机实现开门和关门的指令电平,表3.3显示了门限和活动门的对应关系。表3.3 门限电路和活动门开关的对应关系门限电平门开关电机状态低按下关门高按下开门4.3按键去抖电路4.3.1作用当活动门的按键被按下时,首先应当进行去抖动处理。这是因为按键本身是一个机械开关,由于机械触点的弹性以及

13、电压突跳等原因,在触点闭合或者是断开的瞬间会出现电压抖动的情况。在发生抖动时,单片机很难判别此时键是否按下,为此就要进行按键去抖处理。4.3.2技术方案按键去抖动处理的方法一般有两种,一种是采用硬件电路去抖,例如,加入R-S触发器;另一种方法是采用软件去抖,利用软件的时间延迟程序以躲过抖动时间,待信号稳定后再进行按键扫描。本实验主要利用了软件去抖动的方法。软件去抖动的程序:DL:MOV R0,#0AH DL2:MOV R1,#250 DL1:NOP NOP DJNZ R1,DL1 DJNZ R0,DL2 RET5单片机与PC机串口通讯51单片机有一个全双工的串行通讯口,所以单片机和电脑之间可以

14、方便地进行串口通讯。进行串行通讯时要满足一定的条件,比如电脑的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,我们采用了专用芯片MAX232进行转换,我们采用了三线制连接串口,也就是说和电脑的9针串口只连接其中的3根线:第5脚的GND、第2脚的RXD、第3脚的TXD。这是最简单的连接方法,但是对我们来说已经足够使用了,电路如下图所示,MAX232的第10脚和单片机的11脚连接,第9脚和单片机的10脚连接,第15脚和单片机的20脚连接。全双工的串行通讯口原理图如图4.1所示:图4.1全双工的串行通讯口原理图6. 程序设计与实验活动门控制的程序包括两方面的容;

15、一个是单片机方面的编程,包括对活动门状态的监测和控制,以及微机指令的接收;另一方面是计算机软件编程,包括人机控制界面的编写和控制指令的发送。计算机软件编程方面的容已在上一章作了详细介绍。下面主要介绍单片机的程序设计。6.1 单片机程序设计单片机的程序完成两个功能,首先是监测活动门开关状态,并以此为依据输出活动门的控制指令。6.1.1程序流程图使发光二极L1和L2管都灭设置串口工作方式设置定时器T1工作方式并赋值开串口中断并设置串口中断触发方式开CPU中断和外部中断零等待中断保护现场是否有键按下NY中断返回P2.0=1?Y电机正转L1亮L2灭N电机反转L1灭L2亮调用延时4秒程序电机停止L1和L

16、2灭恢复现场中断返回开始中断入口主程序MAIN的流程图: 外部中断零程序INT的流程图:串口中断程序D流程图:中断入口保护现场和清RI从SBUF中读数送累加器AA=10?YNP2.0=0?把01写入SBUF送到上位机NY电机正转L1亮P2.0=0?NY电机反转L2亮把10写入SBUF送到上位机调用4秒的延时程序电机停转灯灭清RI恢复现场中断返回6.1.2源程序的代码ORG 0000H LJMP MAINORG 0003HLJMP INTORG 0023HLJMP DORG 0030MAIN:SETB P1.1SETB P1.4 MOV SCON,#50H;串口工作方式1 MOV TMOD,#2

17、0H;T1为定时方式2MOV TH1,#0FDH MOV TL1,#0FDH;置初值 SETB EX0 ;开外部中断零 CLR IT0 ;电平触发方式 SETB ES ;开串口中断 SETB EA ;开CPU中断 SETB TR1;启动定时器T1 JMP $ ;等待中断/*串口中断程序*/ D:CLR EA CLR RI PUSH PSW PUSH ACC/*读上位机发送的控制指令*/ MOV A,SBUF CJNE A,#01H,B1;不等于01H转 JNB P2.0,B2;p2.0=0,转B2 SJMP B5;p2.0=0,转B5 B2:SETB P1.3 CLR P1.2;执行关门动作

18、CLR P1.4 ACALL DLL;调用延时程序 SETB P1.2 SETB P1.3 SETB P1.4 SETB P1.1;电机停转,灯灭 B5: MOV A,#01H MOV SBUF,A JNB TI,$ CLR TI ;向上位机发01H AJMP B3 B1: P2.0,B4;p2.0=1,转B4 SJMP B6;p2.0=0,转B6 B4:SETB P1.2 CLR P1.3;执行开门动作 CLR P1.1 ACALL DLL;调用延时程序 SETB P1.2 SETB P1.3 SETB P1.4 SETB P1.1;电机停转,灯灭 B6:MOV A,#10H MOV SBU

19、F,A JNB TI,$ CLR TI ;向上位机发10H/*恢复现场*/ B3:CLR RI POP ACC POP PSW SETB EA RETI/*外部中断零程序 */ INT:CLR EA PUSH PSW PUSH ACC/*判断是否有按键按下,并进行按键去抖*/ A2 BIT 21H A3 BIT 23H MOV C,P3.2;暂存按键现状 MOV A3,C ACALL DL ;再取按键状态 MOV C,P3.2 JNB P3.2,L1 ANL C,A3 JNB P3.2,Q SJMP T2 L1: ORL C,A3 P3.2,Q;比较两次状态的异同/*有键按下是判断接近触发器的

20、状态,给驱动电路相应的控制信号,控制相应的灯亮和灭*/ T2:JNB P2.0,T5;p2.0=0,转T5 CLR P1.2 SETB P1.3;执行关门动作 CLR P1.4 SETB P1.1 SJMP T4 T5:CLR P1.3 SETB P1.2;执行开门动作 CLR P1.1 SETB P1.4 T4:ACALL DLL;调用延时程序 SETB P1.2 SETB P1.3 SETB P1.1 SETB P1.4;电机正转,灯灭 T6:POP ACC POP PSW SETB EA ;恢复现场 Q:RETI/*用于按键去抖的延时程序*、 DL:MOV R0,#0AH DL2:MOV

21、 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 DJNZ R0,DLL2 DJNZ R2,DDL3 RETEND6.2 上位机程序设计软件控制活动门需要实现两个功能:一是人机控制界面的编写,二是活动门控制信号的传送和执行。第一个功能的主要容是Windows环境下可视化程序的开发;第二个功能主要是微机与单片机之间的通信。6.2.1控制界面6.2.2程序代码:using Sys

22、tem;using System.Collections.Generic;using SystemponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.IO.Ports;namespace HDMKZpublicpartialclassForm1 : Form public Form1 InitializeComponent; privatevoid Form1_Load comboBox1.SelectedIndex = 0; b

23、yte Dout = newbyte1;byte Din = newbyte1;privatevoid button1_Click if serialPort1.Close; button1.Text = 关闭串口; textBox1.Text = 串口未打开,不可以进行串口通信!; listBox1.Items.Add; else try textBox3.Text = 9600bps; textBox4.Text = 8; textBox6.Text = 0; serialPort1.PortName = comboBox1.SelectedItem; serialPort1.BaudRa

24、te = 9600; serialPort1.DataBits = 8; serialPort1.StopBits = StopBits.One; serialPort1.Parity = Parity.None; serialPort1.RtsEnable = true; serialPort1.Open; button1.Text = 打开串口; textBox1.Text = 串口已打开,可以进行串口通信!; listBox1.Items.Add; catch MessageBox.Show; privatevoid listBox1_SelectedIndexChanged priva

25、tevoid button2_Click try if Dout0 = 10;this.serialPort1.Write; listBox1.Items.Add; catch MessageBox.Show; privatevoid button3_Click try if Dout0 = 01;this.serialPort1.Write; listBox1.Items.Add; catch MessageBox.Show; privatevoid serialPort1_DataReceived_1 Control.CheckForIllegalCrossThreadCalls = fa

26、lse;/不使用委托string str = ; str = serialPort1.ReadExisting;switch case01: listBox1.Items.Add;break;case10: listBox1.Items.Add;break;default: listBox1.Items.Add;break; 参考文献1 周元一.电机与电气控制.机械工业.2006.82 汤天浩.电机与拖动基础. 机械工业.2004.73 克澄.单片机原理及应用. 机械工业.2005.4 家启等编著.Visual Basic程序设计教程.:大学,20055靳达编著.单片机应用系统开发实例导航.:人民邮电,20036 南建辉、熊鸣、王军茹.MCS-51单片机原理及应用实例.清华大学,20047 万福君.单片微机原理系统设计与开发应用.中国科学,19958 友德、志英等.单片机原理应用与实验.复旦大学,1992附录一 电路图附录二 PCB版图附录三 实物图22 / 22

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号