直流伺服电机控制系统设计_第1页
直流伺服电机控制系统设计_第2页
直流伺服电机控制系统设计_第3页
直流伺服电机控制系统设计_第4页
直流伺服电机控制系统设计_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

电3信息与电气工程系

课程设计报告

设计题目:直流伺服电机控制系统设计

系别:电子信息与电气工程系

年级专业:___________________________

学号:____________________________

学生姓名:_____________________________

2006级自动化专业《计算机控制技术》课程设计任务书

论文直流伺服电机控制系统设计设计导师丁健

题目类型姓名干开峰

设计对象是直流伺服电机实验台,设计一个计算机控制的直流伺服电机控钊系统。

由测量元件(位移传感器)对被控制对象(电机)的被控参数(位移)进行测量,由变换发送

主单元(A/D转换器)籽被控参数变成一定形式的信号,送给控制器CPU,控制器将测量信

内号(实际位移量)与给定信号(位移展)进行比较,若有误差则按预定的控制规律产生一

容控制信号驱动执行机构(伺服电机控制电源)工作,使被控参数(实际位移量)与给定信号

目(位移量)保持一致。其电机位置随动系统:

心,、K(4+1)

G(s)=-------:-------

5(辜+1)(4+1)

其中:Z=,7;=,T『,K=100,控制算法选用数字PID控制。

设1.PC机一台,教学实验箱一台;

计3人

学(1):明确课题功能。

生(2):把复杂问题分解为若干模块,确定各模块处理方法,画出流程图。

及(3):存储器资源分配

任(4):编制程序,根据流程图来编制源程序

(5):对程序进行汇编,调试和修改,直到程序运行结果正确为止。

一、总体方案设计

二、控制系统的建模和数字控制器设计

三、硬件的设计和实现

计1、选择计算机字长(选用51内核的单片机)

划2、设计支持计算机工作的外围电路(EPROM、RAM、I/O端口、键盘、显示接仙电路等):

计3、设计输入信号接口电路;

进4、设计输出控制电路;

5、其它相关电路的设计或方案(电源、通信等)。

四、软件设计

1、分配系统资源,编写系统初始化和主程序模块框图;

2、编写A/D转换和位置检测子程序框图:

3、编写控制程序和D/A转换控制子程序模块框图;

4、其它程序模块(显示与键盘等处理程序)框图。

五、编写课程设计说明书,绘制完整的系统电路图(A3幅面)。

1.于海生计算机控制技术[M]北京:机械工业出版社,

、周荷琴等微型计算机原理及接口技术合肥:中国科技大学出版社,

考2[M]

文3、李刚民等单片机原理及应用技术[M]北京:高等教育出版社

4、楼然苗51系列单片机设计实例[M]北京:北京航空航天大学出版社

5、计算机控制技术实验指导书

1

摘要

随着集成电路技术的K速发展,微控制器在伺服控制系统普遍应用,这种数字伺服系统

的性能可以大大超过模拟伺服系统。数字伺服系统可以实现高精度的位置控制、速度跟踪,

可以随意地改变控制方式,单片机和DSP在伺服电机控制中得到了广泛地应用,用单片机作

为控制器的数字伺服控制系统,有体积小、可靠性高、经济性好等明显优点。。本设计研究

的直流伺服电机控制系统即以单片机作为核心部件,主要是单片机为控制核心通过软硬件结

合的方式对直流伺服电机转速实现开环控制。

对于伺服电机的闭环控制,采用PID控制,利用MATLAB软件对单位阶跃输入响应的P1D

校正动态模拟仿真,研究PID控制作用以及PID各参数值对控制系统的影响,通过试凑法得到

最佳PID参数。同时能更深度地掌握在自动控制领域应用极为广泛的MATLAB软件。

关键词:单片机直流伺服电机PIDMATLAB

2

目录

1.引言.......................................................

2.单片机控制系统硬件组成....................................

微控制器..................................................

DAC0808转换器............................................

运算放大器.................................................

按键输入和显示模块........................................

按键输入..............................................

显示模块..............................................

直流伺服电动机............................................

3.单片机控制系统软件设计.....................................

主程序.....................................................

键盘处理子程序.............................................

4.控制系统原理图及仿真.......................................

控制系统方框图.............................................

控制系统电路原理图........................................

Proteus仿真结果..........................................

组件对直流伺服控制系统的仿真..................................

MATLAB与Simulink简介...................................

MATLAB简介...........................................

Simulink简介........................................

直流伺服电机数学模型.....................................

系统Simulink模型及时域特性仿真..........................

开环系统Simulink模型及仿真..........................

单位负反馈系统Simulink模型及仿真...................

PID校正..................................................

PID参数的凑试法确定.................................

比例控制器校正........................................

比例积分控制器校正...................................

PID控制器校正........................................

6.小结.........................................................

参考文献........................................................

附录...........................................................

3

1.引言

本设计的单片机控制直流伺服电机系统是一个开环的自动控制系统控制系统。是以单片

机为控制器,通过按钮设置设定值输入到单片机,单片巩对输入信号处理后输出控制信号,

经D/A转换器DAC0808转换后把数字信号转变为模拟电压,再经放大器放大后,去控制伺服

电机工作,进而控制电机向着预定的转速转动。同时单片机处理的数字信号通过LCD来显示,

实时显示单片机的转速值,

另外本设计还利用了MATLAB软件,利用Simulink构造直流电机控制系统模型,通过对

各个单元部件的参数进行设定,进而对直流伺服电机系统控制进行仿真,就其仿真功能对系

统进行时域分析。

2.单片机控制系统硬件组成

本系统是由一片单片机、矩阵式键盘,DAC0808转换器、运算放大器、显示模块和一台

直流伺服电机组成,另外通过软件进行仿真。

微控制器

选用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存储器结合PDIP

X-Z

在一起,特别是可反复是写的Flash存储器可有效地降低开(T2JPUOC140□vcc

(T28P1.1C203P0.0(M»)

发成本。P12C3»3P01(AD1)

P13C4J?

AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,P14C8X3P03CMX3)

以适应不同产品的需求。P1ACBM3P0.4(MM)

P1BC?y

主要功能特性:P1.7Ca

rerc952DP07CW7)

(1)兼容MCS51指令系统,8k可反复擦写(>1000次)FlashROM|RX0>P3OC1031□GAWP

<TXD>P3.1C1130:}ALE和OG

(2)32个双向I/O□,25€x8bit内部RAM(»7W)P32C12293PSEN

(wn>P33C13a

(3)3个16位可编程定时/计数器中断,时钟频率。-24VHz(TSP34c142?DP2C(AU)

(4)2个串行中断,可编程CART串行通道163P26(A13)

|WR>P3BC163P24(A12)

⑸2个外部中断源,共6个中断源<RD>P37C1T243P23CA11)

XTAL2C16n

(6)2个读写中断口线,3级加密位XTALICW22□P2.1W

GNDC:1P2Q网

⑺低功耗空闲和掉电模式,软件设置睡眠和唤醒功能3>21

图2-1AT89C52

4

DAC0808转换器

设计中采用的芯片是DAC0808,它是•个8位DAC。图2是DAC0808典型应用电路。图2T

中输出的模拟量是一个正电压,当需要负电压时,在DAC的第4引脚直接接一个3KC左右的电

阻即可。DAC的第4引脚的电流总是流入的,其最大值为.当外接一个3KC的负载电阻RL时,

输出的电压是通过RL上所加的电压,最大的电压为-3KQX6V(当所有位输入都是高电平

的时候).与文验中的数据相符合。需要指出的是.负载电阻的大小会影响转换时间,当负

载电阻为。的时候,在最坏的情况下,会使转换时间增加us。

HPIWT

>§!COHPH

NC

DACDtt:

B?

6

Bt*

VREF.0

VRIF*

图2-2DAC0808典型应用电路

运算放大器

把D/A转换器的电流输出转换为电压输出,同时也是把微小的电流信号放大为较大的电压信

号,以驱动电机转动。

按键输入和显示模块

按键输入

采用自己设计的形如3X4矩阵式按钮,按钮川于设定某一数值,即电机转速值。通过

5

程序设置延时环节来消除按钮的抖动问题,这样做使矩阵式按钮硬件连线简单,同时按

钮的软件设计也不复杂。

显示模块

系统采用点阵式液晶显示器,显示电机的当前转速值,通过软件设计使得连线简单。

直流伺服电动机

直流伺服电动机在伺服系统中控制机械元件运转的发动机.是一种补助马达间接变速装

置。又称执行电动机,在自动控制系统中,用作执行元件,把所收到的电信号转换成电动机

轴上的角位移或角速度输出。其主要特点是,当信号电压为零时无自转现象,转速随着转矩

的增加而匀速下降。其作用可使控制速度,位置精度非常准确。

直流伺服电动机的结构与直流电动机基本相同。只是为减小转动惯量,电机做得细长一

些。所不同的是电枢电阻大,机械特性软、线性(电阻大,可弱磁起动、可直接起动)。供

电方式是他励供电,即励跋绕组和电枢分别两个独立的电源供电。控制方式有.电枢控制和

磁极控制,其中改变电枢电压u调速范围较大,直流伺服电机常用此方法调速

直流伺服电动机转速的计算公式如下:

U—IR

n=--------

式中:n为转速;中为磁通;U为外加电压;I、柄电枢电流和电阻;Ke为电势系数。

6

3.单片机控制系统软件设计

软件设计采用模块化设计,由主程序模块和功能实现模块两大部分组成。主程序通过读

取键值处理后送到D/A转换以达到控制电机的目的;功能实现模块主要由主函数模块、键盘

处理子程序和D/A转换子程序等组成。

主程序

主程序首先对键盘和显示模块的程序进行初始化,通过读取键值处埋后送到D/A转换以

达到控制电机的目的。主程序流程图如图2-1所示。

图2-1主程序流程图

7

键盘处理子程序

键盘采用程序扫描的工作方式,即在特定的程序位置段上安排键盘扫描程序读取键盘状

态。键盘处理子程序的程序扫描法流程图如图2-2所示。

图2-2键盘处理子程序的程序扫描法流程图

8

4.控制系统原理图及仿真

控制系统方框图

控制系统是以单片机为控制器,通过键盘设置输入转速值,经单片机处理后送到D/A

转换器,模拟信号经功率放大后驱动电机,最终电机以设定的转速值稳定旋转。图47即为

控制系统方框图

按键输入电机

图4-1控制系统方框图

控制系统电路原理图

C1..................................................................................

0.1IF...............................................................................

竹立百.............................................................

,U1

POIW.DO

P0.W1

P02AD2

^2-XTAL2

P03M3

PO.4^04

叩副35

P0fWW6

工RSTPO.7AD7

,2瞒

P22A10

P23W11

P2.峥12

P2釉口

P28W

叨依咨

IP3WXD

P31/TXD

主2

3P32Mm

4P3WH

主S尸.SU

6

?

ATOC62

<TEd>

图4-2控制系统电路原理图

9

Proteus仿真结果

C1....................................................................

OJuF........................................................................................................-

..............................................................

U2

RVEE

COMP

;;,纯

MIOUT

—^XTA.1P0WM0

,38

PO.I/JAOIAJ“EF・

■37H

P0.2//CG

埃」XFN2,36

P0.3/NBAJVR日中

135

P0.WM4

DACO8O8

P0.5/JAO5<TEXT>

P0.6/Q

,32

P0.7/O7

♦17.05v

UI

P2.0,网

P2.1/a

P2.2/A10

P2.3/A11

■25

P2.4/A12

P2.5/A13

n.o/Aw

P27/A15

P3.WRXD

P3.1/TXD

P3.加通港

pa.Mtrn

P3.4/TD帮

P3.5/T1

P3.6顾

P3.7/RD

预设转速

L-X^p^=yL_J:::::::::

图4-3Proteus仿真图

利用Proteus进行仿真,当通过键盘选择某一数值时,电机转速即为相应的设定值,并

在仿真电路图中电机下方显示电机对应转速值的变化及最终稳定值。图4-3中仿真图是当通

过按键设定值为158时,电机下方液晶显示器即显示158,表明电机转速为158r/mino经多

次仿真分析,某曲时候与健盘输入值相比较得知当电机响应输入值时有很小的稳态误差存

在,原因是没有加入反馈环节。以下利用MATLAB仿真软件研究PID反馈控制对直流伺服电机

控制系统的作用。

组件对直流伺服控制系统的仿真

MATLAB与Simulink简介

MATLAB简介

MATLAB软件推出并应用到自动控制领域后,极大地改善了自动控制系统的动态仿真和性

能分析环境。MATLAB(MatrixLaboratory,矩阵实验室)是一个适用于科学计算和工程应用

的数学软件系统°自1982年由Mathworks软件公司推出后,经二十多年的发展,现已是IEEE

10

组织认可的最优化的科技应用软件,成为大学教学和科研中最常用的工具。掌握了MATLAB

的应用,对直流伺服电机控制效果的改善,肯定有着意想不到的帮助。该软件具有以卜特点:

(D数值运算功能强大;

(2)编程环境简单;

(3)数据可视化功能强;

(4)丰富的程序工具箱;

(5)可扩展性能强等。

Simulink简介

Simulink是MATLAB软件的扩展,它是实现动态系统建模和仿真的一个软件包,他与

MATLAB语言的主要区别在于,其与用户的交互接口是基于Windows模型化图形输入,使得用

户可以把更多的精力投入到系统模型的构建,而非编程上。

使用Simulink进行仿真一般分为两步:用户首先需要在仿真模型编辑窗口中搭建好自己

的仿真模型,设置好具体模型参数和仿真参数,然后就可以开始仿真,Simulink将根据用户

搭建的模型,模拟系统在用户设定条件下的具体行为。下面将以直流伺服电机的自动控制为

例,演示MATLAB中Simulink仿真的应用。

直流伺服电机数学模型

直流伺服电机开环系统结构图如图图5-1所示

U(S)

100(0.155+1)

5(1.85+1)(0.0355+1)

图5T直流伺服电机开环系统结构图

其中直流伺服电机的传递函数为

100(0.155+1)

G(s)=

5(1.85-1)(0.0355+1)

系统Simulink模型及时域特性仿真

对于单输入单输出系统,在经典控制理论中可用传递函数来描述系统,获得系统的动

态响应。同样,s仿真软色也有传递函数模块,可方便地描述系统的特性,且简化了仿真模

型。从模块库窗口创建系统模型如图1所示,选信号源模决组中的阶跃信号模块为输入信号,

以输出模块组中的示波器模块作为显示器来观察系统阶跃响应。在模型窗口设置传递函数模

块的参数和特性,运行仿真模型,得系统阶跃响应曲线.

11

开环系统Simulink模型及仿真

Step

端口Step为直流伺服电机的输入电压,输出端口为电机转速。

图5-3是开环系统的仿真结果,即开环系统的阶跃响应曲线,也即直流伺服电机输入IV单位

阶跃电压时。电机的转轴输出呈线性变化。

也Scope

身苜Q0月的13朝0

7001

4001-

300

100卜

°;

Tmeoffset:0

图5-3开环系统仿真图

由图5-3响应曲线可知,系统没有在可视范围内达到稳态值“1”,但从理论上分析知此系统

属稳定系统,在足够时间内是能够达到稳定状态的。上述分析说明:系统的响应速度较慢,

系统性能较差,从而可能不具备使用价值。这个分析结果表明,该系统没有达到预期的设计

要求。

单位负反馈系统Simulink模型及仿真

图5-4是在图5-3的基础上加一个单位负反馈环节,构成直流伺服电机的单位负反馈系统,

单位负反馈系统5力111111水模型如图5-4所示

12

图5-4直流伺服电机单位负反馈系统Simulink模型

图5-5是单位负反馈系统的仿真结果

Scope

当图aaa勃园区s

Timedfjel:0

图5-5单位负反馈系统仿真图

系统超调:40%,调节时间:2so由图5-5和开环阶跃响应曲线相比较知:系统应经可以达

到较快达到稳态值。说明闭环单位负反馈系统对系统性能有很人改善。

PID校正

为r使系统能够达到设计要求,我们可以在图5-4前向通道上设置一个控制器构成闭环系统

来校正直流伺服电机。基于PID控制(闭环)的直流伺服电机系统框图如图5-6所示。

图5-6基于PID控制(闭环)的直流伺服电机系统框图

其控制过程为由测速发电机输出电压得到直流电机输出量,即转速,通过转速反馈后与系统

输入信号进行比较,得到偏差信号。偏差信号作为PID控制器的输入信号根据设定的PID控制

13

规律计算后输出信号U,作为控制量输入给直流电机,从而实现整个直流电机调速系统的闭

环负反馈PID控制。

PID参数的凑试法确定

增大比例系数KP一般系统响应利于减小静差,但是过大会增大超调,并产生震荡,是

稳定性变坏。增大TI有减小超调,减小震荡,是系统更稳定,但静差消除变慢。增大微分

TI)利于加快系统响应时间,使超调减小,稳定性增加,但对扰动的抑制能力减弱,对扰动

有较敏感的响应。

在凑试时,对参数实行下述先比例,后枳分,再微分的整定步骤。

(1)首先只整定比例部分。即将比例部分由小变大,并观察相应的系统响应,直到得到反应

快,超调小的响应曲线。如果系统没有静差或静差己小到允许范围内,并且响应曲线己属满

意,那么只需用比例控制器即可,最优比例系数可由此确定。

(2)如果在比例调节的基础下系统的静差不能满足设计要求,则须加入积分环节。整定时首

先置积分时间T1为一较大值,并将经第一步整定得到的比例系数略微缩小,然后减小积分

时间,并在保持系统良好动态性能的情况下,静差得到消除。在此过程中,可根据响应曲线

的好坏反复改变比例系数与积分时间,以期得到满意的控制过程与整定参数。

(3)若使用比例积分控制器消除了静差,但动态过程经反复调整仍不能满意,则可加入微分

环节,构成比例积分微分控制器。在整定时,可先置微分时间Td为零。在第二步整定的基础

上,增大Td,同时相应的改变比例系数和积分时间,逐步凑试,以获得满意的调节效果和控

制参数。

比例控制器校正

为能要求系统在特别短的时间内达到设定的转速值,比例增益K应尽可能大,以提高比

例作用的强度,但必须同时考虑系统的稳定性。采用单纯的比例控制,其调整时间和超调量

是一对矛盾,无法同时满足:要缩短调整时间,K要加大;而K加大,超调量也同时加大了。

经过多次参数选择,当K。=10时,阶跃响应曲线较为理想,呈现接近0.75衰减率的振荡i寸

程。

比例控制系统Simulink模型及仿真

图5-7比例控制系统Simulink模型

14

Kp=l时仿真图

Qbcope

昌昌a2a代回唱©

即=3时仿真图

BJSiope

昌首aa於衲园阅©

pirriBolf^el:0

15

Kp=5时仿真图

BJscope

昌昌a为a醯遢疆B

由以上三个比例控制的仿真图可知,增大比例系数KP一般系统响应利于减小静差,但是

过大会增大超调,并产生震荡,是稳定性变坏。

比例积分控制器校正

积分控制的作用是只要系统存在误差,积分控制作月就不断地积累,输出控制后以消除

误差,因而,只要有足够的时间,积分控制将能完全消陵误差。在比例环节基础上加入积分

环节,只要参数设置合适就能完全消除系统偏差。

比例积分控制系统Simulink模型

图5-8比例积分控制系统Simulink模型

16

Kp=KKi=l时仿真图

Kp=KKi=3时仿真图

17

Kp=5、Ki=3时仿真图

由以I•.三个比例积分控制的仿真图可知,增大TI有减小超调,减小震荡,使系统更稳定,

但静差消除变慢。PI控制参数设置适当可使系统静差为零。经多次试凑,选KI=1.

PID控制器校正

比例积分作用虽能是系统误差为零,但系统动态性能不能得到满足。积分作用太强可能

会使系统出现震荡。微分控制具有超前控制能力,可抑制最大动态偏差,改善系统动态性能,

提高系统的稳定性。为此,在PI作用基础上引入微分控制,构成PID控制器,以使系统满足

稳、准、快的要求。

PID控制控制系统Simulink模型如图

图5-9PID控制系统Simulink模型

18

Kp=KKi=kKd二时仿真图

Bfccope

与图衿IS脑0

1.4

1.2

1-

0.8

0.6-

0.4-

0.2-

0-

0

Timeoffset:0

和PI控制闭环响应曲线相比较可知:系统响应时间变短,超调变小,但仍不符合要求;

Kp=5、Ki=l、*=时仿真图

Qjscope

昌昌月醯睛超曰

2

12.53.54.5

Timeoffset0

与KP=1、KI=KKD=时的仿真图相比,系统超调和调节时间都变小,仍然不符合要求,

继续校正。需加大Kp及Ki,

19

Kp=12、Ki=KKd=时仿真图

由上曲线知此时系统有微晟的超调,进一步加大Ki时超调为零。

Kp=12、Ki=kKd=时仿真图

经过多次校正参数,此时当Kp=12、Ki=l、Kd=时系统超调量为0,稳态误差为0,性能

满足设计要求,稳定、准确、快速得到了完满的统一。

20

6.小结

控制系统特点是以单片机为控制器,通过键盘设置输入转速值,使得电机的转速设置

方便快捷,另外又通过软件实现系统转速设置范围的保护。

但在proteus中没能实现闭环系统的PID控制。此缺点通过软件弥补,在MATLAB软件中的

SIMULINK中进行了直流伺服电机的开环控制系统仿真.,单位闭环控制系统仿真,闭环PI控制

系统仿真,闭环PD控制仿真,闭环P1D控制仿真能够更好的测试和控制系统的性能,从而为设

计事物提供了更准确的性能指标。

参考文献

[1]于海生.计算机控制技术[M].北京:机械工业出版社,

[2]周荷琴等.微型计算机原理及接口技术[M].合肥:中国科技大学出版社,

[3]张毅刚等.单片机原理与应用设计[U].北京:电子工业出版社

[4]楼然苗.51系列单片机设计实例M.北京:北京航空航天大学出版,

[5]陈小忠等.单片机接LI技术实用子程序.北京:人民邮电出版社,

[6]计算机控制技术实验指导书

21

附录

单片机控制程序清单:

#include

//^include””

//^include

//^include”〃

//^include””

#defineuncharunsignedchar

#defineunintunsignedint

voidwdata(unchardat);//writedatafunction

voidwcom(uncharcom);//writecommandfunction

voiddelay(unchart);//delayfunction

sbitrw=P3-1;//rw

sbitrs=P3"0;//rs

sbiten=P3'2;//en

#defineMAX_LEN16//数据最大长度

^definecountMl50000

#defineH0(65536-countMD/256

"defineL0(65536-countMl)%256

uncharcodetab2[]={0x31,0x32,0x33,0x41,0x34,0x35,0x36,0x42,0x37,0x38,0x39,

0x43,OxOc,0x30,OxOf,0x44);〃键盘求值表

uncharcodetab3[]={^TargetValue:〃};

uncharcodetab4[]=r3;

uncharcodetab6[]={z,inputERR"};

uncharserial_data[MAXLEN],serial_len=0,sure_flag=0;

voidwdata(unchardat);//writedatafunction

voidwcom(uncharcom);//writecommandfunction

voiddelay(unchart);//delayfunction

voidkeyscan(void);〃键盘操作程序

uncharscankey(void);//键盘求值程序

voidchushi(void);〃初始化程序

//voidinit_serial(void);〃串口初始化

//voiduart_serial(void)"/串口主程序

voidlcd_write(void);〃液晶显示待发送指令

uncharjisuan(void);〃计算结果为十进制

unintfreq=0;〃频率变量

sfrl6DPTR=0x82;〃申明DPTR

chartimes=0;〃计算TO中断次数

//delayfunction

//P0=0x00;

〃中断初始化

22

voidinitinterrup(void)

{

IE=0x8a;〃启用TO,门中断

TM0D=0x51;//Tl为计数器,T2为定时器,都采用model

TH0=H_0;

TLO=L_O;

TH1R;

TL1=O;

TRO=1;

TR1=1;

)

voiddelay(unchart)

(

unchara,b;

for(a=0;a<t;a++)

for(b=0;b<128;b++);

}

//ThefunctionforwritedatatoLCDscreen

voidwdata(unchardat)

(

Pl=dat;

rs=l;

rw=0;

en=0;

delay(6);

en=l;

}

//ThefunctionforwritecommandtoLCDscreen

voidwcom(uncharcom)

(

Pl=com;

rs=0;

rw=0;

en=0;

delay(6);

cn=l;

)

〃初始程序

voidchushi(void)

(

unchari;

wcom(0x01);

wcom(0x38);

wcom(OxOc);

23

wcom(0x06);

delay(4);

wcom(0x80);

delay(4);

for(i=0;i<17;i++)

{

wdata(tab3[i]);

}

wcom(OxcO);

delay⑵;

}

〃键盘求值程序

uncharscankey(void)

(

unchartemp,c,d;

P2=0x0f;

temp=P2;

temp=temp&()x()f;//屏蔽高四位,取列值

temp=~(temp|OxfO);〃将temp中的内容与OxfO达行相加,最后求反可得到是那列按

if(temp==l)

c=0;〃位低电平

elseif(temp-2)

c=l;〃位低电平

elseif(temp==4)

c=2;〃位低电平

elseif(temp==8)

c=3;〃位低电平

else

c=0;〃否则给返回值C=0

P2=0xf0;〃给P2的行为高电平,以来判断是高四为的那位为低电平

del

温馨提示

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

最新文档

评论

0/150

提交评论