正反转加减速步进电机(调好)

合集下载

步进电机转速调节的方法

步进电机转速调节的方法

步进电机转速调节的方法
工程师在依据负载,力矩等选好步进电机和驱动器的型号后,在详细应用中,还涉及到步进电机的转速这一参数的确定和设置。

建议通过调整输入驱动器的脉冲频率以及驱动器的细分参数来达到调整步进电机转速的作用。

其实就是掌握单位时间内步进电机的步数。

常规调整步进电机转速的方法分为以下几种:
一、换向器电机调速
优点:①具有沟通同步电机结构简洁和直流电机良好的调速性能; ②低速时用电源电压、高速时用步进电机反电势自然换流,运行牢靠;
③无附加转差损耗,效率高,适用于高速大容量同步电机的启动和调速。

缺点:过载力量较低,原有电机的容量不能充分发挥。

二、定子调压调速
优点:①线路简洁,装置体积小,价格廉价; ②使用、修理便利。

缺点:①调速过程中增加转差损耗,此损耗使转子发热,效率较低; ②调速范围比较小; ③要求采纳高转差电机,比如特别设计的力矩电机,所以特性较软,一般适用于55kW以下的异步电机。

三、转子串电阻调速
优点:①技术要求较低,易于把握; ②设备费用低; ③无电磁谐波干扰。

缺点:①串铸铁电阻只能进行有级调速。

若用液体电阻进行无级调速,则维护、保养要求较高; ②调速过程中附加的转差功率全部转化为所串电阻发热形式的损耗,效率低。

③调速范围不大。

四、电磁转差离合器调速
优点:①结构简洁,掌握装置容量小,价值廉价; ②运行牢靠,修理简单; ③无谐波干扰。

缺点:①速度损失大,由于电磁转差离合器本身转差较大,所以输出轴的最高转速仅为电机同步转速的80%~90%;
②调速过程中转差功率全部转化成热能形式的损耗,效率低。

PLC实现步进电机的正反转及调整控制

PLC实现步进电机的正反转及调整控制

实训课题三PLC实现步进电机正反转和调速控制一、实验目的1、掌握步进电机的工作原理2、掌握带驱动电源的步进电机的控制方法3、掌握DECO指令实现步进电机正反转和调速控制的程序二、实训仪器和设备1、FX2-48MR PLC 一台2、两相四拍带驱动电源的步进电机一套3、正反切换开关、起停开关、增减速开关各一个三、步进电机工作原理步进电机是纯粹的数字控制电动机,它将电脉冲信号转换成角位移,即给一个脉冲信号,步进电机就转动一个角度,图3-1是一个三相反应式步进电机结图。

从图中可以看出,它分成转子和定子两部分。

定子是由硅钢片叠成,定子上有六个磁极(大极),每两个相对的磁极(N、S极)组成一对。

共有3对。

每对磁极都绕有同一绕组,也即形成1相,这样三对磁极有3个绕组,形成三相。

可以得出,三相步进电机有3对磁极、3相绕组;四相步进电机有4对磁极、四相绕组,依此类推。

反应式步进电动机的动力来自于电磁力。

在电磁力的作用下,转子被强行推动到最大磁导率(或者最小磁阻)的位置,如图3-1(a)所示,定子小齿与转子小齿对齐的位置,并处于平衡状态。

对三相异步电动机来说,当某一相的磁极处于最大导磁位置时,另外两相相必处于非最大导磁位置,如图3-1(b)所示,即定子小齿与转子小齿不对齐的位置。

图3—1三相反应式步进电动机结构图把定子小齿与转子小齿对齐的状态称为对齿,把定子小齿与转子小齿不对齐的状态称为错齿。

错齿的存在是步进电机能够旋转的前提条件,所以,在步进电机的结构中必须保证有错齿的存在,也就是说,当某一相处于对齿状态时,其它绕组必须处于错齿状态。

本实验的电机采用两相混合式步进电机,其内部上下是两个磁铁,中间是线圈,通了直流电以后,就成了电磁铁,被上下的磁铁吸引后就产生了偏转。

因为中间连接的电磁铁的两根线不是直接连接的,是采用在转轴的位置用一根滑动的接触片。

这样如果电磁铁转过了头,原先连接电磁铁的两根线刚好就相反了,所以电磁铁的N极S极就和以前相反了。

PLC实现步进电机的正反转及调整控制

PLC实现步进电机的正反转及调整控制

PLC实现步进电机的正反转及调整控制PLC是专门用于控制工程自动化系统的一种可编程逻辑控制器,其可以通过编程来实现对各种电气设备的控制。

在实际工程中,步进电机广泛应用于自动化设备中,如数控机床、包装机械、印刷设备等。

步进电机具有分辨率高、精度高、响应速度快等优点,因此被广泛应用于各种自动化控制系统中。

在PLC实现步进电机的正反转及调整控制中,需要考虑以下几个方面:1.步进电机驱动模块选型:步进电机需要配合驱动模块进行控制,通常采用的是脉冲信号驱动方式。

在PLC控制系统中,可以选择适合的驱动模块,如常见的2相、4相步进电机驱动模块。

2.步进电机控制程序设计:通过PLC软件编程,编写程序实现步进电机的正转、反转及调整控制功能。

在程序设计中,需要考虑步进电机的控制方式、驱动模块的接口信号、脉冲信号的频率等参数。

3.步进电机正反转控制:在程序设计中,通过PLC输出脉冲信号控制步进电机的正反转运动。

具体步骤包括设置脉冲信号的频率和方向,控制步进电机按设定的脉冲信号实现正反转运动。

4.步进电机调整控制:步进电机的位置调整控制通常通过调整脉冲信号的频率和数目来实现。

通过PLC编程,实现步进电机的位置调整功能,从而实现对步进电机位置的精准控制。

5.总体控制设计:在PLC控制系统中,可以将步进电机的正反转及调整控制与其它控制功能相结合,实现对整个自动化系统的精确控制。

通过PLC编程,可以灵活设计多种控制逻辑,满足不同工程项目的需求。

综上所述,通过PLC实现步进电机的正反转及调整控制主要涉及步进电机驱动模块选型、控制程序设计、正反转控制、调整控制和总体控制设计等方面。

通过精心设计和编程,可以实现对步进电机的精确控制,满足各种自动化控制系统的要求。

PLC技术的应用将有助于提高自动化生产设备的生产效率和稳定性,推动工业自动化技术的发展。

PLC实现步进电机的正反转及调整控制

PLC实现步进电机的正反转及调整控制

PLC实现步进电机的正反转及调整控制
一、PLC实现步进电机的控制原理
拿步进电机举例,大家可以把它想象成一个隔著一定距离的圆盘,隔着每一环的距离形成齿轮的节点。

步进电机的正向或反向转动,就是将这一环索引和圆盘一起发动转动。

步进电机的转动,是靠每一步索引圆盘来完成的,每一步都有一个控制信号来告诉电机从哪一环节点开始转动,当接收到控制信号时,电机开始转动,并且每转一圈循环转动几个索引。

1、正向、反向控制
要实现步进电机的正向反向控制,就要在PLC程序中控制信号形式来实现,一般可以使用两个控制信号,一个是正反控制信号,一个是步进电机转动的速度,要求PLC程序根据正反控制信号来实现正向和反向控制。

正反控制信号就是设置一个开关量变量,当这个开关量为ON时,电机运行正转,当开关量为OFF时,电机运行反转,具体可以采用T函数来实现,T11=1,电机正转,T12=0,电机反转。

由于步进电机的转动是一布一射的过程,所以需要用一个电位器来控制步进电机的转动速度,当电位器的旋钮调整到一定位置时,就会给出一定频率的步进信号,PLC程序可以根据此步进信号,来控制步进电机的转动速度。

微机原理课程设计-步进电机的正反转及调速控制

微机原理课程设计-步进电机的正反转及调速控制

课程设计报告题目步进电机正反转及调速控制系统的设计课程名称微机原理及应用院部名称机电工程学院专业电气工程及其自动化班级10电气1班学生姓名管志成学号**********课程设计地点C304课程设计学时20指导教师李国利金陵科技学院教务处制成绩步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件,具有快速启动能力,定位精度高,能够直接接受数字量,因此被广泛地应用于数字控制系统中,如数模转换装置、精确定位、计算机外围设备等,在现代控制领域起着非常重要的作用。

本设计基于Proteus 7.8设计环境,运用了8086 CPU芯片以及74273芯片、74244芯片和步进电机以及7位小功率驱动芯片ULN2003A、按钮、指示灯等辅助硬件电路,设计了步进电机正反转及调速系统。

绘制软件流程图,进行了软件设计并编写了源程序,最后对软硬件系统进行联合调试。

该步进电机的正反转及调速系统具有控制步进电机正反转的功能,还可以对步进电机进行调速,不同的按钮对应不同的速度,并且在没有速度按钮按下的时候,步进电机自动切换到停止状态。

关键词:步进电机;正反转;调速控制;ULN2003A芯片;8086微机系统一、概述1.1 课程设计的目的 (4)1.2课程设计的要求 (4)二、总体设计方案及说明2.1 系统总体设计方案 (5)2.2系统工作框图 (5)三、系统硬件电路设计3.1 Intel 8086 微处理器的简介 (6)3.2 步进电机的原理 (7)3.3 ULN2003A的简介 (8)3.4 74154芯片简介 (9)3.5 74LS273芯片简介 (10)3.6 8086最小系统的设计 (11)3.7 步进电机及其驱动电路的设计 (12)3.8 电机状态显示电路的设计 (12)3.9 输入采样电路的设计 (13)3.10系统总电路图 (14)四、系统软件部分设计4.1 系统流程图 (15)4.2 系统软件源程序 (16)4.2.1电机绕组通电顺序设定 (16)4.2.2 延时子程序设计 (16)4.2.3 汇编源程序及说明 (16)五、总结5.1 系统软硬件的联合调试 (21)5.2 问题分析和解决方案 (23)5.3 心得与体会 (23)六、参考文献 (23)附录:总电路图 (25)一、概述1.1 课程设计的目的通过本课程设计,使学生掌握控制系统设计的一般步骤,掌握系统总体控制方案的设计方法。

51单片机按键控制步进电机加减速及正反转

51单片机按键控制步进电机加减速及正反转

51单片机按键控制步进电机加减速及正反转之前尝试用单片机控制42步进电机正反转,电机连接导轨实现滑台前进后退,在这里分享一下测试程序及接线图,程序部分参考网上找到的,已经实际测试过,可以实现控制功能。

所用硬件:步进电机及驱动器、STC89C52单片机、直流电源1、硬件连接图•注意:上图为共阳极接法,实际连接参考总体线路连接。

•驱动器信号端定义:PUL+:脉冲信号输入正。

( CP+ )PUL-:脉冲信号输入负。

( CP- )DIR+:电机正、反转控制正。

DIR-:电机正、反转控制负。

EN+:电机脱机控制正。

EN-:电机脱机控制负。

•电机绕组连接A+:连接电机绕组A+相。

A-:连接电机绕组A-相。

B+:连接电机绕组B+相。

B-:连接电机绕组B-相。

•电源连接VCC:电源正端“+”GND:电源负端“-”注意:DC直流范围:9-32V。

不可以超过此范围,否则会无法正常工作甚至损坏驱动器.•总体线路连接输入信号共有三路,它们是:①步进脉冲信号PUL+,PUL-;②方向电平信号DIR+,DIR-③脱机信号EN+,EN-。

输入信号接口有两种接法,可根据需要采用共阳极接法或共阴极接法。

在这里我采用的是共阴极接法:分别将PUL-,DIR-,EN-连接到控制系统的地端(接入单片机地端);脉冲输入信号通过PUL+接入单片机(代码中给的P2^6脚),方向信号通过DIR+接入单片机(代码中给的P2^4脚),使能信号通过EN+接入(不接也可,代码中未接,置空)。

按键连接见代码,分别用5个按键控制电机启动、反转、加速、减速、正反转。

注意:接线时请断开电源,电机接线需注意不要错相,相内相间短路,以免损坏驱动器。

2、代码1.#include<reg51.h>2.#define MotorTabNum 53.unsigned char T0_NUM;4.sbit K1 = P3^5; // 启动5.sbit K2 = P3^4; // 反转6.sbit K3 = P3^3; // 加速7.sbit K4 = P3^2; // 减速8.sbit K5 = P3^1; //正反转9.10.sbit FX = P2^4; // 方向11.//sbit MotorEn = P2^5; // 使能12.sbit CLK = P2^6; // 脉冲13.14.inttable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};15.16.unsigned char g_MotorSt = 0; //17.unsigned char g_MotorDir = 0; //18.unsigned char MotorTab[7] = {12, 10, 8, 6, 4, 2,1};19.20.signed char g_MotorNum = 0;21.22.void delayms(xms);23.void mDelay(unsigned int DelayTime);24.void T0_Init();25.26.void KeyScan(void);27.28.29.30.void main(void)31.{32.T0_Init();33.// MotorEn = 0; //34.FX = 0;35.while(1)36.{37.KeyScan(); //38.}39.40.41.}42.43.void T0_Init()44.{45.TMOD = 0x01;46.TH0 = (65535-100)/256; // 1ms47.TL0 = (65535-100)%256;48.EA = 1;49.ET0 = 1;50.// TR0 = 1;51.52.}53.54.void T0_time() interrupt 155.{56.// TR0 = 0;57.TH0 = (65535-100)/256;58.TL0 = (65535-100)%256;59.T0_NUM++;60.if(T0_NUM >= MotorTab[g_MotorNum]) //61.{62.T0_NUM = 0;63.CLK=CLK^0x01; //64.}65.// TR0 = 1;66.}67.68.69.//--------------------------70.void KeyScan(void)71.{72.if(K1 == 0)73.{74.delayms(10);75.if(K1 == 0)76.{77.g_MotorSt = g_MotorSt ^ 0x01;78.// MotorEn ^= 1;79.TR0 = 1;80.FX ^= 0; //反转81.}82.}83.84.if(K2 == 0)85.{86.delayms(10); //正转87.if(K2 == 0)88.{89.g_MotorDir = g_MotorDir ^ 0x01;90.FX ^= 1; //加速91.}92.}93.94.if(K3 == 0) //95.{96.delayms(5); //加速97.if(K3 == 0)98.{99.g_MotorNum++;100.if(g_MotorNum > MotorTabNum) 101.g_MotorNum = MotorTabNum; 102.}103.}105.if(K4 == 0) //106.{107.delayms(5); // 减速108.if(K4 == 0)109.{110.g_MotorNum--;111.if(g_MotorNum < 0)112.g_MotorNum = 0;113.}114.}115.116.if(K5 == 0) //117.{118.delayms(10); // 正反转119.if(K5 == 0)120.{121.g_MotorSt = g_MotorSt ^ 0x01; 122.g_MotorDir = g_MotorDir ^ 0x01; 123.MotorEn ^= 1;124.TR0 = 1;125.while(1)126.{127.FX ^= 1; //128.delayms(90000);129.FX ^= 0; //130.delayms(90000);131.}132.}133.}135.136.void delayms(xms)//延时137.{138.unsigned int x,y;139.for(x=xms;x>0;x--)140.for(y=110;y>0;y--);141.}3、常见问题解答•控制信号高于5v一定要串联电阻,否则可能会烧坏驱动器控制接口电路。

步进电机正反转和调速控制中功能指令的应用

步进电机正反转和调速控制中功能指令的应用
2021/8/7
三菱FX2N系列PLC功能指令的应用
步进电机正反转和调速控制中功能指令的应用 五、部分功能指令
1、数据变换指令 BCD/BIN BCD变换指令的编号为FNC18。它是将源元件中的二进制数转换成BCD码 送到目标元件中,如图。如果指令进行16位操作时,执行结果超出0~9999 范围将会出错;当指令进行32位操作时,执行结果超过0~99999999范围也 将出错。
1、控制要求 以三相六拍步进电动机为例,要求PLC产生脉冲序列,作为步进 电动机驱动电源功放电路的输入。脉冲正序列为A-AB-B-BC-C-CA,脉 冲反序列CA-C-BC-B-AB-A。
2021/8/7
三菱FX2N系列PLC功能指令的应用
步进电机正反转和调速控制中功能指令的应用
2、PLC的I/O分配表:
(1)单三拍工作方式:三相步进电动如果按A-B-C-A方式循环通电工作, 就称这种工作方式为单三拍工作方式。
(2)双三拍工作方式:每次对两相同时三拍”,转子转动一个齿距角。
(3)三相六拍工作方式:即以一相和两相相间隔轮流通电的方式运行, 如A-AB-B-BC-C-CA。 2021/8/7
输入 总开关 手动/自动 单步按钮 反转按钮
输出
X0
A相功放电路
X1
B相功放电路
X2
C相功放电路
X3
3、接线图:
Y0 Y1 Y2
减速按钮
X4
加速按钮
X5
2021/8/7
三菱FX2N系列PLC功能指令的应用
步进电机正反转和调速控制中功能指令的应用 3、梯形图及程序分析 参阅配套课本
2021/8/7
电气控制与PLC技术
电气控制与PLC技术

步进电机正反转及调速设计

步进电机正反转及调速设计

步进电机正反转及调速设计陈超渭南师范学院物理与电气工程系2008级电气(1)班摘要:本系统用52系列单片机和LY-36电机驱动芯片并加入了按钮来控制步进电机实现转向、转速等。

系统中使用的四相步进电机,相应的驱动和控制电路对于其整体性能起着非常重要的作用。

经系统调试,能够很好的控制步进电机的正反转、加减速,从而达到预期目的。

整个系统具有结构简单、可靠性高、成本低和实用性强等特点,具有较高的通用性和应用推广价值。

关键词:四相步进电机 52单片机控制 YL-36驱动电路正反转1 绪论1.1 概述步进电机作为执行元件,是机电一体化的关键产品之一,广泛应用在各种自动化系统中,与其他类型的电机相比具有易于精确控制,无累积误差等优点。

步进电机是一种将电脉冲转化为角位移的执行机构。

当步进驱动器接收到一个脉冲信号,就驱动步进电机按设定的方向转一个固定的角度,它的旋转是以固定的角度一步一步运行的,可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。

步进电机可以作为一种控制用的特种电机,利用其没有累积误差的特点,广泛应用于各种开环控制。

单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上,用它来做一些控制电器一类不是很复杂的工作[1]。

单片机内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件。

本文设计一种用STC89C52作为核心部件进行逻辑控制及信号产生的步进电机控制系统。

为使步进电机系统的可靠性、通用性、可维护性以及性价比最优,根据系统的功能要求,通过单片机存储器、I/O口、中断、键盘、LED显示器的扩展来实现步进电机的启停、正反转、加减速等功能。

1.2 步进电机及单片机的发展趋势步进电机的发展,将依赖于新型材料的应用、设计手段,以及与驱动技术的最佳匹配。

随着自动控制技术、计算机网络通信技术在众多领域中的快速发展,以及进一步数字化、智能化,步进电机将会在更深入广泛的领域中得意应用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

/*晶振:12M T1计时250微秒溢出中断一次;P1.01.1为增加,减少键,P3.0输出方波hz_shu 设定的频率数
T1_over_num: 根据设定频率计算后,定时器溢出的出次数值
T1_cnt; 定时器计数溢出数
sec_over_num; 一秒内的计数
second :连续按键的计时
state_val 连续按下的标志0=按键已经弹起;1=按键一直按下
led_seg_code 数码管7段码
**************************************************************/
#include "reg51.h"
#include"math.h"
sbit pulse_out=P2^0; //方波输出口
sbit zf=P2^1; //方向输出
sbit jiasu=P2^2; //按下加速
sbit jiansu=P2^3; //按下减速
sbit fangxiang=P2^4; //改变方向键
//--------------------
unsigned char data hz_shu,second,key_val,key_val_old;
unsigned int data sec_over_num;
unsigned int data T1_cnt,T1_over_num;
unsigned char data state_val;
#define uchar unsigned char
#define uint unsigned int
//char code led_seg_code[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
//------------------------
void delay(unsigned int i)
{
while(--i);}
unsigned char scan_key()
{
unsigned char i,k;
if(jiansu&&jiasu==1)
{ // i=P1;
k=255; // if(i==0xff) 没有按下时i=P1=1
} // {
else // k=255; //无键按下
{ // } delay(10); // else //有键按下
if(jiansu&&jiasu==1) // {
{k=255;} // delay(10);
else if(jiansu==0) // if(i!=P1) //i不等于P1=0xff
{k=1;} //
{k=255;}
else if(jiasu==0) // else
{k=0;} // {switch(i)
// {
//
case 0xfe: k=0; break;
} //
case 0xfd: k=1; break;
// }
// }
// } return k;
}
/* void led_show()
{
unsigned char i;
i=hz_shu%10; //显示个位
P0=led_seg_code[i];
P2=0xfe;
delay(10);
i=hz_shu%100/10; //显示十位
P0=led_seg_code[i];
P2=0xfd;
delay(10);
i=hz_shu%1000/100; //显示百位
P0=led_seg_code[i];
P2=0xfb;
delay(10);
} */
//-------------------------------
unsigned int get_T1_over_num(unsigned char P) //P为频率数
{
unsigned int *k,h;
double f;
f=(double)P; //转化为浮点数
f=0.5/f; //半个周期的时间
f=f/0.00025; //中断溢出数=f/0.00025;
h=f; //取整
//四舍去五入
if(modf(f,k)>=0.5)
{ h=h+1;
}
return h;
}
/*c51库文件main.h,里面有个函数
如下定义:extern float modf(float x,float *ip);
调用它以后,整数部分被放入*ip,小数部分作为返回值
**************************************************/
void timer1() interrupt 3 //T1中断
{ T1_cnt++;
if(T1_cnt>T1_over_num) //半周期的计数到达
{
T1_cnt=0;
pulse_out=!pulse_out; //反复取反,产生方波
}
if(state_val==1) //连续按键
{ if(sec_over_num<4000) //计时未到1S
{sec_over_num++;}
else //计时到1s,执行else的代码
{ sec_over_num=0 ;
if(second<2) //当超过2秒,second一直为2,直到松开按键
{second++;} //连续按下键少于2秒时,second继续增1.
else //连续按下键2秒,以10次/秒的速度连续增加
{TR1=0;
switch(key_val)
{
case 0: if(hz_shu<190)
{ hz_shu=hz_shu+10;} //增10HZ/秒
else
{ hz_shu=200;}
T1_over_num=get_T1_over_num(hz_shu);
break;
case 1: if(hz_shu>10)
{ hz_shu=hz_shu-10;} //减10/秒
else
{hz_shu=1;}
T1_over_num=get_T1_over_num(hz_shu);
break;
}
TR1=1;
}
}
}
}
void main()
{ zf=1;
pulse_out=0;//初始化各变量
hz_shu=5;
T1_cnt=0;
state_val=0;
second=0;
sec_over_num=0;
T1_over_num=get_T1_over_num(hz_shu);
//初始化寄存器
TMOD=0x20; //用T1计时8位自动装载定时模式,T0计数P3.4的脉冲数TH1=0x06; //250微秒溢出一次;250(256-x)*12/12->x=6
TL1=0x06; //200hz的半周期为2.5MS,要溢出中断10次
EA=1;
ET1=1;
TR1=1;
while(1)
{ //转向开始
if(fangxiang==0)
{delay(10);
if(fangxiang==0)
{zf=~zf;
// while(zf==0);
}
} //转向结束
key_val=scan_key(); //扫描按键
if(key_val!=key_val_old)
{ //说明有按键按下或弹起
key_val_old=key_val;
if(key_val!=255)
{ //说明按键按下
state_val=0; //清除连续按键标志
sec_over_num=0;
switch(key_val)
{ case 0: //增1键
hz_shu++;
T1_over_num=get_T1_over_num(hz_shu);
break;
case 1: //减1键
if(hz_shu>=2)
{hz_shu--;}
else
{hz_shu=1;}
T1_over_num=get_T1_over_num(hz_shu);
break;
}
}
else //说明按键弹起
{state_val=0;
second=0;
}
}
else //一直按下或弹起
{if(key_val!=255)
{state_val=1; //连续按键
}
else
{state_val=0;} //没有按键按下,一直处于弹起状态}
// led_show(); //数码管显示,动态扫描
}
}。

相关文档
最新文档