多功能电机驱动系统的设计研究大学生课外学术科技作品

上传人:无*** 文档编号:79811777 上传时间:2022-04-24 格式:DOC 页数:42 大小:1.31MB
收藏 版权申诉 举报 下载
多功能电机驱动系统的设计研究大学生课外学术科技作品_第1页
第1页 / 共42页
多功能电机驱动系统的设计研究大学生课外学术科技作品_第2页
第2页 / 共42页
多功能电机驱动系统的设计研究大学生课外学术科技作品_第3页
第3页 / 共42页
资源描述:

《多功能电机驱动系统的设计研究大学生课外学术科技作品》由会员分享,可在线阅读,更多相关《多功能电机驱动系统的设计研究大学生课外学术科技作品(42页珍藏版)》请在装配图网上搜索。

1、第十一届“挑战杯”辽宁省大学生课外学术科技作品竞赛多功能电机驱动系统的设计研究摘 要电机本体及其控制技术在近几年取得相当大的进步。这要归功于半导体技术的空前发展带来的电力电子学领域的显著进步。电机驱动产业发展的利处已经触及各种各样的设备,从大型工业设备像钢铁制造厂、造纸厂的轧钢机等,到机床和半导体制造机中使用的机电一体化设备。现有的一般驱动方法功耗高,有逻辑缺陷,软硬件不协调,控制精度不高,缺少安全监控环节。项目针对以上问题重点设计一种以单片机为主要控制器件,以IGBT为主要功率开关器件。从硬件和软件两方面介绍了单片机多功能电机控制系统的设计思路。阐述了系统的工作原理、设计及实现。由单片机实现

2、双机通信,测速发电机测速,直流供电,LCD显示,实现了对多种电机的控制驱动。可以实现对电机的PID调速,并且具有欠电压过电压过电流保护。关键词:双机通信、控制驱动、电机PID调速、保护Abstract The motor and its control technology has made considerable progress in recent years.Significant progress in the field of power electronics has brought unprecedented development thanks to the semicond

3、uctor technology.Motor drive industry profits have hit various,From large industrial equipment like iron and steel factory, paper mill rolling machines, electromechanical integration equipment used to machine tools and semiconductor manufacturing machine. The general method of driving power of exist

4、ing high, there are flaws in logic, hardware and software are not coordinated, the control accuracy is not high, the lack of safety monitoring link. The project in view of the above problems focus on the design of a single-chip microcomputer as the main control device, with IGBT as the main power sw

5、itch device. Design of multi-function MCU motor control system is introduced from two aspects of hardware and software. Describes the design and implementation of the working principle, system. Realization of communication, composed of single-chip encoder, DC power supply, LCD display, to achieve th

6、e control of various motor drive. PID can realize speed regulation of motor, and has the undervoltage overvoltage and overcurrent protection. Keywords: communication, drive control, PID motor speed control, protection目 录1 前言12 系统的设计及指标22.1 系统设计方案及论证22.1.1 系统设计方案22.1.2 控制器模块设计方案32.1.3 电机驱动模块设计方案32.1.

7、4 速度采集模块设计方案42.1.5 键盘模块设计方案42.2 系统技术指标53 硬件电路设计63.1 单片机模块63.1.1 STC12C5A60S2单片机的基本特性63.1.2双单片机工作模式103.1.3并行通信与串行通信103.2电机驱动电路113.2.1 M57957L的结构123.2.2 M57957L的工作原理133.3 显示电路设计133.4 键盘电路设计144 软件设计154.1 程序流程154.1.1 主流程图154.1.2显示程序流程174.1.3键盘程序程序流程174.2算法实现194.2.1 电机速度算法194.2.2 PID算法19小结20参考文献21附录 部分源程

8、序22第十一届“挑战杯”辽宁省大学生课外学术科技作品竞赛1 前言一个多世纪以来,电动机作为机电能量转换装置,其应用范围已遍及国民经济的各个领域以及人们的日常生活中。尤其是近些年来,随着现代电力电子技术,控制技术和计算机技术的发展,电机的应用技术也得到了进一步的发展。在实际应用中,电机已由过去简单的起停控制,提供动力为目的的应用上升到了对其速度、位置、转矩等物理量的精确控制,将预定的控制方案,规划指令转变成期望的机械运动。这种新型控制技术已经不是传统的“电机控制”,“电力控制”而是“运动控制”,运动控制使被控电机的机械运动实现精确的位置控制,速度控制,加速度控制等当前,单片机技术取得的进步比以往

9、任何时候都更加有效的控制电机,而成本更低。单片机已渗透到我们生活的各个领域,几乎很难找到没有单片机的领域,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理等等都离不开单片机,更不用说全自动控制领域。 虽然单片机在各个方面都发挥着不可替代的作用,但由于动力需求的不同,研制出不同种类的电机,同时驱动各类电机的电路也不断增多,这使得系统的升级,改造的困难大大提高。因此开发出可以多功能驱动电机的系统很适合当前的发展趋势。单片机本身就是一个微型计算机,所以只要在其外部适当的增加一些必要的外围扩展电路就可以灵活的构成各种应用系统,来对各种电机进行速度等方面的自动控制,并且易于操作和监控。 本

10、设计的主要目的是通过对电机驱动系统的研究,对电机实现灵活调速。单片机控制直流电机,以STC的12系列单片机为核心,并且采用双单机工作模式,并口通讯方式,具有较高的抗干扰能力。改进后具有低功耗,高精确度,增强了工作效率并且可以实时监控等功能。2 系统的设计及指标2.1 系统设计方案及论证2.1.1 系统设计方案图中控制器模块单片机为系统的核心部件,键盘和显示器用来实现人机交互功能,其中通过键盘将需要设置的参数和状态输入到单片机中,并且通过控制器显示到显示器上。系统上电开机后,ADC通过采样电路采集获取电源电压,控制电压。正常无报警,过电压欠电压报警。在运行过程中控制器产生PWM脉冲送到电机驱动电

11、路中,经过放大后控制电机转速,同时利用速度检测模块将当前转速反馈到控制器中,控制器经过数字PID运算后改变PWM脉冲的占空比,实现电机转速的PID控制,同时实时监测电流状况,过电流报警并跳车。显示模块控制模块键盘模块电机驱动模块直流电机电源电压采样模块ADC速度检测模块图1 系统的结构图2.1.2 控制器模块设计方案根据设计任务,控制器主要用于产生占空比受数字PID算法控制的PWM脉冲,并对电机当前速度进行采集处理,根据算法得出当前所需输出的占空比脉冲,并且完成实时监测电流。对于控制器的选择有以下两种方案。方案一:选用89C52系列单片机作为系统的控制器。89C52系列单片机单片机算术运算功能

12、强,软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制。并且它具有功耗低、体积小、技术成熟和成本低等优点,在各个领域中应用广泛。方案二:选用STC的12C系列单片机,并且采用双单片机工作模式,通讯方式为并口,具有较高的抗干扰能力,其机器周期是原来的1/12,速度更快,并且兼具方案一功耗低、体积小等优点。所以基于上述理论分析和实际情况,电机驱动模块选用方案二。2.1.3 电机驱动模块设计方案本次设计的主要目的是通过对电机驱动系统的研究,对电机实现灵活调速。因此电机驱动模块器件的选取是本此设计的重要部分,其方案有以下两种。方案一:采用电力MOSFET管组合电路构成驱动电路,这种方法结构简单

13、,成本低、易实现,但由于在驱动电路中采用了大量的晶体管相互连接,使得电路复杂、抗干扰能力差、可靠性下降,我们知道在实际的生产实践过程中可靠性是一个非常重要的方面。因此此中方案不宜采用。方案二:采用专用的电机驱动芯片,M57957L电机驱动芯片,由于它内部已经考虑到了电路的抗干扰能力,安全、可靠行,所以我们在应用时只需考虑到芯片的硬件连接、驱动能力等问题就可以了,而且M57957L是以IGBT为核心元件,它集中了MOSFET和GTR的优点;所以此种方案的电路设计简单、抗干扰能力强、可靠性好。基于上述理论分析和实际情况,电机驱动模块选用方案二。2.1.4 速度采集模块设计方案本系统是一闭环控制系统

14、,在调节过程中需要将设定与当前实际转速进行比较,速度采集模块就是为完成这样功能而设计的,其设计方案以下两种:方案一:采用对射式光电传感器。其检测方式为:发射器和接受器相互对射安装,发射器的光直接对准接受器,当测物挡住光束时,传感器输出产生变化以指示被测物被检测到。通过脉冲计数,对速度进行测量。方案二:采用测速发电机对直流电机转速进行测量。该方案的实现原理是将测速发电机固定在电动机的轴上,当电机转动时,带动测速电机的轴一起转动,因此测速发电机会产生大小随直流电机转速大小变化的感应电动势,因此精度比较高,虽然该方案的安装比较复杂,但考虑到其精度的要求在设计中选用第二种方案进行设计。2.1.5 键盘

15、模块设计方案 在电机驱动控制系统中,系统需要按键进行参数的输入、工作方式的设定以及电机起停的控制,因此键盘在整个系统中是不可缺少的一部分,考虑有二种方案:方案一:采用独立式键盘,这种键盘硬件连接和软件实现简单,并且各按键相互独立,每个按键均有一端接地,另一端接到输入线上。按键的工作状态不会影响其它按键上的输入状态。但是由于独立式键盘每个按键需要占用一根输入口线,所以在按键数量较多时,I/O口浪费大,故此键盘只适用于按键较少或操作速度较高的场合。方案二:采用行列式键盘,这种键盘的特点是行线、列线分别接输入线、输出线。按键设置在行、列线的交叉点上,利用这种矩阵结构只需m根行线和n根列线就可组成个按

16、键的键盘,因此矩阵式键盘适用于按键数量较多的场合。但此种键盘的软件结构较为复杂。根据上面两种方案的论述,由于本次设计的系统硬件连接比较复杂,对软件的运行速度相对要求不高,所以采用方案二矩阵式键盘进行设计。经过上述的分析与论证,系统各模块采用的方案如下:(1) 控制模块:采用STC的12C系列单片机,并且采用双单片机工作模式,通讯方式为并口;(2)电机驱动模块:采用M57957L电机驱动芯片实现;(3)速度采集模块:采用测速发电机对直流电机转速进行测量;(4)键盘模块:采用标准的44矩阵式键盘;2.2 系统技术指标系统主要完成以下功能:软件部分:1.用c语言完成转速测量,调控的软件系统;2.要求

17、把转速显示在12864LCD液晶显示器上,精度为0.1%;3.能向上位机发送数据;4.将采样电路取得电源电压经模数转换器处理后输入单片机控制系统,完成欠电压过电压过电流保护。硬件部分:1.设计并制作单片机的转速测量,调控的硬件系统; 2.驱动电路在驱动功率高,开关速度快,热稳定性好的前提下将电子电路控制信号放大并且精度高。3.整体电路功耗低, 避免逻辑上的缺陷, 软硬件协调工作;3 硬件电路设计硬件的功能由总体设计所规定,硬件设计的任务是根据总体设计要求,在选择的机型的基础上,具体确定系统中所要使用的元器件,设计出系统的电路原理图,必要时做一些部件实验或应用仿真软件仿真操作,以确定电路图的正确

18、性。设计单片机模块,考虑到单片机本身的外围电路较多,所以在单片机模块方面需要极为小心。3.1 单片机模块根据系统功能要求以及单片机硬件电路设计思路对单片机模块进行设计,要使单片机准确的测量电机转速,并且使测出的数据能显示出来,所以整个单片机部分分为测速发电机、时钟电路、复位电路、执行元件以及显示电路五个部分。3.1.1 STC12C5A60S2单片机的基本特性单片机我们采用STC12C5A60S2 (其引脚图如图2),相较于89C52系列单片机它本身带有一定的优点。STC12C5A60S2是单时钟/机器周期(1T)、高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,

19、但速度快8-12倍。内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S),针对电机控制,强干扰场合。图2 STC12C5A60S2单片机引脚图主要特性:增强型8051 CPU,1T,单时钟/机器周期,指令代码完全兼容传统8051;工作电压:STC12C5A60S2系列工作电压:5.5V-3.3V(5V单片机)工作频率范围:0 - 35MHz,相当于普通8051的 0420MHz;片上集成1280字节RAM;外部掉电检测电路:在P4.6口有一个低压门槛比较器,5V单片机为1.32V,误差为+/-5%,3.3V单片机为1.30V,误差为+/-3%;时钟源:外部高精

20、度晶体/时钟,内部R/C振荡器(温漂为+/-5%到+/-10%以内) 共4个16位定时器 两个与传统8051兼容的定时器/计数器A/D转换, 10位精度ADC,共8路,转换速度可达250K/S(每秒钟25万次)18.通用全双工异步串行口(UART),由于STC12系列是高速的8051,可再用定时器或PCA软件实现多串口;工作温度范围:-40 - +85(工业级) 0 - 75(商业级) 各引脚功能简单介绍如下:P0口:P0口为一个8位漏级开路双向I/O口,每个管脚可吸收8TTL门电流。当P1口的管脚写“1”时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

21、在FLASH编程时,P0口作为原码输入口,当FLASH进行校验时,P0输出原码,此时P0外部电位必须被拉高;P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入“1”后,电位被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收;P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚电位被内部上拉电阻拉高,且作为输入。作为输入时,P2口的管脚电位被外部拉低,将输出电流,这是由于内部上拉

22、的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉的优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号;P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入时,由于外部下拉为低电平,P3口将输出电流(ILL),也是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口:P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P

23、3.2 INT0(外部中断0)P3.3 INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 WR (外部数据存储器写选通)P3.7 RD (外部数据存储器读选通)同时P3口同时为闪烁编程和编程校验接收一些控制信号;RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高平时间;ALE / PROG :当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要

24、注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令时ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效;PSEN:外部程序存储器的选通信号。在由外部程序存储器取址期间,每个机器周期PSEN两次有效。但在访问内部部数据存储器时,这两次有效的PSEN信号将不出现;EA/VPP:当EA保持低电平时,访问外部ROM;注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,访问内部ROM。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP);XT

25、AL1:反向振荡放大器的输入及内部时钟工作电路的输入;XTAL2:来自反向振荡器的输出;VCC:供电电压;GND:接地;3.1.2双单片机工作模式当检测与控制系统处理大量数据和多路信息时,只用一片单片机往往无法满足系统实时性和扩展性要求,且处理时间较长,单片机要在相等的时间间隔进行A/D转换以及数据处理。由于要实现电机的PID调速同时还要进行过电压欠电压保护以及电流实时监测,因此这里提出一种基于双单片机的信号处理系统设计方案,该系统采用单片机STC12C5A60S2作为核心器件,2片单片机作为双核心分担整个控制、检测单元的任务。图3 双单片机工作模式3.1.3并行通信与串行通信并行通信:所传送

26、数据的各个位同时发送或接收。相同时钟速率下,并行通信速度较快,适合高速本地通信。串行通信:所传送的数据的各个位按顺序一位一位的发送或接收。串行通信连线少、连接可靠,适合远距离通信。图4 并行通信与串行通信示意图 在本设计中采用双单片机模式,通信方式为并行通信,这样可以提高控制系统的工作效率以及精确度。其中,甲机用于监控电源电压是否出现欠电压过电压过电流。乙机用于实现对电机的PID控制,即控制器产生PWM脉冲送到电机驱动电路中,经过放大后控制电机转速,同时利用速度检测模块将当前转速反馈到控制器中,控制器经过数字PID运算后改变PWM脉冲的占空比,实现电机转速实时控制的目的。同时乙机控制12864

27、LCD液晶显示器,显示出当前转速。3.2电机驱动电路驱动模块是控制器与执行器之间的桥梁,在本系统中单片机的I/O口不能直接驱动电机,只有引入电机驱动模块才能保证电机按照控制要求运行,在这里选用M57957L电机驱动芯片驱动电机,M57957L内部集成有可在输入与输出之间实现良好电气隔离的光电隔离器,所以可对被驱动的IGBT模块实现可靠的驱动。M57957L可用来直接驱动Vces=600V系列的电流容量在200A以内的IGBT模块及Vces=1200V系列的电流容量在100A以内的IGBT模块;而M57958L可用来直接驱采用双电源驱动技术,输入信号与TTL电平兼容,且采用单列直插式厚膜集成电路

28、封装。3.2.1 M57957L的结构M57957L采用单列直插式标准8脚厚膜集成电路封装。其外形和引脚排列如图5所示,各引脚的名称、功能及用法可参见表1所列。图5 M57957L的引脚排列示图表1 M57957L引脚说明引脚号符号名称或功能用法1VIN驱动脉冲输入负端使用中通过一反相器接用户脉冲形成电路的输出2VIN驱动脉冲输入正端使用中通过一电阻接用户脉冲形成部分电源5GND驱动脉冲输出地端接驱动脉冲输出级电源地端,该端电位应与用户脉冲形成部分完全隔离6VCC驱动功放级正电源端接用户提供的驱动脉冲功放级正电源端7Vout驱动脉冲输出端直接接被驱动IGBT栅极8VEE驱动功放级负电源端接用户

29、提供的驱动脉冲功放级负电源端3.2.2 M57957L的工作原理M57957L内部结构如图6所示,来自脉冲形成单元的驱动信号为高电平时光耦导通,接口电路把该信号整形后由功放级的两级达林顿NPN晶体管放大后输出,驱动功率IGBT模块导通。在驱动信号为低电平时光耦截止,此时接口电路输出亦为低电平,功放输出级PNP晶体管导通,给被驱动的功率IGBT栅、射极间施加以反向电压,使被驱动功率IGBT模块恢复关断状态。图6 M57957L内部结构3.3 显示电路设计 根据设计要求要对系统各项参数和电机运行状态进行显示,因此在电路中加入显示模块是非常必要的。在系统运行过程中需要显示的数据比较多,而且需要汉字显

30、示,在这里选用12864液晶显示器比较适合,它是一种图形点阵液晶显示器,主要由行驱动器/列驱动器及12864全点阵液晶显示器组成,可完成汉字(1616)显示和图形显示共有20个引脚,其引脚名称及引脚编号的对应关系如图7,引脚功能如表2所示。图7 12864LCD引脚分布表2 12864液晶显示模块引脚功能引脚符 号引 脚 功 能引脚符 号引 脚 功 能1VSS电源地15CS1CS1=1芯片选择左边64*64点2VDD电源正+5V16CS2CS2=1芯片选择右边64*64点3VO液晶显示驱动电源17/RST复位(低电平有效)4RSH:数据输入;L:指令码输入18VEELCD驱动负电源5R/WH:

31、数据读取;L:数据写入19A背光电源(+)6E使能信号。20K背光电源(-)7-14DB0-DB7数据线有些型号的模块19、20脚为空脚3.4 键盘电路设计根据设计需求,本系统中使用了44键盘用以实现对P、I、D三个参数和电机正反转的设定,以及对电机启动、停止、暂停、继续的控制,其电路原理图如图8所示。图中L0L3为44键盘的列信号,H0H3为44键盘的行信号。在本系统中,用P1.0P1.3连接键盘的列信号L0L3;用P0.4P0.7连接键盘的行信号H0H3。按照要求设计操作面板如图8所示:图8 键盘模块键盘操作说明:在系统开始运行时,12864LCD将显示开机界面,若设置键显示屏进入参数设置

32、界面,此时按1、2、3、4进入相应参数的设置的状态,输入相应的数字即可完成该参数的设置,待所有量设置完成后按正/反控制键设置正反转,最后按启动键启动系统,在运行过程中可按下相应键对电机进行暂停、继续、停止运行的控制。4 软件设计4.1 程序流程4.1.1 主流程图在一个完整的系统中,只有硬件部分是不能完成相应设计任务的,所以在该系统中软件部分是非常重要的,按照要求和系统运行过程设计出主程序流程如图9所示。 图9 主流程图4.1.2显示程序流程显示模块是实现人机对话的重要部分,在这里选用12864LCD显示器可实现对汉字和字符的显示,该显示器的引脚功能在上面已经做了说明,下面介绍12864LCD

33、的相关指令。显示子程序流程如图10所示图10 显示程序流程4.1.3键盘程序程序流程键盘中断程序是用来设在系统相应参数和控制系统进入相应的运行状态,其程序流程图如图11所示。图11键盘程序程序流程4.2算法实现4.2.1 电机速度算法测速发电机输出电动势与转速成比例的微特电机。测速发电机的绕组和磁路经精确设计,其输出电动势E和转速n成线性关系,即E=Kn,K是常数。改变旋转方向时输出电动势的极性即相应改变。在被测机构与测速发电机同轴联接时,只要检测出输出电动势,就能获得被测机构的转速。4.2.2 PID算法本系统设计的核心算法为PID算法,它根据本次采样的数据与设定值进行比较得出偏差,对偏差进

34、行P、I、D运算最终利用运算结果控制PWM脉冲的占空比来实现对加在电机两端电压的调节10,进而控制电机转速。其运算公式为:因此要想实现PID控制在单片机就必须存在上述算法,其程序流程如图12所示。图12 算法流程38小结本课题的目的在于利用单片机实现PID算法产生PWM脉冲来控制电机转速同时监控电压电流起到保护作用并且本设计控制灵活、可靠、精度高,可满足测试的各项要求。可以对小型工农业的电机简单控制实现小型化。可以与上位机通讯实现复杂控制。驱动体积小,功耗小,采用标准器件方便更换升级。到目前为止通过对控制器模块、电机驱动模块、LCD显示模块、键盘模块、数字PID算法、电压电流监控等进行了比较深

35、入的研究。完成了硬件电路的系统设计,软件方面利用C语言进行编程,增强了程序的可移植性和灵活性。 通过此次设计,掌握了驱动电路的相关设计及数字PID算法的使用及编程方法,学习了如何进行系统设计及相关技巧,为今后的工作和学习奠定了坚实的基础。参考文献1 孙传友. 测控系统原理与设计M .北京:北京航空航天大学出版社, 20032 王兆安.电力电子技术(第四版). 北京:机械工业出版社, 2006 3 李广弟.单片机基础(第三版).北京:北京航空航天大学出版社,20074 杨渝钦.控制电机. 北京:机械工业出版社,20115 童诗白.模拟电子技术(第四版).北京:高等教育出版社,20066 阎石.数

36、字电子技术(第五版).北京:高等教育出版社,20057 王勇骥.自动控制原理(第二版).北京:化学工业出版社,20078 李宏.M57957L/M57958L IGBT厚膜驱动器集成电路手册.电子发烧友论坛.2009 9 STC12C5A60S2系列单片机器件手册. 电子发烧友论坛.201210锦昌电子.12864LCD数据手册DB/OL. .2006附录 部分源程序一、主程序:main( ) zf=0; flag1=0; EA=1; IT0=1; EX0=1; count=0; en=0; en1=0; en2=0; U0=200; Un=0; cc=0; zanting=0; pwm1=0

37、; pwm2=0; P1=0xF0; Init_lcd(); /设置液晶显示器 Clr_Scr(); /清屏 left();Disp_Chinese(0,0,dan); /单 left();Disp_Chinese(0,16,pian); /片 left();Disp_Chinese(0,32,ji); /机 left();Disp_Chinese(0,48,de); /的 right();Disp_Chinese(0,0,shu); /数 right();Disp_Chinese(0,16,zi); /字 right();Disp_Digit(0,32,dp); /P right();Dis

38、p_Chinese(0,40,di); /I right();Disp_Digit(0,56,dd); /D left();Disp_Chinese(3,16,dian); /电 left();Disp_Chinese(3,32,ji); /机 left();Disp_Chinese(3,48,tiao); /调 right();Disp_Chinese(3,0,shu0); /速 right();Disp_Chinese(3,16,xi); /系 right();Disp_Chinese(3,32,tong); /统 left();Disp_Chinese(6,48,heng); /横线 r

39、ight();Disp_Chinese(6,0,heng); /横线 right();Disp_Chinese(6,16,jia); right();Disp_Chinese(6,32,xiao); right();Disp_Chinese(6,48,wei); flag0=0; for( ; ; ) /等待设置键按下 if(flag0=1) break; Clr_Scr(); /清屏 left();Disp_Chinese(0,32,can); left();Disp_Chinese(0,48,shu); right();Disp_Chinese(0,0,she); right();Disp

40、_Chinese(0,16,zhi); left();Disp_Chinese(2,4,Kp); left();Disp_Digit(2,20,maohao); left();Disp_Digit(2,28,s0); left();Disp_Digit(2,36,s0); left();Disp_Digit(2,44,dian0); left();Disp_Digit(2,52,s0); right();Disp_Chinese(2,4,Ki); right();Disp_Digit(2,20,maohao); right();Disp_Digit(2,28,s0); right();Disp

41、_Digit(2,36,s0); right();Disp_Digit(2,44,dian0); right();Disp_Digit(2,52,s0); left();Disp_Chinese(4,4,Kd); left();Disp_Digit(4,20,maohao); left();Disp_Digit(4,28,s0); left();Disp_Digit(4,36,s0); left();Disp_Digit(4,44,dian0); left();Disp_Digit(4,52,s0); right();Disp_Chinese(4,4,V); right();Disp_Digi

42、t(4,20,maohao); right();Disp_Digit(4,28,s0); right();Disp_Digit(4,36,s0); right();Disp_Digit(4,44,s0); left();Disp_Chinese(6,4,zhuan); left();Disp_Chinese(6,20,xiang); left();Disp_Digit(6,36,maohao); left();Disp_Chinese(6,44,zheng); flag1=0; for(set=0;) /等待启动键按下 switch(set) case 0:break; case 1: lef

43、t();Disp_Digit(2,28,s0); left();Disp_Digit(2,36,s0); left();Disp_Digit(2,52,s0); Kpp=0; for(flag=0,n=0;) left();Disp_Digit(2,28,kong); Delay12864(1000); left();Disp_Digit(2,28,sn); Delay12864(2500); if(flag=1) break; left();Disp_Digit(2,28,sn); Kpp+=10*n; for(flag=0,n=0;) left();Disp_Digit(2,36,kong

44、); Delay12864(1000); left();Disp_Digit(2,36,sn); Delay12864(2500); if(flag=1) break; left();Disp_Digit(2,36,sn); Kpp+=n; for(flag=0,n=0;) left();Disp_Digit(2,52,kong); Delay12864(1000); left();Disp_Digit(2,52,sn); Delay12864(2500); if(flag=1) break; left();Disp_Digit(2,52,sn); Kpp+=0.1*n; set=0; bre

45、ak; case 2:right();Disp_Digit(2,28,s0); right();Disp_Digit(2,36,s0); right();Disp_Digit(2,52,s0); Kii=0; for(flag=0,n=0;) right();Disp_Digit(2,28,kong); Delay12864(1000); right();Disp_Digit(2,28,sn); Delay12864(2500); if(flag=1) break; right();Disp_Digit(2,28,sn); Kii+=10*n; for(flag=0,n=0;) right()

46、;Disp_Digit(2,36,kong); Delay12864(1000); right();Disp_Digit(2,36,sn); Delay12864(2500); if(flag=1) break; right();Disp_Digit(2,36,sn); Kii+=n; for(flag=0,n=0;) right();Disp_Digit(2,52,kong); Delay12864(1000); right();Disp_Digit(2,52,sn); Delay12864(2500); if(flag=1) break; right();Disp_Digit(2,52,s

47、n); Kii+=0.1*n; set=0; break; case 3:left();Disp_Digit(4,28,s0); left();Disp_Digit(4,36,s0); left();Disp_Digit(4,52,s0); Kdd=0; for(flag=0,n=0;) left();Disp_Digit(4,28,kong); Delay12864(1000); left();Disp_Digit(4,28,sn); Delay12864(2500); if(flag=1) break; left();Disp_Digit(4,28,sn); Kdd+=10*n; for(

48、flag=0,n=0;) left();Disp_Digit(4,36,kong); Delay12864(1000); left();Disp_Digit(4,36,sn); Delay12864(2500); if(flag=1) break; left();Disp_Digit(4,36,sn); Kdd+=n; for(flag=0,n=0;) left();Disp_Digit(4,52,kong); Delay12864(1000); left();Disp_Digit(4,52,sn); Delay12864(2500); if(flag=1) break; left();Dis

49、p_Digit(4,52,sn); Kdd+=0.1*n; set=0; break; case 4:right();Disp_Digit(4,28,s0); right();Disp_Digit(4,36,s0); right();Disp_Digit(4,44,s0); V0=0; for(flag=0,n=0;) right();Disp_Digit(4,28,kong); Delay12864(1000); right();Disp_Digit(4,28,sn); Delay12864(2500); if(flag=1) break; right();Disp_Digit(4,28,s

50、n); V0+=100*n; for(flag=0,n=0;) right();Disp_Digit(4,36,kong); Delay12864(1000); right();Disp_Digit(4,36,sn); Delay12864(2500); if(flag=1) break; right();Disp_Digit(4,36,sn); V0+=10*n; for(flag=0,n=0;) right();Disp_Digit(4,44,kong); Delay12864(1000); right();Disp_Digit(4,44,sn); Delay12864(2500); if

51、(flag=1) break; right();Disp_Digit(4,44,sn); V0+=n; set=0; break; if(flag1=1) break; Clr_Scr(); /清屏 left();Disp_Chinese(0,32,dian); /电 left();Disp_Chinese(0,48,ji); /机 right();Disp_Chinese(0,0,zhuang); /状 right();Disp_Chinese(0,16,tai); /态 left();Disp_Chinese(3,0,dang); left();Disp_Chinese(3,16,qian

52、); left();Disp_Chinese(3,32,zhuan); left();Disp_Chinese(3,48,shu0); right();Disp_Digit(3,0,maohao); if(zf=0) right();Disp_Chinese(3,8,zhenghao); else right();Disp_Chinese(3,8,fuhao); right();Disp_Digit(3,24,s0); right();Disp_Digit(3,32,s0); right();Disp_Digit(3,40,s0); left();Disp_Chinese(6,0,yun);

53、left();Disp_Chinese(6,16,xing); left();Disp_Chinese(6,32,shi); left();Disp_Chinese(6,48,jian); right();Disp_Digit(6,0,maohao); right();Disp_Digit(6,8,s0); right();Disp_Digit(6,16,maohao); right();Disp_Digit(6,24,s0); right();Disp_Digit(6,32,s0); right();Disp_Digit(6,40,maohao); right();Disp_Digit(6,

54、48,s0); right();Disp_Digit(6,56,s0); EX1=1; IT1=1; TMOD=0x11; ET0=1; TL0=0xb0; TH0=0x3c; TR0=1; Un=0; if(zf=0) for(;) if(zanting=1) pwm1=0; else pwm1=1; Delay12864(Un); pwm1=0; Delay12864(500-Un); if(zf=1) for(;) if(zanting=1) pwm2=0; else pwm2=1; Delay12864(Un); pwm2=0; Delay12864(500-Un); 二、键盘程序:v

55、oid innt0() interrupt 0 using 2 unsigned char key,keyh,keyl; Delay12864(10); /延时,去抖动 keyh=P1; P1=0x0f; keyl=P1; key=keyh|keyl; P1=0xf0; switch(key) case 0xee:set=0;n=0;flag=1;break; case 0xed:set=1;n=1;flag=1;break; case 0xeb:set=2;n=2;flag=1;break; case 0xe7:set=3;n=3;flag=1;break; case 0xde:set=4;

56、n=4;flag=1;break; case 0xdd:set=5;n=5;flag=1;break; case 0xdb:set=0;n=6;flag=1;break; case 0xd7:set=0;n=7;flag=1;break; case 0xbe:set=0;n=8;flag=1;break; case 0xbd:set=0;n=9;flag=1;break; case 0xbb:set=0;left();zf=!zf; if(zf=0) Disp_Chinese(6,44,zheng); else Disp_Chinese(6,44,fan); break; case 0xb7:set=0;zanting=1;break; case 0x7e:set=0;zanting=0;break; case 0x7d:set=0;flag1=1;break; case 0x7b:set=0;pwm1=0;pwm2=0; Clr_Scr();left();

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!