毕业基于89C51单片机的步进电机控制系统设计.doc_第1页
毕业基于89C51单片机的步进电机控制系统设计.doc_第2页
毕业基于89C51单片机的步进电机控制系统设计.doc_第3页
毕业基于89C51单片机的步进电机控制系统设计.doc_第4页
毕业基于89C51单片机的步进电机控制系统设计.doc_第5页
免费预览已结束,剩余28页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

广西大学行健文理学院毕业论文 题目:基于89C51单片机的步进电机控制系统设计 学 部: 理工学部 专 业: 自动化 班 级: 2007级1班 学 号: 0738230126 学生姓名: 指导教师: 二一一 年 六 月摘 要步进电机广泛应用于工业控制、家用电器和仪器仪表当中,它是一种性能良好的数字化执行元件,它利用输入脉冲与电机轴转角成比例的特征,将脉冲转变成角位移,因此非常适合单片机控制。基于单片机设计的控制系统可以实现较复杂的控制,角度,速度,方向都能任意设置。本论文设计一个基于89C51单片机的步进电机控制系统。该系统以89C51单片机为核心,设计运用虚拟仿真技术,电力电子技术,单片机原理,数字电路,模拟电路,脉宽调制等进行模块化设计,以步进电机,89C51单片机,ULN2003达林顿管,LCD1602液晶显示器为主要硬件,以Keil uVision3集成开发环境为软件开发平台,实现了步进电机的精确控制和数据检测。本文主要介绍了步进电机控制系统的设计方案与器件选型,硬件设计、软件设计和Proteus仿真与实物验证。该系统以四相步进电机为被控对象,包含步进电机驱动模块和步进电机主轴上的实物对象,通过单片机P1口控制输入步进电机驱动脉冲的频率、个数和序列,可以得到精确的速度、步距角和运行方向,并直观的显示在LCD1602液晶显示器。该系统通过Proteus仿真和制作实物验证,基本符合了设计要求,并完成了理论到实践的联结。 关键词: 步进电机 单片机 脉宽调制 仿真 The stepper motor control system design based on the 89C51 monolithic AbstractStepper motors are widely used in industrial control, home appliances and instruments which, it is a good performance of digital implementation of components, it has input pulse is proportional with the motor shaft angle characteristics, it pulses into angular displacement, so it is suitable for SCM. Microcontroller based control system designed to achieve a more complex control, angle, speed, direction can be set arbitrarily.The design of a thesis based on 89C51 microcontroller as the core of the stepper motor control system. he 89C51 microcontroller as the core system design using virtual simulation technology, power electronics technology, SCM principles, digital circuits, analog circuits, pulse-width modulation, modular design to the stepper motor, 89C51 microcontroller, ULN2003 Darlington, LCD1602 LCD monitor as the main hardware to Keil uVision3 integrated development environment for software development platform, precision stepper motor control and data detection. this paper describes stepper motor control system design and component selection, hardware design, software Proteus simulation and physical design and verification.The four-phase stepper motor system as the controlled object, including the stepper motor drive modules and stepper motor spindle physical object, through the control input port P1 microcontroller stepper motor drive pulse frequency, number and sequence, can be accurate speed, step angle and the direction; and visual display in the LCD1602 LCD monitor. The system is produced by Proteus simulation and physical verification, in line with the design requirements, and completed link theory to practice. Keywords: Stepper motor Microcontroller pulse-width modulation Simulation 不要删除行尾的分节符,此行不会被打印- I -目录第一章 绪论21.1 课题研究的背景及意义21.2 本课题研究国内外动态及意义21.3 研究内容与安排3第二章 系统设计方案与器件选型42.1 引言42.2 系统总体设计42.3 步进电机52.4 89C51单片机62.5 LCD1602液晶显示器62.6 本章小结7第三章 硬件设计83.1 引言83.2 驱动电路83.3 单片机系统93.4 LCD1602电路93.5 键盘接口103.6 本章小结10第四章 软件设计114.1 引言114.2 程序流程图114.3 控制功能实现124.4 显示功能实现144.5 本章小结15第五章 Proteus仿真与实物验证165.1 引言165.2 设计图165.3 本章小结18结论19参考文献20附录21致谢29不要删除行尾的分节符,此行不会被打印- 29 -第一章 绪论1.1 课题研究的背景及意义本课题研究设计基于89C51单片机控制的4相步进电机系统1-5,由单片机产生驱动脉冲信号,通过键盘设定步进电机的运行方向和步进速度,在液晶显示器上显示步进角,步进方向,和步进速度,并通过仿真6软件Proteus对系统进行仿真和测试。整个系统采用模块化设计,结构简单可靠。本人选择该课题作为毕业设计,不仅可以提高自己的软件编程和硬件电路设计能力,还可以提高自己动手解决实际问题的能力。1.2 本课题研究国内外动态及意义步进电机早在19世纪三十年代出现了步进电机7,那时候的步进电机只是一种自由旋转的电磁铁,工作原理如同今天的反应式步进电机8,我国早在1958年就研制成功了反应式步进电机,并且开始将其应用于数控机床,上世纪60年代中期,人们发明了永磁式和混合式步进电机,不断提高效率和降低功耗。国外方面,1952年美国麻省工学院首先研制成三坐标铣床,传统的电动机也已经不能满足要求,为了适应这些要求,研制了一系列新的具备控制功能的电动机系统,其中便有步进电机。步进电机的发展与计算机工业密切相关,自从步进电机在计算机外围设备中取代了小型直流电动机以后,使其设备的性能提高,很快地促进步进电机的发展,另一方面,微型计算机和数字控制技术的发展,又将作为数控执行部件的步进电机推广应用于其他领域,如电加工机床,医疗仪器,测量仪器等。基于89C51单片机的步进电机控制系统单片机(Single Chip Microcontroller,SCM),又称为微控制器。它是指在一块半导体芯片上集成了构成计算机的基本要素,步进电机的转速随着输入脉冲频率的变化而变化,调速范围广,灵敏度高,输出转角能控制,而且控制精度高,又能实现同步控制9,所以广泛应用于开环系统10中。步进电机是机电一体化产品中关键组件之一,是一种性能良好的数字化执行元件,步进电机的输入脉冲与电机轴转角成比例的特征,将脉冲转变成角位移,因此非常适合于单片机控制。本课题采用STC89C51单片机11作为控制系统,集成有CPU,4KB的ROM,128字节RAM,4X8位并行I/O口,5个中断源,2个中断优先级,2X16可编程定时计数器,其特点如下:1) 灵活性和适应性。89C51单片机的控制方式由软件完成,如需修改控制规律,只需修改程序即可,在系统调试和升级时,可以不断尝试选择最优参数,直到满意。2) 可以实现较复杂的控制,而且精度很高。3) 可提供人机操作界面。要用到键盘和显示单元,实现完整的步进电机控制。4) 此外,在进行系统设计时常用的EDA软件如Multisim、Protel、OrCAD等12-14对涉及单片机的电路系统无法进行仿真,利用Proteus的虚拟仿真技术15应用于单片机系统的设计中,具有明显的经济性和很好的可移植性。采用此设计的步进电机控制方法线路简单可靠,比较节约成本。与一般驱动器相比,除了不能细分之外,其它功能都可以实现,性价比很高。在医疗器械、机器人等没有细分要求的场合,不失为一种理想的选择。1.3 研究内容与安排熟悉和掌握步进电机的工作原理及控制技术,然后通过仿真软件设计步进电机的ULN2003A驱动电路模块,并给出详细的设计思路。熟悉和掌握C51单片机的接口技术,然后通过仿真软件设计基于89C51单片机的键盘输入、LCD输出、步进电机控制、单片机外部晶振等接口电路。掌握和运用C语言编程设计,然后按设计要求(启/停,正/反转,速度等)编制程序,完成键盘处理与LCD显示。熟悉运用Proteus和KeilC51软件进行仿真调试。观察运行模式下仿真结果与设计要求是否相吻合。步进电机正反转,加速,减速,停止,与LCD的显示是否一致,在满足设计要求下进行系统优化,如按键防抖动调整。熟悉运用protel设计制作PCB印刷电路。制作实物进行实验验证。第二章 系统设计方案与器件选型2.1 引言本系统设计方案采用模块化的方式进行,本章节详细讲述该系统主要的四大部件步进电机、89C51单片机、ULN2003达林顿管驱动、LCD1602液晶显示器的型号和适用范围。先简明地画出系统总体设计框图,然后列出各器件的使用说明,最后综合各器件分析其合理性和可行性。2.2 系统总体设计如图2.1所示,该设计完成基于89C51单片机的步距电机控制系统,该系统由硬件设计和软件设计完成。硬件是整个系统的生命,软件赋予了其灵魂,整个系统设计流程分三步:第一步,硬件设计,运用Protel软件完成各个外围电路与单片机的接口设计,包括各器件的型号,管脚分配,元器件的封装形式。第二步,软件设计,运用Keil集成开发软件平台完成系统的控制功能和显示功能。第三步,仿真和实物验证,Proteus软件完成模拟仿真电路,Protel软件完成设计PCB印刷电路并制作实物。最后进行实验验证。图2-1 系统总体设计框图2.3 步进电机步进电机是将电脉冲信号转变成角位移或直线位移的执行元件,步进电机突出的特点通过控制输入脉冲的频率达到精确的调速。步进电机的角位移量和输入的脉冲个数严格成正比,在时间上与输入脉冲的时间同步,因此只要控制输入脉冲的个数,电机绕组的通电相序,就可以获得所需的步进角和转向。在没有脉冲输入时,在绕组电源的激励下气隙磁场能使转子保持原有的的位置处于定位状态,因此非常适合于单片机的控制。如图2-2所示,本设计采用的28BJY-48型减速步进电机,工作电压5V,步进角度:5.625X1/64,减速比1:64,是单极性直流供电的五线四相步进电机。只要对步进电机四相绕组按一定是时序通电,步进电机就能转动,四相步进电机按照通电的时序不同,可分为单四拍,双四拍即(AB-BC-CD-DA-AB),八拍(A-AB-B-BC-C-CD-D-DA-A)三种工作方式,单四拍与双四拍步距角相同,单四拍的转动力矩比八拍的小,因为八拍的工作方式的步距角是单四拍和双四拍的一半,八拍既可以保持较高的转动力矩有能够提高控制精度,所以本设计采用八拍作为步进电机的工作方式。图2-2 步进电机通电绕组示意图89C51单片机输出的脉冲驱动能力有限,不能直接驱动步进电机,需要经过一级功率放大,即功率驱动电路。单极性和双极性是步进电机常采用的两种驱动架构,本设计采用的是单极性功率驱动电路,双列直插式16脚封装,将89C51单片机发出了脉冲信号通过ULN2003达林顿管放大驱动步进电机。2.4 89C51单片机89C51单片机一般采用40个引脚封装的双列直插(DIP)方式,采用CHMOS工艺制造的低功耗机型,在型号中间加一个“C”字母作为识别。本设计采用STC的89C51,其应用于本设计的功能如下:并行I/O口89C51的4个8位并行I/O口,分别为P0、P1、P2、P3。除了P1口为单一功能,其余的3个端口还分别具有各自不同的第二功能,本设计采用P1口低四位作为脉冲序列输出端,P0口作为LCD的数据信号端,P2口前4位做LCD的控制使能端,P3口作为按键输入信号端。通过软件实现各项功能。复位复位是单片机的初始化操作,只要给复位引脚RST(9引脚)加上两个周期以上的高电平信号,就可以使89C51单片机复位,当程序运行出错或操作错误使系统处于死锁状态时,需要采用按键的方式进行复位。复位引脚RST通过一个施密特触发器与复位电路相连,施密特触发器用来抑制噪声,在每个周期的S5P5,施密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需的信号。89C51复位是由外部复位电路来实现的,复位通常采用自动上电复位,按键复位两种方式来实现的。本设计采用按键手动复位,详细参见3.2.2内容。串口通信89C51单片机内部有一个全双工的通用异步接受发送器(UART)用于串口通信,P3.1TXD发送端,P3.2RXD接收端,使用这个通信口实现串行异步通信,进行下载软件等操作。由于现在大多数个人计算机设计的都是usb2.0接口,摒弃了传统的串行接口,所以单片机与计算机通信就需要USB转串口,本设计采用PL-2303HX芯片电路进行TTL电平转换,采用USB2.0转RS232接口与计算机通信。键盘键盘实际上就是一个开关,连接到电源地,键盘闭合逻辑状态为“0”,键盘断开为“1”,本设计采用独立式按键键盘,4X2mil封装,软件扫描按键与单片机接口电平的状态,软件延时消除按键抖动的方法实现键盘输入功能。2.5 LCD1602液晶显示器LCD1602的可以显示16X2个字符,工作电压为4.55V,工作电流2mA,本设计采用单列直插式16脚封装LCD1602,用以显示步进电机的运行状态,圈数,方向和速度。该液晶显示器还可以自由调节亮度。2.6 本章小结通过分析步进电机、单片机和液晶显示器的原理和特性,我们可以得出结论,该系统设计是合理和可行的。为后面的硬件设计和软件搭建理论框架,提供参考和基础。步进电机控制系统的组成器件还包括键盘和一些小的元器件,比如电阻,电容,电源开关等;它们和4大部件共同组成了一个基于89C51单片机的步进电机控制系统。第三章 硬件设计3.1 引言本章内容是运用Protel软件设计硬件电路原理图,原理图大致分为四个部分,分别为驱动电路,单片机系统,LCD1602电路,键盘输入电路。3.2 驱动电路如图3-1所示,ULN2003是高耐压大电流达林顿晶体管阵列元器件,每一对达林顿管串联一个2.7K的基极电阻,在5V工作电压下和TTL或CMOS电路相连,经过ULN2003放大驱动步进电机转动。图3-1 ULN2003达林顿管芯片电路图图3-2 ULN2003达林顿管驱动电路图3.3 单片机系统如图3-3所示,由89C51单片机及其外接12M晶振至XTAL1(19)、XTAL2(18)引脚组成外部时钟电路和手动按键复位电路RST(9)引脚组成的51单片机最小系统。图3-3 单片机最小系统示意图3.4 LCD1602电路如图3-4所示,单片机的P0口作为LCD1602液晶显示单元的数据接口, P2.0、P2.1、P2.2作为控制使能端。详细管脚分配参见表3-1表3-1 LCD1602管脚分配表编号定义管脚分配1Vss电源地/2Vdd正极/3VL电源偏压/4RSP2.05RWP2.16EP2.2714数据接口P0.0P0.715背光正/16背光负/图3-4 LCD1602电路图3.5 键盘接口键盘P3.2、P3.3、P3.4、P3.5作为键盘输入信号端。公共端接电源地,按键为常开触点,按键闭合时接口逻辑电平置“0”。图3-5 键盘输入电路图3.6 本章小结原理图设计的时候会碰到有些元器件找不到的问题,可以直接创建一个封装库,自己新建一个元件。最好把所需要用到的元件放在一起,这样方便下次调用元件。第四章 软件设计4.1 引言软件设计主要工作是控制功能和显示功能的实现。本章节内容是运用Keil uVision3集成开发环境进行程序设计,并采用C语言编写软件程序。程序流程图清晰的描述了该系统运行时的全过程,为了叙述不至于冗长累赘,本章节从中筛选一些关键的程序片段进行说明4.2 程序流程图图4-1 程序流程图4.3 控制功能实现本系统要实现的主要功能是控制步进电机的启停,正反转,加减速和步距角,通过控制脉冲输出顺序和脉冲个数实现上述功能,单片机系统经过初始化后,进入按键扫描程序,等待用户操作,当按下相应的设置按键,在按下启停键后,启动定时器T0中断,进入中断服务程序,系统便按照设定的参数和模式向P1口传送脉冲信号序列。启停控制通过控制启停标志位置“1”或置“0”,中断响应输出或关闭中断。 if(K1=0) beep(); while(K1=0); /等待键释放 on_off=on_off; /启停标志位,每次按键按下取反切换 motor_RUN(); /运行并显示 /K1 end步进角控制该步进电机为减速电机,减速比为1:64,电机转子转一圈需要输入64个脉冲,转过的角位移量用表示,则 (4-1)步进电机转一圈转过的角度为5.625控制圈数即可控制其步进角。 if(K2=0) beep(); if(snum_dr=1) snum+; /圈数标志位,每次按键按下圈数自加1 snum1=snum; if(snum=0x14) snum_dr=snum_dr; /大于设定圈数,取反 else snum-; /圈数自减1 snum1=snum; if(snum=0x01) snum_dr=snum_dr; /K2 end正、反转控制步进电机正转时,单片机P1口输出的驱动脉冲序列为从上到下;将单片机反向输出该组序列即可实现步进电机的反转。表4-1 步进电机四相八拍正转表转向A(p1.0)B(p1.1)C(p1.2)D(p1.3)16进制正转11100x0E10100x0A10110x0B10010x0911010x0D01010x0501110x0701100x06加、减速控制步进电机主轴旋转一圈则需要6464步,即4096步,通过细分步数就可以达到调速的目的。下面也是通过按键扫描后整定参数,中断时执行。 if(K4=0) beep(); if(rate_dr=1) rate+; /速度自加1 if(rate=0x10) rate_dr=rate_dr; /速度标志位取反,速度减小 else rate-; /速度自减1 if(rate=0x01) rate_dr=rate_dr; /速度标志位取反,速度增大 /K4 end中断服务程序void motor_onoff() interrupt 1 TL0 = 0x33; TH0 = 0xf5; q+; if(q rate) return; else q=0; number+; /脉冲计数 if(number=64) /64个脉冲电机转一圈 snum-; number=0; number1+; /电机转动圈数 if(direction=1) /方向标志 if(v8) P1 = FFWv;v+; /取数据,正转 if(v=8) v=0; else if(v8) P1 = REVv;v+; /取数据,反转 if(v=8) v=0; 4.4 显示功能实现显示功能是本系统的重要组成部分。首先,程序开始运行时对LCD进行初始化设置,然后,载入定时器初值,其次,判断LCD是否可以写入,不忙则进入下一步,依次显示运行状态、运行方向标志,速度、圈数。最后键盘扫描,判断各项标志,等待进入中断服务程序,返回进入下一个循环周期。通过程序的片段说明如何实现该功能,附录有详细的代码。显示运行状态void motor_RUN() if(on_off=1) TR0=1; lcd_pos(0); /设置显示位置为第一行的第1个字符 m = 0; while(cdis5m != 0) lcd_wdat(cdis5m); /运行状态:RUNNING m+; motor_DR(); /显示运行方向标志 else TR0=0; P0 =0x0f; lcd_pos(0); /设置显示位置为第一行的第1个字符 m = 0; while(cdis3m != 0) lcd_wdat(cdis3m); /STOP m+; motor_DR(); snum=snum1; number1=0; /清圈数计数器 4.5 本章小结程序设计采用C语言。因为C语言是一种结构化语言,可产生紧凑代码。C语言相对汇编语言比较简单明了,仅要求对8051的存储结构了解,可读性比较强,编程和调试时间显著缩短,且容易移植。所以C语言运用相对较好。程序设计的时候注意问题就是标注要整齐规范,开头要声明好函数和变量。养成良好的编程习惯可以事半功倍。第五章 Proteus仿真与实物验证5.1 引言硬件和软件设计都完成后,系统的仿真电路采用Proteus设计,PCB印刷电路板采用Protel设计,实物电路板的制作采用热转印法完成。然后焊接外围电路完成实物制作,控制系统完成后,我们加入一个控制对象(DIY),实物演示步进电机的正反转、加减速和精确控制步距角等,同时LCD1602显示器显示所有的运行状态。5.2 设计图图5.1 Proteus仿真运行状态图ABCD图5.2 Proteus仿真运行正转波形图ABCD 图5.3 Proteus仿真运行反转波形图图5-4 PCB印刷电路图5.3 本章小结根据设计的要求简单、稳定、可靠的原则,实物采用热转印法制作印刷电路板,目的是为了让产品设计得美观而又实用,该设计还加入一个控制对象(DIY),它装置在步进电机的主轴上,这样设计比较容易实现,经过实验验证,基本上可以达到设计要求。结论本毕业设计从3月11日开始历时三个月左右的时间,我在这段时间里通过查阅相关文献,写开题报告,翻译英文文献等一系列毕业设计的前期工作,我学到了如何自己开始设计一样属于自己的东西。然后我在进行系统的方案设计和硬件的选型,对我设计的题目基于C51单片机的步进电机控制系统有一个从局部到整体的全局观,我就先从硬件电路设计入手,我采用了倒序的方法完成我的设计,首先,我准备了毕业设计的所需要到的器件,经过制电路板,焊接,调试把实物制作出来,其次,进入软件设计阶段,软件设计其实很简单,就是让机器按照你的意思去工作,当单片机成功运行起来的时候,令我有一种成功的喜悦感。这种成功的感觉会让我不断的去学习和改进。下面是我回顾本设计中遇到的一些实际问题和如何解决这些问题。简要概述如下:首先,电路原理图运用PORTEL软件设计,元件库没有的元件必须要自己建立,在设计PCB印刷电路图时最好自己建立一个封装库,还有学会使用快捷键操作也是必要的,这样在设计原理图时会更有效率。然后,程序设计要规范书写,必要的时候多添加一些标注,方便记忆。按键扫描采用的是顺序结构而不是选择结构,这点要清楚。其次,软件下载要注意选择的是什么系列的单片机芯片,只有STC的才需要用到USB转RS232数据线。最后,制作实物时焊接有很多注意事项,最主要的是判断器件的各个引脚是不是和原理图是一样的,不一样就要按照实物的管脚接,焊接时还要注意焊接温度,不要在同一焊点停留太久,以免烧毁元件。还有许多需要注意的地方不能详尽说明,需要在实践操作中去体会和摸索,对该设计我相信还有许多能够改进的地方,我愿意虚心接受批评和建议,争取做的更好。参考文献1 卢超.基于Proteus的步进电机控制系统仿真设计J.实验室研究与探索.2010.6(6):54-57.2 卢超.分布式矿井温度检测系统的设计J.煤炭科学技术.2007(12).51-54.3 卢超.单片机与PC机的通信设计J.工矿自动化.2007.(5):116-118.4 卢超.负反馈放大电路的仿真设计J.现代电子技术.2006(16):115-117.5 卢超. 基于单片机的睡眠定时实验装置J . 医疗设备信息,2007 ,22 (8) :16 - 1816 卢超.PVDF型脉搏传感器信号处理电路的设计J.齐齐哈尔大学学报自然科学版.2009(6):6-10.7 庄渊昭.步进电机控制系统设计J.电子世界.2010(9):43-46.8 郭改枝,张鹏举.单片机控制液晶屏接口电路的设计与实现J.内蒙古师范大学学报.2010.39 4 425-427.9 潘万平,徐刚,张劲松.基于Proteus的步进电机闭环控制的仿真J.煤矿机械.2010(2):46-48.10 何勇.Proteus在单片机接口设计中的应用J.电脑与电信.2009(7)::21-2311 王海波,吴晓光.基于AT89C52单片机步进电机控制系统设计J.机电产品开发与创新.2009(6):161-162.12 王伟正,臧玉萍.基于L297与L298N的步进电机控制系统设计J.硅谷2008(9)13 李建波.LCD1602汉字显示技术在万年历中的应用及Proteus仿真J.清远职业技术学院学报.2010.3(3):36-3814 严成武.一种性价比很高的步进电机控制方法J.中国科技博览.2010(24):160-16115 杨宏,李国辉.基于Proteus与单片机的步进电机控制设计J.现代电子技术.2010.5(316): 104-105附录源代码 步进电机控制LCD1602显示#include #include #define uchar unsigned char#define uint unsigned int#define delayNOP(); _nop_();_nop_();_nop_();_nop_();unsigned char code FFW8=0xfe,0xfc,0xfd,0xf9,0xfb,0xf3,0xf7,0xf6; /反转unsigned char code REV8=0xf6,0xf7,0xf3,0xfb,0xf9,0xfd,0xfc,0xfe; /正转sbit K1 = P32; /运行与停止sbit K2 = P33; /设定圈数sbit K3 = P34; /方向转换sbit K4 = P35; /速率调整sbit LCD_RS = P20; sbit LCD_RW = P21;sbit LCD_EN = P22;bit on_off=0; /运行与停止标志bit direction=1; /方向标志bit rate_dr=1; /速率标志bit snum_dr=1; /圈数标志uchar code cdis1 = NO.0738230126 ;uchar code cdis2 = 2010/4/19;uchar code cdis3 = STOP ;uchar code cdis4 = NUM: RATE: ;uchar code cdis5 = RUNNING ;uchar m,v=0,q=0;uchar number=0,number1=0; uchar snum=20,snum1=20; /预设定圈数uchar rate=3; /预设定速率uchar data_temp,data_temP0,data_temp2; /*/* /* 延时t毫秒 /* 11.0592MHz时钟,延时约1ms /* /*/void delay(uint t) uchar k; while(t-) for(k=0; k124; k+) /*/void delayB(uchar x) /x*0.14MS uchar i; while(x-) for (i=0; i13; i+) /*/* /*检查LCD忙状态 /*lcd_busy为1时,忙,等待。为0时,闲,可写指令与数据。 /* /*/ bit lcd_busy() bit result; LCD_RS = 0; LCD_RW = 1; LCD_EN = 1; delayNOP(); result = (bit)(P0&0x80); LCD_EN = 0; return(result); /*/* /*写指令数据到LCD /*RS=L,RW=L,E=高脉冲,D0-D7=指令码。 /* /*/void lcd_wcmd(uchar cmd) while(lcd_busy(); LCD_RS = 0; LCD_RW = 0; LC

温馨提示

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

最新文档

评论

0/150

提交评论