关于单片机的毕业论文

更新时间:2023-11-22 15:52:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

**届 分 类 号:

单位代码:

临沂大学

毕业论文

基于单片机的步进电机控制系统设计

姓 名

******* 学 号 ************** 年 级

***** 专 业 ****** 系 (院)

******* 指导教师 ****

****年*月*日

临沂大学

摘 要

步进电动机由于用其组成的开环系统既简单、廉价,又非常可行,因此在打印机等办公自动化设备以及各种控制装置等众多领域有着极其广泛的应用。

本文介绍的是一种基于单片机的步进电机的系统设计,用汇编语言和C语言编写出电机的正转、反转、调速、停止程序,通过单片机、电机的驱动芯片ULN2001以及相应的按键实现以上功能,并且步进电机的工作状态要用LCD液晶显示器显示出来。本文内容介绍了步进电机以及单片机原理、该系统的硬件电路、程序组成,同时对软、硬件进行了调试,同时介绍了调试过程中出现的问题以及解决问题的方法。该设计具有思路明确、可靠性高、稳定性强等特点,通过调试实现了上述功能。

关键词:步进电机;脉宽调制;驱动机构;单片机;转动

临沂大学

Design of The Control System of Step-motor

The open-loop system which is composed by step-motor is simple, cheap and very practical, so there are very wide range of applications in printers and other office automation equipment and various control devices, and many other fields.

This article describes one design of step-motor system based on microcontroller.The program of the preparation of a motor , reverse, adjust speed, stop is written by compile language. The above functions are realized through the microcontroller, motor driver chip ULN2001 and correspond key , and the work state of stepper motor is diaplayed through the light-emitting diode. This article introduces the principle of stepper motor and single-chip microcomputer, the system hardware circuit, the program components, while software and hardware for the debugging, at the same time introduces the problems which are appeared in the debugging process and the solutions of the problems . The design has the advantages of clear , high reliability, strong stability, and the above-mentioned functions are realized through the debugging.

Key words: Stepping motor; Pulse-width modulated; driving mechanism; singlechip; rotation

临沂大学

目 录

1 引言 .................................................................. 1 1.1 课题研究的目的和意义 ................................................ 1 1.2 国内外研究概况 ...................................................... 1 2 步进电机与单片机简介 .................................................. 1 2.1 步进电机介绍 ........................................................ 1 2.2步进电机驱动系统介绍 ................................................ 6 2.3 单片机原理 .......................................................... 8 3硬件电路的设计 ..................................................... 12 3.1 系统整图 ........................................................... 12 3.2 电源部分 ........................................................... 12 3.3 最小系统 ........................................................... 13 3.4 驱动部分 ........................................................... 14 3.5 状态指示部分 ....................................................... 14 3.6 按键部分 ........................................................... 14 3.7 时钟部分 ........................................................... 15 3.8 复位部分 ........................................................... 15 3.9 KEIL-UVISION简介与调试 ............................................... 15 3.10 PROTEUS仿真步进电机正转 ............................................ 16 3.11 PROTEUS仿真步进电机反转 ............................................ 17 3.12 PROTEUS仿真总图与PROTEUS简介 ........................................ 17 4软件设计 ............................................................ 23 4.1 系统开发软硬件环境 ................................................. 23 4.2 系统程序框图 ....................................................... 24 4.3 系统程序 ........................................................... 25 6 结论 ................................................................. 31 参 考 文 献 ............................................................ 33 致 谢 ................................................................. 34

临沂大学

1 引言

1.1 课题研究的目的和意义

步进电动机是用电脉冲信号进行控制,将电脉冲信号转换成相应的角位移或线位移的微电动机,它最突出的优点是可以在宽广的频率范围内通过改变脉冲频率来实现调速,快速起停、正反转控制及制动等,并且用其组成的开环系统既简单、廉价,又非常可行,因此在打印机等办公自动化设备以及各种控制装置等众多领域有着极其广泛的应用。随着微电子和计算机技术的发展,步进电动机的需求量与日俱增,研制步进电机驱动器及其控制系统具有十分重要的意义。

1.2 国内外研究概况

步进电机是国外发明的。中国在文化大革命中已经生产和应用,例如江苏、北京都生产,而且都在各行业使用,驱动电路所有半导体器件都是完全国产化的,当时是全分立元器件构成的逻辑运算电路,还有电容耦合输入的计数器,触发器,环形分配器。

国外在大功率的工业设备驱动上,目前基本不使用大扭矩步进电动机,因为从驱动电路的成本,效率,噪音,加速度,绝对速度,系统惯量与最大扭矩比来比较,比较不划算,还是用直流电动机,加电动机编码器整体技术和经济指标高。一些少数高级的应用,就用空心转杯电机,交流电机。

国外在小功率的场合,还使用步进电机,例如一些工业器材,工业生产装备,打印机,复印件,速印机,银行自动柜员机。国外用许多现代的手段将步进电机排挤出驱动应用,除了前面提到的旋转编码器,打印机还使用光电编码带或感应编码带配合直流电动机,实现闭环直线位移控制。

国内过去是用大力矩步进电动机实现机床数控,有实力的公司现在也采用交流电动机驱动数控机床,在驱动设备的主要差距,是国外对交流电动机的控制理论与工程分析和应用能力强,先进的控制理论作为软件,写在控制器内部。

在卫星、雷达等应用场合,中国在文化大革命后期,就生产了力矩电机,就生产了环形力矩电机,在高品质的控制场合,有时还不能使用步进电机。步进电机的细分控制,在改革开放初期,国内就已经基本掌握,这与交流电动机的矢量控制相比,难度要低得多。

2课步进电机与单片机简介 2.1 步进电机介绍

2.1.1步进电机概述

步进电机是一种将电脉冲转化为角位移的执行机构。通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。

1

临沂大学

步进电机的相绕组可以等效为一个电感一电阻串联电路。图2-3表明了一个电感一

电阻电路的电气特性。在 t=0时刻,电压V施加到该电路上时,电路中的电流变化规律为:

I(t)=V(1-e-Rt/L)/R

通电瞬间绕组电流上升速率为:

di(0)/dt=V/t

经过一段时间,电流达到最大值: Imax=V/R

L/R定义为该电路的时间常数,是电路中的电流达到最大电流Imax的63%所需要的时间。在 t=t:时刻,电路断开与直流电压源V的连接,并且短路,电路中的电流以初始速率一V/L开始下降,电流变化规律为:

I(t)=Ve-R(t-t1)/L/R

不同频率的矩形波电压施加到该电路上,电流波形如图3-2所示。低频时电流能够达到最大值(a);当矩形波频率上升达到某一临界频率,电流刚达到最大值就开始下降 (b);矩形波频率超过此临界值后,绕组中的电流不能达到最大值 (c)。因为步进电机转矩的大小与绕组的电流成正比,所以电机低速运行时,电机能够达到其额定转矩,而在某一特定频率以上运行时,绕组电流随着频率的提高逐渐下降,电机转矩也相应逐渐减小,从而降低了高速运转时带负载能力。

图4 不同频率脉冲作用下电感-电阻电路的电流波形

7

临沂大学

要改善电机高速运行时的性能,有两种办法:提高电流上升速度 VA 和减小时间常数 L/R;可以通过加大绕组的电压从而增加电流上升的速率得时间常数。或者在电路中串联电阻,使L/R减少。

2.3单片机原理

2.3.1单片机原理概述

单片机(single-chip microcomputer)是把微型计算机主要部分都集成在一块芯片上的单芯片微型计算机。图2-5中表示单片机的典型结构图。由于单片机的高度集成化,缩短了系统内的信号传送距离,优化了结构配置,大大地提高了系统的可靠性及运行速度,同时它的指令系统又很适合于工业控制的要求,所以单片机在工业过程及设备控制中得到了广泛的应用。

图5典型单片机结构图

2.3.2单片机的应用系统

单片机在进行实时控制和实时数据处理时,需要与外界交换信息。人们需要通过人机对话,了解系统的工作情况和进行控制。单片机芯片与其它CPU比较,功能虽然要强得多,但由于芯片结构、引脚数目的限制,片内ROM、RAM、I/O口等不能很多,在构成实际的应用系统时需要加以扩展,以适应不同的工作情况。单片机应用系统的构成基本上如图6所示。

图6 单片机的应用系统

单片机应用系统根据系统扩展和系统配置的状况,可以分为最小应用系统、最小功耗系统、典型应用系统。本设计是设计一款最小应用系统,最小应用系统是指能维持单片机运行的最简单配置的系统。这种系统成本低廉、结构简单,常用来构成简单的控制

8

临沂大学

系统,如开关量的输入/输出控制、时序控制等。对于片内有ROM/EPROM的芯片来说,最小应用系统即为配有晶体振荡器、复位电路和电源的单个芯片;对与片内没有ROM/EPROM芯片来说,其最小应用系统除了应配置上述的晶振、复位电路和电源外,还应配备EPROM或EEPROM作为程序存储器使用。 2.3.3 AT89C51简介

AT89C51的主要参数如表1所示: 型号 存储器 RAM 128 2 32 1 6 24 低电压 表1 AT89C51的主要参数

定时I/0 串行中断 速度 器 口 (MH) 其它特点 E2PROM ROM 89C51 4K AT89C51含E2PROM电可编闪速存储器。有两级或三级程序存储器保密系统,防止E2PROM中的程序被非法复制。不用紫外线擦除,提高了编程效率。程序存储器E2PROM容量可达20K字节。

AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。其引脚如图2-7所示。 1、主要特性: ·与MCS-51 兼容

·4K字节可编程闪烁存储器 寿命:1000写/擦循环

图7 单片机的引脚排列

9

临沂大学

·全静态工作:0Hz-24Hz ·三级程序存储器锁定 ·128*8位内部RAM ·32可编程I/O线 ·两个16位定时器/计数器 ·5个中断源 ·可编程串行通道 ·低功耗的闲置和掉电模式 ·片内振荡器和时钟电路

2、管脚说明: VCC:供电电压。 GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,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口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下所示: P3口管脚备选功能 P3.0 RXD(串行输入口)

10

临沂大学

P3.1 TXD(串行输出口) P3.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。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。

/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。

3、I/O口引脚:

a:P0口,双向8位三态I/O口,此口为地址总线(低8位)及数据总线分时复用; b:P1口,8位准双向I/O口;

c:P2口,8位准双向I/O口,与地址总线(高8位)复用; d:P3口,8位准双向I/O口,双功能复用口。 4、振荡器特性:

XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要

11

临沂大学

求,但必须保证脉冲的高低电平要求的宽度。

5、芯片擦除:

整个EPROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。

此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。

3 硬件电路的设计 3.1 系统整图

系统整图如图8所示,本系统采用外部中断方式,p2口作为信号的输入部分,p0口为发光LCD显示部分,p1口作为电机的驱动部分。

图8系统整图

3.2 电源部分

利用LM7812和LM7805芯片得到12V和5V的电压,它们的应用要注意以下几点:(1)输入输出压差不能太大,太大则转换效率急速降低,而且容易击穿损坏;(2)输出电流不能太大,1.5A 是其极限值。大电流的输出,散热片的尺寸要足够大,否则会导致高温保护或热击穿;(3)输入输出压差也不能太小,大小效率很差。 其中12V电压给步进电机供电,5V电压则给单片机供电。分别如图9、图10所示。

12

临沂大学

(1)、产生12V的电压给步进电机供电

图9 12V电路部分

(2)产生5V的电压给单片机供电

图10 5V电路部分

3.3 最小系统

基本电路的最后一个部分是存储器的设置,如果31脚接电源,则采用内部存储器,如果31脚接地,则采用外部存储器。将时钟电路、复位电路与单片机连接并设置好存储器,就构成了最小系统。这是做任何单片机设计都必须有的部分。如图11。

图11 最小系统

13

临沂大学

3.4驱动部分

此电路是步进电机的驱动部分,我选用的是ULN2001芯片来驱动的,ULN2001系列是一款高耐压,大电流达林顿管驱动器,包含7个NPN达林顿管。如图12。

图12 驱动部分

3.5 状态指示部分

状态指示用P0口控制LCD的显示,STA显示的是转动的方向,SPD显示的是转动的速度,RUN显示的是机器是否运转,用它来表示步进电机所处的状态。如图13。

图13 状态指示部分

3.6 按键部分

本次设计选用的是单片机的P2口来控制信号的输入,所以把按键开关和P2口连接起来,当按下开关KEY1时,相当于给P2.0口一个低电平,开始转动;当按下开关KEY2时,相当于给P2.1口一个低电平,步进电机反转,相反则正转;当按下开关KEY3时,相当于给P2.2口一个低电平,调节转速。如图14。

图14按键部分

14

临沂大学

3.7 时钟部分

时钟电路是计算机的心脏,它控制着计算机的工作节奏,可以通过提高时钟频率来提高CPU的速度,本次设计采用的晶振为12MHz。如图15。

图15 时钟部分

3.8 复位部分

根据应用的要求,复位操作通常有两种基本形式:上电复位和上电或开关复位。本例使用上电复位。如图16。

图16 复位部分

3.9 keil-uvision4简介及调试

Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。

2009年2月发布Keil μVision4,Keil μVision4引入灵活的窗口管理系统,使开发人员能够使用多台监视器,并提供了视觉上的表面对窗口位置的完全控制的任何地方。新的用户界面可以更好地利用屏幕空间和更有效地组织多个窗口,提供一个整洁,高效的环境来开发应用程序。新版本支持更多最新的ARM芯片,还添加了一些其他新功能。

15

临沂大学

2011年3月ARM公司发布最新集成开发环境RealView MDK开发工具中集成了最新版本的Keil uVision4,其编译器、调试工具实现与ARM器件的最完美匹配。 C语言仿真如图17.

图 17 keil-uVision调试

3.10 proteus仿真步进电机正转

Proteus仿真正转局部图。如图18

图18 Proteus仿真正转

16

临沂大学

查阅资料,想要得到更高性能的控制,可以选用混合式步进电机,采用闭环的细分驱动电路。

2、本设计KEY2用一个按键控制正反转,观察起来有点困难。建议以后有做类似设计任务的时候,预先考虑全面,争取一个键控制一个功能。

3、本设计的硬件制作部分完全是实行的手工焊接,没有制作PCB板,这样的后果就是焊接完电路板之后容易出现问题,检查麻烦,而且要是在后期全部制作调试都完成后再中途出现问题了检查起来是相当的麻烦。所以建议以后有做类似设计任务或者实际应用的时候,尽量采用PCB电路板的形式,这样最大的好处就是硬件的可靠性高,外观美观简洁,尤其是在大量设计的时候,采用PCB电路板成本也不高,值得采用。

32

临沂大学

参 考 文 献

[1]张友德.单片微型机原理、应用与实验[M].上海:复旦大学出版社,2005. [2]李夙.异步电动机直接转矩控制[M].北京:机械工业出版社,1998. [3]王鸿钰.步进电机控制入门[M].上海:同济大学出版社,1990.

[4]袁任光,张伟武.电动机控制电路选用与258实例[M].北京:机械工业出版社,2005. [5]王秀和.永磁电机[M].北京: 中国电力出版社,2007.

[6]房玉明,杭柏林.基于单片机的步进电机开环控制系统[J].电机与控制应用,2006,33(4):64-64.

[7]孙笑辉,韩曾晋.减少感应电动机直接转矩控制系统转矩脉动的方法[J].电气传动,2001,(1):8-11.

[8]冯江华,陈高华,黄松涛.异步电动机的直接转矩控制[J].电工技术学报,1999,(6):29-33.

[9]江一,朱凌,申仲涛.异步电动机直接转矩控制仿真研究[J].华北电力大学学报,2003,(1):10-13.

[10]韩利虎. 浅谈步进电机的基本原理[J]. 内蒙古石油化工, Inner Mongolia Petrochemical Industry, 2007,(11):109.

[11]张巍. 浅谈单片机控制步进电机[J]. 安防科技,2006,(3): 25.

[12] 乔璐. 景林,韩英桃.一种实用的步进电动机驱动器设计[J].微特电机,2005,(10):29-31.

[13] 康晶.采用反馈控制的步进电机高低压驱动电路[J].电力电子技术,2003,37(1):61-62,65.

[14] Isao Takahashi,Toshihiko Noguchi.A new responese and high-efficiency control strategy of an motor[J].IEEE Trans on Ind Appl,1986,22(5):820-827. [15]Depenbrock M.Direct self-control(DSC) of inverterfed machine[J].IEEE Trans on P E,1998,3(4):420-429.

[16]AT Command set for TC35i Version 00.03.

33

临沂大学

致 谢

首先诚挚的感谢我的论文指导老师***老师,从选题的确定、论文的写作、修改到最后定稿过程中,自始至终都倾注着老师的心血。特别是他多次询问写作进程,并为我指点迷津,帮助我开拓思路,老师以严谨的治学之道、宽厚仁慈的胸怀、积极乐观的生活态度,兢兢业业、孜孜以求的工作作风和大胆创新的进取精神为我树立了一辈子学习的典范,他的教诲与鞭策将激励我在学习和生活的道路上励精图治,开拓创新。他渊博的知识、开阔的视野和敏锐的思维给了我深深的启迪。我以最诚挚的心意感谢***老师。

在毕业设计期间,我要感谢许多让我分享他们宝贵经验和知识的老师,教会我正确的思考方式。同时,也要感谢在论文写作过程中,帮助过我、并且共同奋斗四年的大学同学们,能够顺利完成论文,离不开他们的帮助,在此表示最深的谢意。

*****年*月*日

34

临沂大学

10、速度3正转。如图29。

图29 速度3正转

11、速度2反转。如图30。

图30 速度2反转

22

临沂大学

12、速度3反转。如图31。

图31 速度3反转

Proteus软件是英国Labcenter electronics公司出版的EDA工具软件件中国。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil等多种编译器。

4 软件设计

4.1 系统开发软硬件环境

与其它的微处理器一样,开发步进电机驱动系统控制程序也需要一套完整的软件和硬件开发工具。近年来,随着以51单片机为内核的单片机的不断发展和普及,国外的一些公司纷纷推出了以51单片机为基础的集成开发环境。本次毕业设计选用的单片机是AT89C51。

23

临沂大学

4.2 系统程序框图

系统分为电机正转、电机反转、开始与转速的几部分组成,其主程序框图如图32所示。

主程序

开始

初始化

LCD1602初始化

显示基本字符

判断正反转并显 判断运行速度并显示 KEY1是 否按下 Y N 显示“ON” 显示“OFF”

判断是否

为首次按

键 Y N

判断正反转 判断正反转

运行电动机,并 运行电动机,并

确定延时时间 确定延时时间

图32 系统程序框图

24

临沂大学

4.3系统程序 C程序:

#include \#include \#include \

#define busy 0x80

#define uchar unsigned char #define uint unsigned int

sbit RS=P2^3; sbit RW=P2^4; sbit E=P2^5; sbit KEY1=P2^0; sbit KEY2=P2^1; sbit KEY3=P2^2;

uchar code tab[8]={0x02,0x06,0x04,0x0C,0x08,0x09,0x01,0x03}; uchar temp;

void delay(uchar k) { uint i,j;

for(i=0;i

for(j=0;j<60;j++)

25

临沂大学

{;} } }

void test_1602busy() {

P0=0xFF; E=1; RS=0; RW=1; _nop_(); _nop_(); while(P0&busy) { E=0; _nop_(); E=1; _nop_(); } E=0; }

void write_1602Command(uchar co) {

test_1602busy(); RS=0; RW=0; E=0;

26

本文来源:https://www.bwwdw.com/article/prpv.html

Top