1、摘 要 摘 要数控机床是综合应用计算机、自动控制、自动化及精密机械等高新技术的产物。当前,我国沿着经济、高速、高精度和自动化等几个方向发展数控技术;其中,发展经济型数控系统是符合我国国情的重要政策。本文针对数控铣床的加工特点,工作环境和性能指标要求,采用MCS-51组成专用单片机控制系统来控制X轴和Y轴的步进电机,从而实现对经济型数控机床工作台的控制。本设计主要研究以MCS-51单片机为微型控制器的硬件体系结构。硬件系统包括系统主模块、电源、晶振、步进电机、键盘及相关芯片。关键词:经济型数控机床;MCS-C51单片机;步进电机。IAbstractAbstractCNC machine is t
2、he product of a comprehensive application of computer, automatic control, automation and other high-tech precision machinery. Currently, several directions along our economy, high-speed, high-precision CNC technology and automation development; where economic development is an important policy CNC s
3、ystem suitable for Chinas national conditions. In this paper, CNC milling machining characteristics, working conditions and performance requirements, the use of MCS-51 microcontroller control system consisting of dedicated stepper motor to control the X-axis and Y-axis, in order to achieve economica
4、l CNC table control. This design study for the MCS-51 single-chip microcontroller hardware architecture. Hardware system including the system main modules, power supplies, crystal, stepper motor, keyboard. Keywords: Economical CNC machine tools; MCS-C51 microcontroller; stepper motorI目 录目 录摘 要IAbstr
5、actII目 录III第一章 绪论11.1 课题设计研究背景和意义11.2 研究的内容11.3 研究的技术路线1第二章 总体方案的确定22.1 导轨副的选用22.2 丝杆螺母副的选用22.3 减速装置的选用22.4 步进电机的选用22.5 控制系统的设计22.6 绘制总体方案图3第三章 控制系统硬件电路设计43.1 控制系统微控制器的选择43.2 80C51单片机主要性能参数43.2.1 80C51简介43.2.2 80C51单片机引脚功能43.3 80C51单片机复位电路63.480C51振荡电路63.5 单片机I/O口拓展芯片8255A简介73.6 程序存储器拓展相关芯片(74Ls373和
6、2764)113.7 步进电机驱动芯片(L297和L298)133.8 键盘扫描163.8 键盘扫描173.9 显示器电路17第四章 编程软件Keil和仿真软件proteus184.1 Proteus简介184.2 Keil简介18第五章 控制系统软件模块设计195.1 键盘与显示总程序原理195.2 键盘与显示总程序流程图195.3 键盘扫描程序解释195.4 LED显示原理205.5 键盘扫描程序流程图215.6 显示程序流程图225.7 系统防干扰措施22致 谢25参考文献26附 录27III第一章 绪论1.1 课题设计研究背景和意义随着现代信息技术的发展,制造业得到了快速发展,促使机械
7、加工技术发生深刻的变化,企业不但追求高效率的生产模式,更追求高标准的质量要求;因此这使得机械设备的功能要求越来越强大,其结构及功能随之也变得复杂。所以能够设计出功能全面、效率高、耐压性强,加工精度高的机械加工设备是制造业中最重要的课题之一,我们此次研究的课题经济型数控机床工作台控制系统的设计。X-Y数控工作台属于高精密加工的核心部件,它的传动部件的定位精度直接影响系统的加工精度。X-Y数控工作台是许多机电一体化设备的基本部件,如数控车床的纵横向进刀机构、数控铣床和数控钻床的工作台、激光加工设备的工作台、电子元件表面贴装设备等。X-Y数控工作台一般是指由步进电机驱动的开环控制工作台。本设计为验证
8、性设计,通过对控制系统的设计,掌握一些典型硬件电路的设计方法和人机接口软件的设计思路,通过Proteus软件进行仿真实验。1.2 研究的内容 X-Y数控工作台是许多机电一体化设备的基本部件,通常由导轨座、滑动模块、工作平台、滚珠丝杠螺母副,以及步进电机的部件构成。控制系统可选用标准的工业控制计算机,也可设计专用的微机控制系统。本设计用MCS-C51组成专用单片机控制系统,从键盘输入G代码后,能通过直线插补和圆弧插补,完成平面轮廓加工。设计要求完成整个控制系统的硬件设计和完成整个控制系统的人机接口软件设计,通过Keil编译和调试程序,并最终在Proteus软件中仿真。1.3 研究的技术路线本设计
9、研究的技术路线主要包括:1.机械系统运动参数的计算;2.步进电动机及其选择;3.步进电动机的控制与驱动;4.驱动芯片的选择;5.控制系统的电源设计与选择;6.光电隔离电路设计与应用;7.开关量输入通道电路设计与应用;8.常用存储器与I/O接口芯片的应用电路设计;9.键盘与LED显示电路应用设计;10.控制系统的人机接口软件设计;11.在Proteus软件中绘制系统硬件原理图;12.在Keil软件中完成程序的编译和调试;13.在Proteus软件中进行系统的调试与仿真。29总体方案的确定第二章 总体方案的确定2.1导轨副的选用要设计的X-Y数控工作台,需要承受的载荷不大,而且脉冲当量小,定位精度
10、高,因此选用直线滚动导轨副,它具有摩擦系数小,不易爬行,传动效率高,结构紧,安装预紧方便等优点。2.2 丝杆螺母副的选用步进电动机的旋转运动需要通过丝杠螺母副转换成直线运动,需要满足较高的定位精度时,滑动丝杠副无能为力,只有选用滚珠丝杆副才能达到要求,滚珠丝杆副的传动精度高、动态响应快、运转平稳、寿命长、效率高、预紧后可消除反向间隙。2.3 减速装置的选用选择了步进电动机和滚珠丝杆副以后,为了圆整脉冲当量,放大电动机的输出转矩,降低运动部件折算到电动机转轴上的转动惯量,可能需要减速装置,且应有消间隙机构,选用无间隙齿轮传动减速箱。2.4 步进电机的选用由于任务书中没有规定的脉冲当量,定位精度也
11、没有做明确规定。故本设计不必采用高档次的伺服电动机,因此可以选用混合式步进电动机。综合前面所叙采用24V选用混合式步两相(四相)进电动机2.5 控制系统的设计(1)本设计的X-Y工作台其控制系统应该具有单坐标定位,两坐标直线插补与圆弧插补的基本功能,能够完成平面轮廓的加工,所以控制系统设计成连续控制型。(2)对于步进电动机的半闭环控制,选用MCS-51系列的8位单片机80C51作为控制系统的CPU,能够满足任务书给定的相关指标。(3)要设计一台完整的控制系统,在选择CPU之后,还要扩展程序存储器,键盘与显示电路,I/O接口电路,驱动电路,放大电路等。(4)选择合适的驱动电源,与步进电动机配套使
12、用。控制系统硬件电路设计2.6 绘制总体方案图总体方案图如图2-1所示:微控制器(MCS-51)I/O接口电路放大电路步进电机机械传动机 构数控工作台图2-1 总体方案图本章主要是完成了系统总体方案确定的机械传动部件的选用和控制系统的总体设计思想的分析,机械传动部件完成了一些主要传动机构的初步选择,而为后续的设计中,还将会对其进行分析。考虑到数控工作台对要求控制系统要有较高的精度和较快的反应速度,我选用了80C51单片机作为控制系统,能够满足系统的设计要求,另外由于要接程序存储器拓展芯片、键盘、显示器、电机控制芯片等,所以采用8255A来拓展单片机的I/O口。第三章 控制系统硬件电路设计3.1
13、 控制系统微控制器的选择本次设计是微机控制系统要求选用MCS-51系列单片机。数控工作台要求控制系统计算精度较高、处理速度较快;加之在考虑尽量减少成本、选择程序编制较为简易以及方便扩充I/O接口的前提下,我们选择了使用80C51作为我们的微处理器,选择此微处理器能够满足任务书给定的相关指标的设计要求。3.2 80C51单片机主要性能参数 3.2.1 80C51简介8位单片机片内带振荡器,频率范围1.2MHZ-12MHZ片内带128B的数据存储器片内带有4KB的程序存储器程序存储器的寻址空间为64KB片外数据存储器的寻址空间为64KB128个用户位寻址空间21个字节特殊功能寄存器两个16位定时/
14、计数器两个优先级别的5个中断源1个全双工的串行I/O接口,可多机通信片内采用单总线结构有较强的位处理能力采用单+5v电源控制系统硬件电路设计3.2.2 80C51单片机引脚功能图3-1 80C51引脚图(1) 输入/输出引脚P0口(32-39),P0.0-PO.7统称P0口。在不接片外存储器与不拓展I/O口时,作为准双向输入输出接口。在接片外存储器与拓展I/O时,P0分时复用为8位地址总线和双向数据线。P1口(1-8),P1.0-P1.7统称P1口。可作为准双向输入输出接口使用。P2口(21-28),P2.0-P2.7统称P2口。一般作为准双向输入输出接口使用;可接片外存储器与拓展I/O且寻址
15、范围超过256字节时,P2口用作高8位地址总线。P3口(10-17),P3.0-P3,7统称P3口。除了作为准双向I/O接口使用外,每一位还具有独特的第二功能。(2) 控制线ALE/PROG(30引脚)地址锁存信号输出端。在访问片外程序存储器期间,下降沿用于控制锁存P0输出的8位地址;在不访问片外程序存储器期间,可作为对外输出的时钟脉冲或用于定时的目的。片外程序存储器读选通信号输出端,低电平有效。在从外部程序存储器读取指令或常数期间,每个机械周期该信号有效两次,通过数据总线P0口读回指令或常数。RST/Vpd(9脚)该引脚为单片机的上电复位或掉电保护端。当单片机振荡器工作时,该引脚上出现持续两
16、个机械周期的高电平,可实现复位操作。该引脚可接上备用电源,当VCC发生故障,降低到低电平规定值或掉电时,该备用电源为内部RAM供电,以保证RAM中的数据部丢失。(3) 电源引脚 Vcc(40引脚);接+5V电源正端。Vss(20引脚);接地+5V电源地端。(4) 外接晶体引脚XTAL1、XTAL2(19、18引脚);当使用单片机内部振荡电路时,这两个引脚用来外接石英晶体和微调电容。(5)片外总线结构单片机的引脚除了电源线,复位线,时钟输入以及用户I/O接口外,其余的引脚都是为了实现系统拓展而设置的。这些引脚构成了片外地址总线、数据总线和控制总线三大总线形式。3.3 80C51单片机复位电路本次
17、为80C51设计的复位电路如图下图3-2所示,选择的是上电手动复位,应用时除了单片机本身复位外,也是外部扩展接口电路的复位电路,这样能够实现同步的复位信号。RESET5V80C51图 3-2 80C51单片机上电手动复位图3.4 80C51振荡电路在80C51芯片内部,有一个振荡器电路和时钟发生器,引脚XTAL1和XTAL2之间接入晶体振荡器和电容后构成内部时钟方式,本次设计的振荡电路图如3-3所示。图3-3 80C51震荡电路3.5单片机I/O口拓展芯片8255A简介8255A是Intel公司生产的可编程输入/输出接口芯片,它具有A、B、C三个8位的并行I/O口,可选择三种工作方式。方式0为
18、基本的输入输出;方式1为选通输入输出;方式2为双向传送。8255A还能对C端口的任一位进行置位/复位操作(1)8255A为DIP40封装,引脚如图3-4所示。各引脚功能如下: D7D0:三态双向数据总线。 RESET:复位信号线,高电平有效。 :片选信号线,低电平有效。 :读信号线,低电平有效。 :写信号线,低电平有效。 A0,A1:端口地址线。 PA7PA0:端口A输入/输出线。 PB7PB0:端口B输入/输出线。 PC7PC0:端口C输入/输出线。 Vcc:+5V电源。 GND:地线。图3-4 8255A引脚图(2)8225A内部结构图如3-5所示。8255A内部结构包括如下几部分:端口A
19、、B、C:8255A包括了三个8位的端口A、B、C(引脚分别为PA7PA0、PB7PB0、PC7PC0)。端口A包含了一个8位的数据输出锁存/缓冲器和一个8位的数据输入锁存器;端口B包含了一个8位的数据输入/输出锁存/缓冲器和一个8位的输入缓冲器;端口C包含了一个8位的数据输出锁存/缓冲器和一个8位的数据输入缓冲器(输入无锁存)。端口C可以被分为两个4位的端口,每个4位的端口包含了一个4位的锁存器,可以配合端口A、B作作态或控制信息的传送端口。数据总线缓冲器:三态双向的8位缓冲器是8255A和系统数据总线的借口。根据CPU的输入输出指令,通过缓冲器进行数据的接受和发送。控制字和状态字也是通过缓
20、冲器进行传送的。读/写控制逻辑:接收从CPU总线上发送过来的地址信号和控制信号,控制I/O口的读/写操作,输入的信号包括、RESRT、A0和A1。8255A的控制信号和端口工作状态的对应关系如表4-7所列。A组和B组控制:根据CPU写入的“控制字”来控制8255A的工作方式。A组控制电路控制A口和C口的上半口(PC4PC7),B组控制电路控制B口和C口的下半口(PC0PC3)。根据读/写控制逻辑,从内部数据总线上接受“控制字”,控制字寄存器只能写而不允许读。图3-5 8255A的内部结构(3) 8255A端口地址8255A有三种工作方式:方式0基本输入/输出方式A、B、C三个端口均可方式1选通
21、输入/输出方式A、B两个端口均可方式2选通双向输入/输出方式只有A端口才有图3-6工作方式的定义和总线接口的连接表3-7 8255A的控制信号和端口工作状态的对应关系A1A0功能00010A口数据总线(读)01010B口数据总线(读)10010C口数据总线(读)00100数据总线A口(写)01100数据总线B口(写)10100数据总线C口(写)11100数据总线控制寄存器(写)1数据总线为三态11010非法条件110数据总线为三态8255A有两条地址线A1和A0,当对端口A、B、C和控制字寄存器进行读/写操作时,必须指定相应的端口地址,这由A1和A0来区别,对应如表3-8所列。(4) 8255
22、A的控制字8255A有两个控制字:工作方式控制字和端口C按位置位/复位控制字。它们的端口地址都是A1A0=11,利用控制字的最高位D7来区分:D7=1为工作方式控制字;D7=0为C口按位置位/复位控制字。寄存器的格式如图3-9所示。8255A与80C51单片机的硬件电路连接如图3-9所示表3-8 8255A端口地址A1A0端口00端口A01端口B10端口C11控制字寄存器图3-9 8255A控制字的格式3.6 程序存储器拓展相关芯片(74Ls373和2764)(1)74Ls373锁存器简介74ls373是常用的地址锁存器芯片,它实质是一个是带三态缓冲输出的8D触发器,在单片机系统中为了扩展外部
23、存储器,通常需要一块74ls373芯片。(1) .1脚是输出使能(OE),是低电平有效,当1脚是高电平时,不管输入3、4、7、8、13、14、17、18如何,也不管11脚(锁存控制端,G)如何,输出2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)全部呈现高阻状态(或者叫浮空状态); (2).当1脚是低电平时,只要11脚(锁存控制端,G)上出现一个下降沿,输出2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)立即呈现输入脚3、4、7、8、13、14、17、18的状态. 锁存端LE 由高变低时
24、,输出端8 位信息被锁存,直到LE 端再次有效。 当三态门使能信号OE为低电平时,三态门导通,允许Q0Q7输出,OE为高电平时,输出悬空。当74LS373用作地址锁存器时,应使OE为低电平,此时锁存使能端C为高电平时,输出Q0Q7 状态与输入端D1D7状态相同;当C发生负的跳变时,输入端D0D7 数据锁入Q0Q7。51单片机的ALE信号可以直接与74LS373的C连接。 74ls373与单片机接口: 1D8D为8个输入端。1Q8Q为8个输出端。G是数据锁存控制端;当G=1时,锁存器输出端同输入端;当G由“1”变为“0”时,数据输入锁存器中。OE为输出允许端;当OE=“0”时,三态门打开;当OE
25、=“1”时,三态门关闭,输出呈高阻状态。在MCS-51单片机系统中,常采用74LS373作为地址锁存器使用,其连接方法如上图所示。其中输入端1D8D接至单片机的P0口,输出端提供的是低8位地址,G端接至单片机的地址锁存允许信号ALE。输出允许端OE接地,表示输出三态门一直打开。(2)2764简介(8KB存储器)EPROM-2764引脚定义管脚图图3-10 2764引脚图2764是8K*8字节的紫外线可擦除的可编程只读存储器,单一+5V供电,工作电流为75mA,维持电流为35mA,读出时间最大为250nS,28脚双列直插式封装。各引脚的含义为: A0-A12为13根地址线,可寻址8K字节;O0-
26、O7为数据输出线;CE为片选线;OE为数据输出选通线;PGM为编程脉冲输入端;Vpp是编程电源;Vcc是主电源。图3-11 74LS373和2764接线图3.7步进电机驱动芯片(L297和L298) (1)L297简介L297是意大利SGS半导体公司生产的步进电机专用控制器,它能产生4相控制信号,可用于计算机控制的两相双极和四相单相步进电机,能够用单四拍、双四拍、四相八拍方式控制步进电机。芯片内的PWM斩波器电路可开关模式下调节步进电机绕组中的电机绕组中的电流。该集成电路采用了SGS公司的模拟/数字兼容的I2L技术,使用5V的电源电压,全部信号的连接都与TFL/CMOS或集电极开路的晶体管兼容
27、。L297的芯片引脚特别紧凑,采用双列直插20脚塑封封装,其引脚见图3-12所示。 图3-12 L297引脚图引脚功能介绍1脚(SYNG)斩波器输出端。如多个L297同步控制,所有的SYNC端都要连在一起,共用一套振荡元件。如果使用外部时钟源,则时钟信号接到此引脚上。2脚(GND)接地端。3脚(HOME)集电极开路输出端。当L297在初始状态(ABCD=0101)时,此端有指示。当此引脚有效时,晶体管开路。4脚(A)A相驱动信号。5脚(INH1)控制A相和B相的驱动极。当此引脚为低电平时,A相、B相驱动控制被禁止;当线圈级断电时,双极性桥用这个信号使负载电源快速衰减。若CONTROL端输入是低
28、电平时,用斩波器调节负载电流。6脚(B)B相驱动信号。7脚(C)C相驱动信号。8脚(INH2)控制C相和D相的驱动级。作用同INH1相同。9脚(D)D相驱动信号。10脚(ENABLE)L297的使能输入端。当它为低电平时,INH1,INH2,A,B,C,D都为低电平。当系统被复位时用来阻止电机驱动。11脚(CONTROL)斩波器功能控制端。低电平时使INH1和INH2起作用,高电平时使A,B,C,D起作用。12脚(Vcc)+5V电源输入端。13脚(SENS2)C相、D相绕组电流检测电压反馈输入端。14脚(SENS1)A相、B相绕组电流检测电压反馈输入端。15脚(Vref )斩波器基准电压输入端
29、。加到此引脚的电压决定绕组电流的峰值。16脚(OSC)斩波器频率输入端。一个RC网络接至此引角以决定斩波器频率,在多个L297同步工作时其中一个接到RC网络,其余的此引角接地,各个器件的脚 I (SYNC)应连接到一起这样可杂波的引入问题如图5所示。17脚(CW/CCW)方向控制端。步进电机实际旋转方向由绕组的连接方法决定。当改变此引脚 的电平状态时,步进电机反向旋转。18脚(CLOCK)步进时钟输入端。该引脚输入负脉冲时步进电机向前步进一个增量,该步进是在信号的上升沿产生。19脚(HALF/FULL)半步、全步方式 选择端。此引脚输入高电平时为半步方式(四相八拍),低电平时为全步方式。如选择
30、全步方式时变换器在奇数状态,会得到单相工作方式(单四拍)。20脚(RESET)复位输入端。此引脚输入负脉冲时,变换器恢复初始状态 (ABCD=0101)。 L297相序的产生: L297能产生单四拍、双四拍和四相八拍所需要的适当相序。三种方式的驱动相序都可以 很容易的根据变换器输出地雷码的顺序产生,格雷码的顺序直接与四相八拍(半步方式)相符合,只要在19管脚输入一高电平即可得到。如下图所示: 图3-13 L297时序产生图通过交替跳过在八步顺序中的状态就可以得到全步工作方式,此时需要在19管脚接一低电平。单四拍和双四拍工作模式如下图所示:图3-14 L297工作模式(2)L298简介L298N
31、 为SGS-THOMSON Microelectronics 所出产的双全桥步进电机专用驱动芯片( Dual Full-Bridge Driver ) ,内部包含4信道逻辑驱动电路,是一种二相和四相步进电机的专用驱动器,可同时驱动2个二相或1个四相步进电机,内含二个H-Bridge 的高电压、大电流双全桥式驱动器,接收标准TTL逻辑准位信号,可驱动46V、2A以下的步进电机,且可以直接透过电源来调节输出电压;此芯片可直接由单片机的I/O端口来提供模拟时序信号,也可以用L297 来提供时序信号。L298N 之接脚如下图所示,Pin1 和Pin15 可与电流侦测用电阻连接来控制负载的电路; OUT
32、l、OUT2 和OUT3、OUT4 之间分别接2 个步进电机;input1input4 输入控制电位来控制电机的正反转;Enable 则控制电机停转。图3-15 L298引脚图各管脚功能如下: 1,15sensing A,B端,电流监测端,为H桥的电流反馈端,不用时可以直接接地;2,3 out1,out2端,1y1,1y2的输出端4功率电源端,此端口必须接100nf的电容器5,7input1,input2端,是1A1,1A2的输入端,TTL电平兼容6,11enablea,enableb端口,TTL电平兼容输入,1en、2en使能端,低电平禁止输入8GND,接地端9逻辑电源电压,此管脚必须与10
33、0nf的电容器连接10,12input3,input4端,是1A3,1A4的输入端,TTL电平兼容13,14out3,out4端,1y3,1y4的输出端接线图如下:图3-16 L297和L298与电机连接电路3.8 键盘扫描键盘电路设计图4-25是矩阵式键盘原理图,图中键盘为四行四列共16个键,行扫描线分别接到80C51单片机的P1.0P1.3口上;列扫描线分别接到80C51单片机的P1.4P1.7口上。第一行按键从左到右对应数字79和代码G,第二行按键从左到右依次对应数字46和ENTER(确认),第三行按键从左到右对应数字13和START(开始),第四行按键从左到右依次为X(表示X坐标)、数
34、字0、Y(表示Y坐标)和(负号)。图3-17 四行四列矩阵式键盘原理图3.9显示器电路图3-18 8位动态扫描8端共阴数码管原理图为了保证键盘输入G代码的准确性本设计选用8位动态扫描8段共阴数码管来进行实时显示,如图3-18所示,它们的段引脚AG、DP是并在一起的;引脚18是各位数码管的COM端,相互独立。使用是只需设置一个8位I/O口控制段引脚,向其送段码;设置令一个8位I/O口控制8位COM端的数据输入即可;这样的设计简化了电路,也降低了成本。编程软件keil和仿真软件proteus第四章 编程软件Keil和仿真软件proteus4.1 Proteus简介Proteus是英国Labcent
35、er公司开发的嵌入式系统仿真软件,组合了高级原理图设计工具ISIS、混合模式SPICE仿真、PCB设计以及自动布线而形成了一个完成的电子设计系统。它运行与Windows操作系统上,可以仿真、分析各种模拟和数字电路,并且对PC机的硬件配置要求不高。该软件具有以下主要特别: 实现了单片机仿真和SPICE电路仿真相结合,具有模拟电路仿真、数字电路仿真、单片机及其外围电路仿真、RS232动态仿真、SPI调式器、键盘和LCD系统仿真的功能。 提供了大量的元器件,涉及电阻、电容、二极管、三极管、MOS管、变压器、继电器、各种放大器、各种激励源、各种控制器、各种门电路和各种终端等;同时,也提供了许多虚拟测试
36、仪器,如电流表、电压表、示波器、逻辑分析仪、信号发生器、定时/计数器等9。 支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、Z80系列、HC11系列以及各种外围芯片9。 提供软硬件调试功能。同时支持第三方的软件编译和调试环境,如KeilC51Vision2等软件。 具有强大的原理图编辑及原理图后处理功能。 Proteus VSM虚拟系统模型组合了混合模式的SPICE电路仿真、动态器件和微控制器模型,实现了完整的基于微控制器设计的协同仿真,真正使在物理原型出来之前对这类设计的开发和测试成为可能。4.2 Keil简介Kei
37、l是美国Keil Software公司开发的,是目前世界上最好的51单片机的汇编和C语言的开发工具。它支持汇编、C语言以及混合编程,同时具备功能强大的软件仿真,在软件模拟仿真方式下不需要任何单片机硬件即可完成用户程序仿真调试;仿真时,我们会将Proteus ISIS与Keil整合起来使用,充分利用各自的仿真功能,单片机软硬件的调试将变得十分有效。第五章 控制系统软件模块设计5.1 键盘与显示总程序原理在定时器一溢出时,程序会进入LED显示循环函数,运行完显示程序后,判断是否有键按下,若无键按下,程序结束,若有键按下,进入键盘扫描程序。运行完键盘扫描程序后,将显示内容存储寄存器中第一到第七位的数
38、值移动到显示内容存储寄存器中的第二到第八位,在将通过键盘扫描程序得到的键值存入显示内容存储寄存器的首位。完成动作后,程序结束。5.2 键盘与显示总程序流程图YN开始显示循环程序key=0x0fkey=0x0f?键盘扫描程序显示板上所有数字左移一位刚按下键的键值在显示板最右边一位显示图5-1键盘和显示总流程图5.3键盘扫描程序解释首先将所有行线置一、所有列线清零,即将键盘口前四位清零,后四位置一(key=0x0f)。有键按下时对应的列线输入为一,无键按下时所有列线输入为零。如果有键闭合,通过检测哪条列线为一,判断出按下的键在哪条列线上,再依次分别将每条行线置一,判断之前确定的列线是否为1,若为1
39、则确定按下的键在这条行线上,并将相应键值赋予key_value,若为0则按下的键不在这条行线上。例如数字键3被按下,由于数字键3被按下,第三列线与第三行线被连通,第三列线口(key5)被置一,四条行线(key03)保持高电平不变,key口变为0x4f,通过对key口的分析,确定按下键在第三列线,进入行线判断程序。首先将第一条行线口(key0)置一,key端口上的其它口都被清零,因为按下键的列线与行线是连通的,这是只要判断之前确定的第三列线口(key5)是否为1,即可判断按下键控制系统软件模块设计是否在这条行线上。当第一、二条行线口(key0、1)被置一时,第三列线口(key5)不为一,继续将下
40、条行线口置一,直到将第三条行线口(key2)置一,即令key=0x04时,检测到第三列线口(key5)也为一,确定按下键在第三列线上。这时,按下键所在行线与列线都已得到,这两条线只有一个相交点,即数字键3,便将数字键3对应的键值3赋予键值标志位key_value.5.4 LED显示原理LED数码管显示器内部由七个条形发光二极管和一个小圆点发光二极管组成,每个发光二极管成为一字段。因而它的控制原理和发光二极管的控制原理是相同的。根据各关的界限形式,可分成共阴极型和共阳极型。发光二激光管的阳极连在一起,成为一个公共端,这种显示器成为共阳极显示器。发光二激光管的阴极连在一起,成为一个公共端,这种显示
41、器成为共阴极显示器。给LED数码管的七个发光二极端加不同的点平,二极管显示不同亮暗的组合就可以形成不同的字形,这种组合称之为字形码。LED显示常用的显示方式由静态显示和动态显示。静态显示是当显示器显示某个字符时,相应的字段(发光二极管)恒定得导通或截至。这种显示方式的每个数码管相互独立,共端恒定接地(共阴极)或接电源(共阳极)。LED数码管的每个字段分别与一个I/O口或硬件译码电路相连,这是只要在字段上输入所需电平,相应字符就会显示出来,并保持不变,直到需要显示下一个字符为止。例如,给数码管输入01111001信号,共阴极LED显示字符“E”,在改变字符前,显示器a、d、e、f、g段恒定导通,
42、其他码段恒定截至。采用静态显示方式占用CPU是减少,编程简单,但占口线较多,不适合显示多位字符。动态显示是指逐次电量每个数码管。方法是先选中第一个数码管,把要显示字符的字形码送给它,过一段时间选中第二个数码管,把显示字符的字形码送给它显示,这样逐次点亮每个数码管。每次只能点亮一个数码管。只要点亮相邻两个数码管的时间间隔远远小于人眼视觉停留时间,动态显示的效果在人眼看来是同时点亮的。采用动态显示可以节省I/O口,但其亮度不如静态显示时的亮度。由于动态显示要循环扫描每个数码管,编程复杂,占用CPU时间多,所以要注意优化编程。为了充分利用单片机有限的I/O资源,在实际应用中,数码管动态显示方式应用较
43、多。NNNNNNNNNNNYYYYNNNNNYYYYYYYYYY0x2f0x4f0x8f0x1f开始key=?key=0x01key=0x01key=0x01key=0x01key=0x11key_value=13ENDkey=0x41key=0x81coookey_value=8key_value=7key=0x21key_value=9key=0x12key_value=1key=0x42key=0x82key_value=5key_value=4key=0x22key_value=6key=0x14key_value=2key=0x44key=0x84fkey_value=2key_va
44、lue=1key=0x24key_value=3key=0x18key_value=10key=0x48key=088key_value=0key_value=12key=0x28key_value=11key=0x02key=0x02key=0x02key=0x02key=0x04key=0x04key=0x04key=0x04key=0x08key=0x08key=0x08key=0x085.5 键盘扫描程序流程图图5-2 键盘扫描程序流程图YN开始显示选择位赋值于显示选择I/O口显示内容赋值于显示口显示选择位向左移一位显示内容存储器地址指针加一显示内容选择位是否移出屏幕范围?END显示选
45、择位赋值为第一位显示内容存储器地址指针赋值为0x705.6 显示程序流程图图5-3 显示程序流程5.7 系统防干扰措施系统干扰主要来自外部电源、内部电源,印制板排版走线互相干扰,周围电磁场干扰,外部干扰一般通过IO口输入等。干扰的耦合方式 干扰源产生的干扰信号是通过一定的耦合通道才对测控系统产生作用的。因此,我们有必要看看干扰源和被干扰对象之间的传递方式。干扰的耦合方式,无非是通过导线、空间、公共线等等,细分下来,主要有以下几种:(1)直接耦合: 这是最直接的方式,也是系统中存在最普遍的一种方式。比如干扰信号通过电源线侵入系统。对于这种形式,最有效的方法就是加入去耦电路。 (2)公共阻抗耦合: 这也是常见的耦合方式,这种形式常常发生在两个电路电流有共同通
版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。
Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1
陕公网安备 61072602000132号 违法和不良信息举报:0916-4228922