




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGEPAGE31电子信息与电气工程系课程设计报告设计题目:直流伺服电机控制系统设计系别:电子信息与电气工程系年级专业:学号:学生姓名:2006级自动化专业《计算机控制技术》课程设计任务书论文题目直流伺服电机控制系统设计设计类型导师姓名丁健干开峰主要内容及目标设计对象是直流伺服电机实验台,设计一个计算机控制的直流伺服电机控制系统。由测量元件(位移传感器)对被控制对象(电机)的被控参数(位移)进行测量,由变换发送单元(A/D转换器)将被控参数变成一定形式的信号,送给控制器CPU,控制器将测量信号(实际位移量)与给定信号(位移量)进行比较,若有误差则按预定的控制规律产生一控制信号驱动执行机构(伺服电机控制电源)工作,使被控参数(实际位移量)与给定信号(位移量)保持一致。其电机位置随动系统:其中:=1.8,=0.035,=0.15,K=100,控制算法选用数字PID控制。设计条件PC机一台,教学实验箱一台;计划学生数及任务3人(1):明确课题功能。(2):把复杂问题分解为若干模块,确定各模块处理方法,画出流程图。(3):存储器资源分配(4):编制程序,根据流程图来编制源程序(5):对程序进行汇编,调试和修改,直到程序运行结果正确为止。计划设计进程总体方案设计控制系统的建模和数字控制器设计硬件的设计和实现选择计算机字长(选用51内核的单片机)设计支持计算机工作的外围电路(EPROM、RAM、I/O端口、键盘、显示接口电路等);设计输入信号接口电路;设计输出控制电路;其它相关电路的设计或方案(电源、通信等)。软件设计分配系统资源,编写系统初始化和主程序模块框图;编写A/D转换和位置检测子程序框图;编写控制程序和D/A转换控制子程序模块框图;其它程序模块(显示与键盘等处理程序)框图。五、编写课程设计说明书,绘制完整的系统电路图(A3幅面)。参考文献1.于海生计算机控制技术[M]北京:机械工业出版社,2007.62、周荷琴等微型计算机原理及接口技术[M]合肥:中国科技大学出版社,2008.63、李刚民等单片机原理及应用技术[M]北京:高等教育出版社4、楼然苗51系列单片机设计实例[M]北京:北京航空航天大学出版社5、计算机控制技术实验指导书摘要随着集成电路技术的飞速发展,微控制器在伺服控制系统普遍应用,这种数字伺服系统的性能可以大大超过模拟伺服系统。数字伺服系统可以实现高精度的位置控制、速度跟踪,可以随意地改变控制方式。单片机和DSP在伺服电机控制中得到了广泛地应用,用单片机作为控制器的数字伺服控制系统,有体积小、可靠性高、经济性好等明显优点。。本设计研究的直流伺服电机控制系统即以单片机作为核心部件,主要是单片机为控制核心通过软硬件结合的方式对直流伺服电机转速实现开环控制。对于伺服电机的闭环控制,采用PID控制,利用MATLAB软件对单位阶跃输入响应的PID校正动态模拟仿真,研究PID控制作用以及PID各参数值对控制系统的影响,通过试凑法得到最佳PID参数。同时能更深度地掌握在自动控制领域应用极为广泛的MATLAB软件。关键词:单片机直流伺服电机PIDMATLAB目录1.引言 42.单片机控制系统硬件组成 52.1微控制器 52.2DAC0808转换器 52.3运算放大器 62.4按键输入和显示模块 62.4.1按键输入 62.4.2显示模块 62.5直流伺服电动机 63.单片机控制系统软件设计 73.1主程序 73.2键盘处理子程序 84.控制系统原理图及仿真 94.1控制系统方框图 94.2控制系统电路原理图 104.3Proteus仿真结果 115.Simulink组件对直流伺服控制系统的仿真 115.1MATLAB与Simulink简介 115.1.1MATLAB简介 115.1.2Simulink简介 125.2直流伺服电机数学模型 125.3系统Simulink模型及时域特性仿真 125.3.1开环系统Simulink模型及仿真 135.3.2单位负反馈系统Simulink模型及仿真 135.4PID校正 145.4.1PID参数的凑试法确定 155.4.2比例控制器校正 155.4.3比例积分控制器校正 175.4.4PID控制器校正 196.小结 22参考文献 22附录 231.引言本设计的单片机控制直流伺服电机系统是一个开环的自动控制系统控制系统。是以单片机为控制器,通过按钮设置设定值输入到单片机,单片机对输入信号处理后输出控制信号,经D/A转换器DAC0808转换后把数字信号转变为模拟电压,再经放大器放大后,去控制伺服电机工作,进而控制电机向着预定的转速转动。同时单片机处理的数字信号通过LCD来显示,实时显示单片机的转速值。另外本设计还利用了MATLAB软件,利用Simulink构造直流电机控制系统模型,通过对各个单元部件的参数进行设定,进而对直流伺服电机系统控制进行仿真,就其仿真功能对系统进行时域分析。2.单片机控制系统硬件组成本系统是由一片单片机、矩阵式键盘,DAC0808转换器、运算放大器、显示模块和一台直流伺服电机组成,另外通过Proteus7.4软件进行仿真。2.1微控制器选用AT89C52单片机。AT89C52是51系列单片机的一个型号,它是ATMEL公司生产的。AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,但不可以在线编程(S系列的才支持在线编程)。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。主要功能特性:(1)兼容MCS51指令系统,8k可反复擦写(>1000次)FlashROM(2)32个双向I/O口,256x8bit内部RAM(3)3个16位可编程定时/计数器中断,时钟频率0-24MHz(4)2个串行中断,可编程UART串行通道(5)2个外部中断源,共6个中断源(6)2个读写中断口线,3级加密位(7)低功耗空闲和掉电模式,软件设置睡眠和唤醒功能图2-1AT89C522.2DAC0808转换器设计中采用的芯片是DAC0808,它是一个8位DAC。图2是DAC0808典型应用电路。图2-1中输出的模拟量是一个正电压,当需要负电压时,在DAC的第4引脚直接接一个3KΩ左右的电阻即可。DAC的第4引脚的电流总是流入的,其最大值为1.992mA。当外接一个3KΩ的负载电阻RL时,输出的电压是通过RL上所加的电压,最大的电压为-3KΩ×1.922mA≈-6V(当所有位输入都是高电平的时候),与实验中的数据相符合。需要指出的是,负载电阻的大小会影响转换时间,当负载电阻为2.5KΩ的时候,在最坏的情况下,会使转换时间增加1.2μs。图2-2DAC0808典型应用电路2.3运算放大器把D/A转换器的电流输出转换为电压输出,同时也是把微小的电流信号放大为较大的电压信号,以驱动电机转动。2.4按键输入和显示模块2.4.1按键输入采用自己设计的形如3×4矩阵式按钮,按钮用于设定某一数值,即电机转速值。通过程序设置延时环节来消除按钮的抖动问题,这样做使矩阵式按钮硬件连线简单,同时按钮的软件设计也不复杂。2.4.2显示模块系统采用点阵式液晶显示器,显示电机的当前转速值,通过软件设计使得连线简单。2.5直流伺服电动机直流伺服电动机在伺服系统中控制机械元件运转的发动机.是一种补助马达间接变速装置。又称执行电动机,在自动控制系统中,用作执行元件,把所收到的电信号转换成电动机轴上的角位移或角速度输出。其主要特点是,当信号电压为零时无自转现象,转速随着转矩的增加而匀速下降。其作用可使控制速度,位置精度非常准确。直流伺服电动机的结构与直流电动机基本相同。只是为减小转动惯量,电机做得细长一些。所不同的是电枢电阻大,机械特性软、线性(电阻大,可弱磁起动、可直接起动)。供电方式是他励供电,即励磁绕组和电枢分别两个独立的电源供电。控制方式有.电枢控制和磁极控制,其中改变电枢电压U调速范围较大,直流伺服电机常用此方法调速直流伺服电动机转速的计算公式如下:式中:n为转速;Φ为磁通;U为外加电压;I、R为电枢电流和电阻;Ke为电势系数。3.单片机控制系统软件设计软件设计采用模块化设计,由主程序模块和功能实现模块两大部分组成。主程序通过读取键值处理后送到D/A转换以达到控制电机的目的;功能实现模块主要由主函数模块、键盘处理子程序和D/A转换子程序等组成。3.1主程序主程序首先对键盘和显示模块的程序进行初始化,通过读取键值处理后送到D/A转换以达到控制电机的目的。主程序流程图如图2-1所示。显示模块初始化显示模块初始化键盘扫描程序开始读取键值电机转速显示模块键盘模块程序初始化输入值是否有效?D/A转换NY图2-1主程序流程图3.2键盘处理子程序键盘采用程序扫描的工作方式,即在特定的程序位置段上安排键盘扫描程序读取键盘状态。键盘处理子程序的程序扫描法流程图如图2-2所示。是否有键按下?是否有键按下?延时20ms调用按键扫描子程序开始是否有键按下?按键散转、处理程序返回NNYY图2-2键盘处理子程序的程序扫描法流程图4.控制系统原理图及仿真4.1控制系统方框图控制系统是以单片机为控制器,通过键盘设置输入转速值,经单片机处理后送到D/A转换器,模拟信号经功率放大后驱动电机,最终电机以设定的转速值稳定旋转。图4-1即为控制系统方框图按键输入按键输入AT89C52D/A转换驱动电机图4-1控制系统方框图4.2控制系统电路原理图图4-2控制系统电路原理图4.3Proteus仿真结果图4-3Proteus仿真图利用Proteus7.4a进行仿真,当通过键盘选择某一数值时,电机转速即为相应的设定值,并在仿真电路图中电机下方显示电机对应转速值的变化及最终稳定值。图4-3中仿真图是当通过按键设定值为158时,电机下方液晶显示器即显示158,表明电机转速为158r/min。经多次仿真分析,某些时候与键盘输入值相比较得知当电机响应输入值时有很小的稳态误差存在,原因是没有加入反馈环节。以下利用MATLAB仿真软件研究PID反馈控制对直流伺服电机控制系统的作用。5.Simulink组件对直流伺服控制系统的仿真5.1MATLAB与Simulink简介5.1.1MATLAB简介MATLAB软件推出并应用到自动控制领域后,极大地改善了自动控制系统的动态仿真和性能分析环境。MATLAB(MatrixLaboratory,矩阵实验室)是一个适用于科学计算和工程应用的数学软件系统。自1982年由Mathworks软件公司推出后,经二十多年的发展,现已是IEEE组织认可的最优化的科技应用软件,成为大学教学和科研中最常用的工具。掌握了MATLAB的应用,对直流伺服电机控制效果的改善,肯定有着意想不到的帮助。该软件具有以下特点:(1)数值运算功能强大;(2)编程环境简单;(3)数据可视化功能强;(4)丰富的程序工具箱;(5)可扩展性能强等。5.1.2Simulink简介Simulink是MATLAB软件的扩展,它是实现动态系统建模和仿真的一个软件包,他与MATLAB语言的主要区别在于,其与用户的交互接口是基于Windows模型化图形输入,使得用户可以把更多的精力投入到系统模型的构建,而非编程上。使用Simulink进行仿真一般分为两步:用户首先需要在仿真模型编辑窗口中搭建好自己的仿真模型,设置好具体模型参数和仿真参数,然后就可以开始仿真,Simulink将根据用户搭建的模型,模拟系统在用户设定条件下的具体行为。下面将以直流伺服电机的自动控制为例,演示MATLAB中Simulink仿真的应用。5.2直流伺服电机数学模型直流伺服电机开环系统结构图如图图5-1所示U(S)U(S)N(S)图5-1直流伺服电机开环系统结构图其中直流伺服电机的传递函数为5.3系统Simulink模型及时域特性仿真对于单输入单输出系统,在经典控制理论中可用传递函数来描述系统,获得系统的动态响应。同样,S仿真软件也有传递函数模块,可方便地描述系统的特性,且简化了仿真模型。从模块库窗口创建系统模型如图1所示,选信号源模块组中的阶跃信号模块为输入信号,以输出模块组中的示波器模块作为显示器来观察系统阶跃响应。在模型窗口设置传递函数模块的参数和特性,运行仿真模型,得系统阶跃响应曲线。5.3.1开环系统Simulink模型及仿真图5-2直流伺服电机开环系统Simulink模型端口Step为直流伺服电机的输入电压,输出端口为电机转速。图5-3是开环系统的仿真结果,即开环系统的阶跃响应曲线,也即直流伺服电机输入1V单位阶跃电压时。电机的转轴输出呈线性变化。图5-3开环系统仿真图由图5-3响应曲线可知,系统没有在可视范围内达到稳态值“1”,但从理论上分析知此系统属稳定系统,在足够时间内是能够达到稳定状态的。上述分析说明:系统的响应速度较慢,系统性能较差,从而可能不具备使用价值。这个分析结果表明,该系统没有达到预期的设计要求。5.3.2单位负反馈系统Simulink模型及仿真图5-4是在图5-3的基础上加一个单位负反馈环节,构成直流伺服电机的单位负反馈系统,单位负反馈系统Simulink模型如图5-4所示图5-4直流伺服电机单位负反馈系统Simulink模型图5-5是单位负反馈系统的仿真结果图5-5单位负反馈系统仿真图系统超调:40%,调节时间:2s。由图5-5和开环阶跃响应曲线相比较知:系统应经可以达到较快达到稳态值。说明闭环单位负反馈系统对系统性能有很大改善。5.4PID校正为了使系统能够达到设计要求,我们可以在图5-4前向通道上设置一个控制器构成闭环系统来校正直流伺服电机。基于PID控制(闭环)的直流伺服电机系统框图如图5-6所示。图5-6基于PID控制(闭环)的直流伺服电机系统框图其控制过程为由测速发电机输出电压得到直流电机输出量,即转速,通过转速反馈后与系统输入信号进行比较,得到偏差信号。偏差信号作为PID控制器的输入信号根据设定的PID控制规律计算后输出信号U,作为控制量输入给直流电机,从而实现整个直流电机调速系统的闭环负反馈PID控制。5.4.1PID参数的凑试法确定增大比例系数KP一般系统响应利于减小静差,但是过大会增大超调,并产生震荡,是稳定性变坏。增大TI有减小超调,减小震荡,是系统更稳定,但静差消除变慢。增大微分TD利于加快系统响应时间,使超调减小,稳定性增加,但对扰动的抑制能力减弱,对扰动有较敏感的响应。在凑试时,对参数实行下述先比例,后积分,再微分的整定步骤。(1)首先只整定比例部分。即将比例部分由小变大,并观察相应的系统响应,直到得到反应快,超调小的响应曲线。如果系统没有静差或静差已小到允许范围内,并且响应曲线已属满意,那么只需用比例控制器即可,最优比例系数可由此确定。(2)如果在比例调节的基础下系统的静差不能满足设计要求,则须加入积分环节。整定时首先置积分时间T1为一较大值,并将经第一步整定得到的比例系数略微缩小,然后减小积分时间,并在保持系统良好动态性能的情况下,静差得到消除。在此过程中,可根据响应曲线的好坏反复改变比例系数与积分时间,以期得到满意的控制过程与整定参数。(3)若使用比例积分控制器消除了静差,但动态过程经反复调整仍不能满意,则可加入微分环节,构成比例积分微分控制器。在整定时,可先置微分时间Td为零。在第二步整定的基础上,增大Td,同时相应的改变比例系数和积分时间,逐步凑试,以获得满意的调节效果和控制参数。5.4.2比例控制器校正为能要求系统在特别短的时间内达到设定的转速值,比例增益K应尽可能大,以提高比例作用的强度,但必须同时考虑系统的稳定性。采用单纯的比例控制,其调整时间和超调量是一对矛盾,无法同时满足:要缩短调整时间,K要加大;而K加大,超调量也同时加大了。经过多次参数选择,当K。=10时,阶跃响应曲线较为理想,呈现接近0.75衰减率的振荡过程。比例控制系统Simulink模型及仿真图5-7比例控制系统Simulink模型Kp=1时仿真图Kp=3时仿真图Kp=5时仿真图由以上三个比例控制的仿真图可知,增大比例系数KP一般系统响应利于减小静差,但是过大会增大超调,并产生震荡,是稳定性变坏。5.4.3比例积分控制器校正积分控制的作用是只要系统存在误差,积分控制作用就不断地积累,输出控制量以消除误差,因而,只要有足够的时间,积分控制将能完全消除误差。在比例环节基础上加入积分环节,只要参数设置合适就能完全消除系统偏差。比例积分控制系统Simulink模型图5-8比例积分控制系统Simulink模型Kp=1、Ki=1时仿真图Kp=1、Ki=3时仿真图Kp=5、Ki=3时仿真图由以上三个比例积分控制的仿真图可知,增大TI有减小超调,减小震荡,使系统更稳定,但静差消除变慢。PI控制参数设置适当可使系统静差为零。经多次试凑,选KI=PID控制器校正比例积分作用虽能是系统误差为零,但系统动态性能不能得到满足。积分作用太强可能会使系统出现震荡。微分控制具有超前控制能力,可抑制最大动态偏差,改善系统动态性能,提高系统的稳定性。为此,在PI作用基础上引入微分控制,构成PID控制器,以使系统满足稳、准、快的要求。PID控制控制系统Simulink模型如图图5-9PID控制系统Simulink模型Kp=1、Ki=1、Kd=0.1时仿真图和PI控制闭环响应曲线相比较可知:系统响应时间变短,超调变小,但仍不符合要求;Kp=5、Ki=1、Kd=0.1时仿真图与KP=1、KI=1、KD=0.1时的仿真图相比,系统超调和调节时间都变小,仍然不符合要求,继续校正。需加大Kp及Ki。Kp=12、Ki=1、Kd=0.5时仿真图由上曲线知此时系统有微量的超调,进一步加大Ki时超调为零。Kp=12、Ki=1、Kd=0.9时仿真图经过多次校正参数,此时当Kp=12、Ki=1、Kd=0.9时系统超调量为0,稳态误差为0,性能满足设计要求,稳定、准确、快速得到了完满的统一。6.小结控制系统特点是以单片机为控制器,通过键盘设置输入转速值,使得电机的转速设置方便快捷,另外又通过软件实现系统转速设置范围的保护。但在proteus中没能实现闭环系统的PID控制。此缺点通过软件弥补,在MATLAB软件中的SIMULINK中进行了直流伺服电机的开环控制系统仿真,单位闭环控制系统仿真,闭环PI控制系统仿真,闭环PD控制仿真,闭环PID控制仿真能够更好的测试和控制系统的性能,从而为设计事物提供了更准确的性能指标。参考文献[1]于海生.计算机控制技术[M].北京:机械工业出版社,2007.6[2]周荷琴等.微型计算机原理及接口技术[M].合肥:中国科技大学出版社,2008.6[3]张毅刚等.单片机原理与应用设计[M].北京:电子工业出版社[4]楼然苗.51系列单片机设计实例[M].北京:北京航空航天大学出版,2008.6[5]陈小忠等.单片机接口技术实用子程序.北京:人民邮电出版社,2005.9[6]计算机控制技术实验指导书附录单片机控制程序清单:#include"reg52.h"//#include"absacc.h"//#include"stdio.h"//#include"math.h"//#include"string.h"#defineuncharunsignedchar#defineunintunsignedintvoidwdata(unchardat);//writedatafunctionvoidwcom(uncharcom);//writecommandfunctionvoiddelay(unchart);//delayfunctionsbitrw=P3^1;//rwsbitrs=P3^0;//rssbiten=P3^2;//en#defineMAX_LEN16//数据最大长度#definecount_M150000#defineH_0(65536-count_M1)/256#defineL_0(65536-count_M1)%256uncharcodetab2[]={0x31,0x32,0x33,0x41,0x34,0x35,0x36,0x42,0x37,0x38,0x39,0x43,0x0e,0x30,0x0f,0x44};//键盘求值表uncharcodetab3[]={"TargetValue:"};uncharcodetab4[]={""};uncharcodetab6[]={"inputERR"};uncharserial_data[MAX_LEN],serial_len=0,sure_flag=0;voidwdata(unchardat);//writedatafunctionvoidwcom(uncharcom);//writecommandfunctionvoiddelay(unchart);//delayfunctionvoidkeyscan(void);//键盘操作程序uncharscankey(void);//键盘求值程序voidchushi(void);//初始化程序//voidinit_serial(void);//串口初始化//voiduart_serial(void);//串口主程序voidlcd_write(void);//液晶显示待发送指令uncharjisuan(void);//计算结果为十进制unintfreq=0;//频率变量sfr16DPTR=0x82;//申明DPTRchartimes=0;//计算T0中断次数//delayfunction//P0=0x00;//中断初始化voidinit_interrup(void) { IE=0x8a;//启用T0,T1中断 TMOD=0x51;//T1为计数器,T2为定时器,都采用mode1 TH0=H_0; TL0=L_0; TH1=0; TL1=0; TR0=1; TR1=1; }voiddelay(unchart){unchara,b;for(a=0;a<t;a++)for(b=0;b<128;b++);}//ThefunctionforwritedatatoLCDscreenvoidwdata(unchardat){P1=dat;rs=1;rw=0;en=0;delay(6);en=1;}//ThefunctionforwritecommandtoLCDscreenvoidwcom(uncharcom){P1=com;rs=0;rw=0;en=0;delay(6);en=1;}//初始程序voidchushi(void){ unchari;wcom(0x01);wcom(0x38);wcom(0x0c);wcom(0x06); delay(4); wcom(0x80); delay(4);for(i=0;i<17;i++){wdata(tab3[i]);}wcom(0xc0);delay(2);}//键盘求值程序uncharscankey(void){unchartemp,c,d; P2=0x0f; temp=P2;temp=temp&0x0f;//屏蔽高四位,取列值temp=~(temp|0xf0);//将temp中的内容与0xf0进行相加,最后求反可得到是那列按下if(temp==1)c=0;//P2.0位低电平elseif(temp==2)c=1;//P2.1位低电平elseif(temp==4)c=2;//P2.2位低电平elseif(temp==8)c=3;//P2.3位低电平elsec=0;//否则给返回值C=0P2=0xf0;//给P2的行为高电平,以来判断是高四为的那位为低电平delay(1);temp=P2;temp=temp&0xf0;//屏蔽低四位temp=~((temp>>4)|0xf0);//将temp中的高四位向右移动4位,与0xf0相加,最后求反可以得到是那行按下if(temp==1)c=c+0;//将行P2.4的值加上列的值elseif(temp==2)c=c+4;//将行P2.5的值加上列的值elseif(temp==4)c=c+8;//将行P2.6的值加上列的值elseif(temp==8)c=c+12;//将行P2.7的值加上列的值elsec=0; d=tab2[c];return(d);//最后返回行加列的值}//lcd_writefunctionvoidlcd_write(void){ uncharwrite_0,write_1,jian_zhi[MAX_LEN]; for(write_0=0;write_0<MAX_LEN;write_0++) { serial_data[write_0]=0; }//清空发送缓冲数组 wcom(0x0f);//将光标置在oxc0处 serial_len=0; delay(2); while(1) { write_1=0xc0;//光标地址 wcom(write_1); for(write_0=0;write_0<MAX_LEN;)//输入指令最大为MAX_LEN { wcom(write_1);P2=0x0f;//等待键盘值 while((P2&0x0f)==0x0f); jian_zhi[write_0]=scankey(); delay(1); P2=0x0f; while((P2&0x0f)!=0x0f);//等待按键放松 if(jian_zhi[write_0]==0x0e)//当按一下取消键时清空所有发送缓冲数组, {//当连续按下两次时则取消本次通讯,退出 if(write_0==0) gotowrite_out; elseif(write_0>=1) { write_1-=1; wcom(write_1); write_0-=1; wdata(tab4[0]); serial_data[write_0]=0; serial_len--; } } elseif(jian_zhi[write_0]==0x0f)//确定发送的指令 { if(serial_len==3) {if(serial_data[0]<2) sure_flag++; elseif(serial_data[0]>2); else { if(serial_data[1]<5) sure_flag++; elseif(serial_data[1]>5); else { if(serial_data[2]<6) sure_flag++; else; } } } else sure_flag++;//确定的标志位 gotowrite_out;//退出本次输入指令 } else { wdata(jian_zhi[write_0]); if(jian_zhi[write_0]<=0x39) serial_data[write_0]=jian_zhi[write_0]-0x30; else serial_data[write_0]=jian_zhi[write_0]-0x37; write_1++; write_0++; serial_len++; } } }write_out: delay(1);}//合并数组voidserial_and(void){ uncharand0,and1,and2=0; and1=serial_len/2; for(and0=0;and0<and1;and0++) { serial_data[and0]=(serial_data[and0+and2++]<<4)|serial_data[and0+and2]; } } //键盘操作voidkeyscan(void){uncharks_0,ks_1;delay(2);//延时去抖动 P2=0x0f;if((P2&0x0f)!=0x0f)//延时后在判断一次,去除抖动影响 { ks_0=scankey();//求键盘值 P2=0x0f; while((P2&0x0f)!=0x0f);//等待放松while(ks_0==0x41) { switch(ks_0) { case0x41: { chushi(); lcd_write();//调用写指令
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 劳务合同和技术承包
- 个人劳务分包合同简本
- 绿化护坡施工方案
- 产品测评表-产品用户反馈收集
- 生物化学分析实验技术练习题集
- 商场餐饮经营商铺租赁合同
- 农民宅基地转让合同
- 临汾低温冷库施工方案
- 杭州室内球场施工方案
- 铝合金飞廊及盖板施工方案
- 中建测评二测题库
- 店长管理员工培训
- DB11∕T 3010-2018 冷链物流冷库技术规范
- 爱普生L4168说明书
- 现代家政导论-课件 2.2家庭制度认知
- 题型专训:平方差公式和完全平方公式
- 内容审核机制
- 公司解散清算的法律意见书、债权处理法律意见书
- 《网络营销》试题及答案2
- 译林版-小学五年级下册-绘本阅读-Home-Is-Best-课件
- 甲状腺术后病人护理查房
评论
0/150
提交评论