直流电机PID闭环控制课程设计报告_第1页
直流电机PID闭环控制课程设计报告_第2页
直流电机PID闭环控制课程设计报告_第3页
直流电机PID闭环控制课程设计报告_第4页
直流电机PID闭环控制课程设计报告_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

1、微机课程设计报告直流电机PID闭环控制学院信息科学与工程学院班级自动化 xxxx姓名xxx学号xxxx指导老师: xxx 老师 日期:2011-12-23前言此次课程设计原是基于以8086微机为控制芯片, 但是考虑到在课程设计中会多次用到中断,而在实验 箱以及Protues仿真环境下,8086的中断都不能使用。 没有中断那么后续工作无法继续,比如电机速度的反 馈脉冲捕捉,电机的定时闭环控制等都无法完成。因 此为解决这个问题,在取得老师允许后选择了 80C51 单片机来替代8086作为控制器进行控制。以下即为本次课程设计的简介,其中还存在许多 不足之处,还望老师不吝指正。目录前言第一章 80C5

2、1单片机介绍关于 80C51Keil的介绍第二章硬件电路设计2.1主控制器电路2.2电机驱动电路2.3液晶显示电路2.4键盘输入电路2.5其他辅助电路第三章软件算法设计3.1 PID控制原理3.2液晶显示的程序设计3.3键盘扫描的程序设计3.4电机PID控制程序设计第四章系统的调试与运行第五章心得总结附全部程序第一章8051单片机介绍1.1 关于 80C511.1.1简介51单片机是对目前所有兼容Intel 8031指令系统的 单片机的统称。该系列单片机的始祖是Intel的8031单 片机,后来随着Flash rom技术的发展,8031单片机取 得了长足的进展,成为目前应用最广泛的8位单片机之

3、 一,其代表型号是ATMEL公司的AT89系列,它广泛 应用于工业测控系统之中。目前很多公司都有 51系列 的兼容机型推出,在目前乃至今后很长的一段时间内 将占有大量市场。51单片机是基础入门的一个单片机, 还是应用最广泛的一种。需要注意的是 52系列的单片 机一般不具备自编程能力。当前常用的51系列单片机主要产品有:*Intel 的:80C31、80C51、87C51,80C32、80C52、87C52 等;*ATMEL 的:89C51、89C52、89C2051 等;*Philips、华邦、Dallas、Siemens(Infineon)等公司的许 多产品目前,国产宏晶STC单片机以其低功

4、耗、廉价、稳定性能,占据着国内51单片机较大市场。1.1.2主要功能.8 位 CPU4kbytes 程序存储器(ROM) (52 为 8K)256bytes 的数据存储器(RAM) (52 有 384bytes 的 RAM)32条I/O 口线 111条指令,大部分为单字节指令21个专用寄存器2个可编程定时/计数器5个中断源,2个优先级(52有6个)一个全双工串行通信口外部数据存储器寻址空间为64kB外部程序存储器寻址空间为64kB逻辑操作位寻址功能双列直插 40PinDIP封装单一 +5V电源供电CPU :由运算和控制逻辑组成,同时还包括中断系统 和部分外部特殊功能寄存器;RAM :用以存放可

5、以读写的数据,如运算的中间结果、 最终结果以及欲显示的数据;ROM :用以存放程序、一些原始数据和表格;I/O 口 :四个8位并行I/O 口,既可用作输入,也可 用作输出;T/C :两个定时/记数器,既可以工作在定时模式,也可以工作在记数模式;五个中断源的中断控制系统;一个全双工UART(通用异步接收发送器)的串行I/O 口,用于实现单片机之间或单片机与微机之间的串行通信;片内振荡器和时钟产生电路,石英晶体和微调电容需 要外接。最高振荡频率为12M。1.2 Keil的介绍Keil C51是美国Keil Software公司出品的51系列兼 容单片机C语言软件开发系统,与汇编相比,C语言在功能

6、上、结构性、可读性、可维护性上有明显的优势,因而易学 易用。Keil提供了包括C编译器、宏汇编、连接器、库管理 和一个功能强大的仿真调试器等在内的完整开发方案,通过 一个集成开发环境(uVision)将这些部分组合在一起。系统概述Keil C51软件提供丰富的库函数和功能强大的集成开 发调试工具,全Windows界面。另外重要的一点,只要看 一下编译后生成的汇编代码,就能体会到Keil C51生成的 目标代码效率非常之高,多数语句生成的汇编代码很紧凑, 容易理解。在开发大型软件时更能体现高级语言的优势。 下面详细介绍 Keil C51开发系统各部分功能和使用。2. Keil C51单片机软件开

7、发系统的整体结构C51工具包的整体结构,uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成 编辑、编译、连接、调试、仿真等整个开发流程。开发人 员可用IDE本身或其它编辑器编辑 C或汇编源文件。然 后分别由C51及C51编译器编译生成目标文件(.OBJ)。目 标文件可由LIB51创建生成库文件,也可以与库文件一起 经L51连接定位生成绝对目标文件(.ABS)。ABS文件由 OH51转换成标准的Hex文件,以供调试器dScope51或 tScope51使用进行源代码级调试,也可由仿真器使用直接 对目标板进行调试,也可以直接写入程序存

8、贮器如 EPROM 中。优点1.Keil C51生成的目标代码效率非常之高,多数语句生 成的汇编代码很紧凑,容易理解。在开发大型软件时更能 体现高级语言的优势。与汇编相比,C语言在功能上、结构性、可读性、 可维护性上有明显的优势,因而易学易用。用过汇编语言 后再使用C来开发,体会更加深刻。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全 Windows 界面。第二章硬件电路设计硬件电路是软件算法的基础,没有硬件的支持,软件无 从谈起,更无法实现各种功能。以下即为各个模块的硬件电 路,在此做一个简单的介绍。2.1主控制器电路此次选用80C51作为主控制器,下图为其最小系统电路

9、 图,在此基础上才能发挥其功能。图中选用12MHz的晶振为其提供基准时钟脉冲,之所以 选用12MHz是为了方便设置定时器的初值,另外也有选用 11.0592MHz的晶振,这是为了方便设置波特率,在此课程设 计没必要用到波特率,故而选择12MHz的晶振。2.2电机驱动电路由于要对直流电机进行PID控制,因此在调节过程中电 机不可避免的要进行正反转,在此选用L298作为电机驱动 单元,此驱动可控制两路电机,而且能满足正反转的要求。其电路图如下:L29BI h MWQ其电路图如下:L29BI h MWQ1 IM 1vOIN2OUT1IN3IN4OUT2ENAENBOUT3SENSAOUT4SENSE

10、?ND其中VS接外电源(最高可达45V),IN1与IN2接控制 器的控制端,OUT1与OUT2接电机的正负极,ENA为使能端, 高电平有效,SENA低电平有效。如果控制两路电机,则其他 端口与上面设置一样。2.3液晶显示电路在进行电机调节时要实时显示个参数数据,如:电机预 先设定速度,电机当前实际速度,P,I,D各个参数等。若 是选用数码管显示,则过于繁琐,鉴于此选用12864液晶显 示屏来显示各参数。其电路图如下:此液晶与控制器并行通信,由单片机的P0 口进行传输数 据,其他各个端口分别连接到控制器的相应控制端。通过控 制相应端口使液晶屏显示不同内容,从而实现多个数据的显 示。2.4键盘输入

11、电路为实现人机对话,在上一节已经提到了参数的显示,此 处通过键盘来实现控制信息的传达,从而完成人机交互。键 盘输入电路如下:S S S 键盘的8个接口连接到单片机的P1 口,通过对P1的不 断扫描来获取外部传达的信息。由于键盘外观原因,通过程 序来修改键盘符号所代表的信息,数字键保持不变。运算符 号根据具体情况赋予不同的传递信息。2.5其他辅助电路为了实现准确的人机对话,不遗漏信息,此处添加了些的辅助电路来进行提示。根据其提示进行相应的操作。其电路图如下:四个LED灯通过4个I/O控制,显示当前正在进行的操作,根据指示灯的状态来进行操作,可以避免不必要的操作 错误。当进行速度设置时,第一个LE

12、D灯亮,表示此时可以设 置速度,退出设置时灯自动灭。当进行P参数设置时,第二个LED灯亮,表示此时可以 设置P参数,退出设置时灯自动灭。当进行I参数设置时,第三个LED灯亮,表示此时可以 设置I参数,退出设置时灯自动灭。当进行D参数设置时,第四个LED灯亮,表示此时可以 设置D参数,退出设置时灯自动灭。第三章软件算法设计软件算法是控制体系的核心,通过编写软件可以让系统 按照人的预定思路进行控制。3.1 PID控制原理此次控制采用增量式PID。通俗的讲,增量式PID控制 即是对本次及前两次的偏差进行比例积分微分控制。3.2液晶显示的程序设计此液晶屏为12864,即列有128个点,行有64个点,8

13、 个为一页。通过对各个点写1或0可以使其显示各种文字及 图形。另外还需注意写指令与写数据的区别。部分程序如下: void checkbusy()检查忙,若忙则必须等待EN=1;RW=1;RS=0;LCD=0XFF;if(BUSY);void writecode(unsigned char dat) 写指令checkbusy();EN=1;RW=0;RS=0;LCD=dat;EN=1;EN=0;void writedata(unsigned char dat) 写数据checkbusy();EN=1;RW=0;RS=1;LCD=dat;EN=1;EN=0;void LCD_set(unsigne

14、d char page,unsigned char column) 设定起始彳亍 页 歹U column=column&0 x3f; /12864 最大为 64 歹Uwritecode(page+0 xb8);writecode(column+0 x40);3.3键盘扫描的程序设计通过不断地对键盘扫描,控制器可以获取外部信息,从 而执行相应的操作,由于外部通过键盘输入信息的频率不会 很大,因此可以定时对键盘扫描,提高程序效率。void Scankey(void) 控制器P1 口对键盘扫描int i,t;P1=P1&0 xf0;t=P1&0 xf0;if(t!=0 xf0)KeyH=t&0 xf

15、0;P1=0 xff;delay(1);P1&=0 x0f;t=P1&0 x0f;if(t!=0 x0f)KeyL=t;Key=KeyH|KeyL;for(i=0;i=0)DIR=0;PWML=pwm;if(pwmout_max) out=out_max;if(outout_min) out=out_min;PWMset(out);last_out=out;通过对预设速度与当前反馈的速度进行比较,得到偏差, 对偏差进行比例积分微分控制,控制电机,逐渐使偏差为零 系统趋于稳定。第四章系统的运行经过对硬件及软件的设计,接下来便是对整个系统的调 试运行。调试是一个漫长的过程,在调试过程中会发现各种意

16、想 不到的情况,遇到问题便去寻求解决的方法,各个击破,最 终使整个系统能够正常运行。系统运行效果如下各图所示:2.控制王界面LCD2AMPIRE128X&4客参数显示如下0 0 50 2 11Ip I D3.辅助模块0 0 50 2 11Ip I D3.辅助模块第一个LED灯亮,说明此时正在修改设置速度。如果其他的LED灯亮,才艮据前面介绍的可以知道系统的当前的运行 状态。4.键盘模块键盘操作说明:inIIiI除法符虱置预定速度 单击乘法符号设置P参数 双击乘法符号设置I参数 年击乘法符号设置D参数 +卅入号*附 -参数累4.键盘模块键盘操作说明:inIIi南仙曷*除法符号为设置速度用,当单击

17、一下,再可点击加号 或者减号,其中加号为后面所按所有数字键的累加;同理, 减号也是一样。单击乘号在灯亮期间再按其他键则可设置P参数,按加 号或减号同上。单击乘号LED2灯灭,LED3亮,在此期间按其他键即 可设置I参数,设置方法同P。单击乘号等待,直到LED4亮,此时进入D参数设置, 设置方法同P。等号键为确定所设置好的参数,单击后4个灯全灭。on/c键为清除某个正在设置的参数,使其归零。第五章心得总结此次直流电机PID闭环控制课程设计已经圆满结束,在 此设计过程中,学会了许多知识。其中最主要的便是对PID 的理解:PID的控制原理,参数整定方法。身为自动化专业 的学生,PID控制应该是每个人

18、必须掌握的基本知识。何况 当前以及将来PID控制仍是一个应用及其广泛的控制。其他 的控制理论如:模糊控制,神经网络控制等都是在PID控制 理论的基础上发展起来的,学会PID是每个自动化学生应具 备的基本技能。附:/* 微机课程设计 *课题:小型直流电机PID控制*/#include#include#define LCD P0#define out_max 10000#define out_min -10000sbit EN=P2A0;sbit RW=P2A1;sbit RS=P2八2;sbit CS1=P2八3;sbit CS2=P2八4;sbit BUSY=P0A0;sbit PWM=P2八

19、6;sbit DIR=P2八7;sbit LED0=P3八4;sbit LED1=P3八5;sbit LED2=P3八6;sbit LED3=P3八7;int KeyH=0;int KeyL=0;int Key=0; int PWML=0; int KP=100; int KI=20; int KD=15; int count=0; int Key_flag=0; int flag=0; int last_out=0; int setspeed=50; int speed=0;int Now_speed3=0; int num,speed,j;unsigned char highh,highl

20、,lowh,lowl; int high=10000;/定义/定义16个按键,S3-S18的键值/0 x7b,0 xe7,0 xb7,0 x77, / ; unsigned char code number6= 0 x00, 0 x3E, 0 x51, 0 x49, 0 x45, 0 x3E , 0 x00, 0 x00, 0 x42, 0 x7F, 0 x40, 0 x00 , 0 x00, 0 x42, 0 x61, 0 x51, 0 x49, 0 x46 , 0 x00, 0 x21, 0 x41, 0 x45, 0 x4B, 0 x31 , 0 x00, 0 x18, 0 x14, 0

21、 x12, 0 x7F, 0 x10 , 0 x00, 0 x27, 0 x45, 0 x45, 0 x45, 0 x39 , 0 x00, 0 x3C, 0 x4A, 0 x49, 0 x49, 0 x30 , 0 x00, 0 x01, 0 x71, 0 x09, 0 x05, 0 x03 , 0 x00, 0 x36, 0 x49, 0 x49, 0 x49, 0 x36 , 0 x00, 0 x06, 0 x49, 0 x49, 0 x29, 0 x1E , 0 x00, 0 x00, 0 x36, 0 x36, 0 x00, 0 x00 , ;中 unsigned0 x7b,0 xe

22、7,0 xb7,0 x77, / ; unsigned char code number6= 0 x00, 0 x3E, 0 x51, 0 x49, 0 x45, 0 x3E , 0 x00, 0 x00, 0 x42, 0 x7F, 0 x40, 0 x00 , 0 x00, 0 x42, 0 x61, 0 x51, 0 x49, 0 x46 , 0 x00, 0 x21, 0 x41, 0 x45, 0 x4B, 0 x31 , 0 x00, 0 x18, 0 x14, 0 x12, 0 x7F, 0 x10 , 0 x00, 0 x27, 0 x45, 0 x45, 0 x45, 0 x

23、39 , 0 x00, 0 x3C, 0 x4A, 0 x49, 0 x49, 0 x30 , 0 x00, 0 x01, 0 x71, 0 x09, 0 x05, 0 x03 , 0 x00, 0 x36, 0 x49, 0 x49, 0 x49, 0 x36 , 0 x00, 0 x06, 0 x49, 0 x49, 0 x29, 0 x1E , 0 x00, 0 x00, 0 x36, 0 x36, 0 x00, 0 x00 , ;中 unsigned/ 0 / 1 / 2 / 3 / 4 / 5 / 6 /7 / 8 / 9 / :charcodezhong=0 x00,0 x7C,0

24、 x44,0 x44,0 x44,0 xFF,0 x44,0 x44,0 x44,0 x7C,0 x00,0 x00,0 x00,0 x00,0 x0 0,0 x00,0 x00,0 x07,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00;南 unsignedcharcodenan=0 x02,0 xFA,0 x0A,0 x5A,0 x6A,0 xCF,0 x6A,0 x5A,0 x0A,0 xFA,0 x02,0 x00,0 x00,0 x07,0 x00,0 x01,0 x01,0 x07,0 x01,0 x05,0 x04,0 x07,0 x00,0 x00;/大

25、 unsignedcharcodeda=0 x08,0 x08,0 x08,0 x08,0 xC8,0 x3F,0 xC8,0 x08,0 x08,0 x0C,0 x08,0 x00,0 x04,0 x04,0 x02,0 x01,0 x00,0 x00,0 x00,0 x01,0 x02,0 x04,0 x04,0 x00; 学 unsignedcharcodexue=0 x9C,0 x84,0 x95,0 x96,0 x95,0 xD6,0 xB4,0 x94,0 x87,0 x94,0 x8C,0 x00,0 x00,0 x00,0 x00, 0 x04,0 x04,0 x07,0 x0

26、0,0 x00,0 x00,0 x00,0 x00,0 x00; 课 unsignedcharcodeke=0 x11,0 xF6,0 x00,0 x40,0 x5F,0 x55,0 xD5,0 xFF,0 x55,0 x5F,0 x40,0 x00,0 x00,0 x03,0 x05,0 x 04,0 x02,0 x01,0 x00,0 x07,0 x01,0 x02,0 x04,0 x00; 程 unsignedcharcodecheng=0 x8A,0 x6A,0 xFF,0 x49,0 x20,0 xAF,0 xA9,0 xE9,0 xA9,0 xAF,0 x20,0 x00,0 x0

27、1,0 x00,0 x07, 0 x00,0 x04,0 x04,0 x04,0 x07,0 x04,0 x04,0 x04,0 x00; 设 unsignedcharcodeshe=0 x10,0 x11,0 xF2,0 x20,0 x10,0 x6F,0 xA1,0 x21,0 xAF,0 x68,0 x08,0 x00,0 x00,0 x00,0 x03,0 x05,0 x04,0 x04,0 x02,0 x01,0 x02,0 x04,0 x04,0 x00; 计 unsignedcharcodeji1=0 x10,0 xF1,0 x02,0 x00,0 x10,0 x10,0 x10

28、,0 xFF,0 x10,0 x10,0 x10,0 x00,0 x00,0 x07,0 x02,0 x 01,0 x00,0 x00,0 x00,0 x07,0 x00,0 x00,0 x00,0 x00; 题 unsignedcharcodeti=0 x40,0 xDF,0 x55,0 xD5,0 x5F,0 x41,0 x7D,0 x07,0 xF5,0 x05,0 x7D,0 x00,0 x06,0 x01,0 x02,0 x 03,0 x05,0 x05,0 x06,0 x05,0 x04,0 x05,0 x06,0 x00; 直 unsignedcharcodezhi1=0 x02

29、,0 x02,0 xFA,0 x4A,0 x4A,0 x4F,0 x4A,0 x4A,0 xFA,0 x02,0 x02,0 x00,0 x04,0 x04,0 x07, 0 x05,0 x05,0 x05,0 x05,0 x05,0 x07,0 x04,0 x04,0 x00; /流 unsignedcharcodeliu=0 x11,0 xA6,0 x70,0 x02,0 xD2,0 x1A,0 xD7,0 x12,0 xDA,0 x32,0 x02,0 x00,0 x01,0 x07,0 x04,0 x02,0 x01,0 x00,0 x07,0 x00,0 x07,0 x04,0 x0

30、7,0 x00; 电 unsignedcharcodedian=0 x00,0 xFC,0 x94,0 x94,0 x94,0 xFF,0 x94,0 x94,0 x94,0 xFE,0 x04,0 x00,0 x00,0 x01,0 x00, 0 x00,0 x00,0 x03,0 x04,0 x04,0 x04,0 x04,0 x06,0 x00; /机 unsignedcharcodeji2=0 x84,0 x64,0 xFF,0 x24,0 x44,0 xFE,0 x02,0 x02,0 xFF,0 x02,0 x00,0 x00,0 x01,0 x00,0 x07,0 x04,0 x

31、02,0 x01,0 x00,0 x00,0 x07,0 x04,0 x07,0 x00; TOC o 1-5 h z 闭 unsignedcharcodebi=0 x00,0 xFC,0 x11,0 x92,0 x50,0 x31,0 xFD,0 x11,0 x11,0 x01,0 xFF,0 x00,0 x00,0 x07,0 x01,0 x 00,0 x02,0 x02,0 x03,0 x00,0 x04,0 x04,0 x07,0 x00;环 unsignedcharcodehuan=0 x12,0 x12,0 xFE,0 x92,0 x41,0 x21,0 x11,0 xFF,0 x

32、11,0 x21,0 xC1,0 x00,0 x01,0 x01,0 x00, 0 x00,0 x00,0 x00,0 x00,0 x07,0 x00,0 x00,0 x00,0 x00;/控 unsignedcharcodekong=0 x44,0 x24,0 xFF,0 x14,0 x26,0 x52,0 x4A,0 xC3,0 x4A,0 x52,0 x26,0 x00,0 x04,0 x04,0 x07, 0 x00,0 x04,0 x04,0 x04,0 x07,0 x04,0 x04,0 x04,0 x00;制 unsignedcharcodezhi2=0 x18,0 xD6,0

33、x54,0 xFF,0 x54,0 x56,0 xD4,0 x00,0 xFC,0 x00,0 xFF,0 x00,0 x00,0 x03,0 x00, 0 x07,0 x00,0 x02,0 x03,0 x00,0 x04,0 x04,0 x07,0 x00;当 unsignedcharcodedang=0 x10,0 x92,0 x94,0 x90,0 x90,0 x9F,0 x90,0 x98,0 x94,0 xF2,0 x00,0 x00,0 x04,0 x04,0 x04 ,0 x04,0 x04,0 x04,0 x04,0 x04,0 x04,0 x07,0 x00,0 x00;前

34、 unsignedcharcodeqian=0 x04,0 xF4,0 x54,0 x55,0 xF6,0 x04,0 x06,0 xF5,0 x04,0 xF6,0 x04,0 x00,0 x00,0 x07,0 x01, 0 x05,0 x07,0 x00,0 x00,0 x05,0 x04,0 x07,0 x00,0 x00;定 unsignedcharcodeding=0 x04,0 x16,0 xD2,0 x12,0 x12,0 xF3,0 x92,0 x92,0 x92,0 x92,0 x06,0 x00,0 x04,0 x02,0 x01 ,0 x01,0 x02,0 x03,0

35、 x04,0 x04,0 x04,0 x04,0 x04,0 x00;/速 unsignedcharcodesu=0 x11,0 xF6,0 x00,0 x02,0 x3A,0 xAA,0 xFF,0 x6A,0 xAA,0 x3A,0 x02,0 x00,0 x06,0 x01,0 x02,0 x 05,0 x05,0 x04,0 x07,0 x04,0 x04,0 x05,0 x04,0 x00; /度 unsignedcharcodedu=0 x00,0 xFE,0 x0A,0 x8A,0 xBE,0 xAA,0 xAB,0 xAA,0 xBE,0 x0A,0 x0A,0 x00,0 x

36、06,0 x01,0 x04,0 x 04,0 x04,0 x03,0 x02,0 x03,0 x04,0 x04,0 x04,0 x00; /各 unsignedcharcodege=0 x90,0 x88,0 x44,0 xC7,0 xAA,0 x92,0 xAA,0 xA6,0 xC2,0 x40,0 x40,0 x00,0 x00,0 x00,0 x00,0 x07,0 x04,0 x04,0 x04,0 x04,0 x07,0 x00,0 x00,0 x00; 参 unsignedcharcodecan=0 x90,0 x54,0 xB4,0 x96,0 x5D,0 x34,0 x9

37、4,0 x35,0 x56,0 x94,0 x90,0 x00,0 x00,0 x04,0 x04,0 x04,0 x05,0 x05,0 x02,0 x02,0 x01,0 x00,0 x00,0 x00;数 unsignedcharcodeshu=0 xA5,0 x96,0 xCC,0 xBF,0 x96,0 xA5,0 x18,0 x67,0 x84,0 x7C,0 x04,0 x00,0 x04,0 x05,0 x02, 0 x02,0 x03,0 x04,0 x04,0 x02,0 x01,0 x02,0 x04,0 x00; 显 unsignedcharcodexian=0 x00

38、,0 x40,0 x9F,0 x15,0 xD5,0 x15,0 xD5,0 x15,0 x1F,0 xC0,0 x00,0 x00,0 x04,0 x04,0 x05, 0 x04,0 x07,0 x04,0 x07,0 x06,0 x05,0 x04,0 x04,0 x00; 示 unsignedcharcodeshi=0 x10,0 x12,0 x92,0 x52,0 x12,0 xF2,0 x12,0 x12,0 x53,0 x92,0 x10,0 x00,0 x02,0 x01,0 x00, 0 x04,0 x04,0 x07,0 x00,0 x00,0 x00,0 x00,0 x0

39、3,0 x00; 如 unsignedcharcoderu=0 x04,0 xE4,0 x9F,0 x04,0 xFC,0 x00,0 xFC,0 x04,0 x04,0 x04,0 xFC,0 x00,0 x04,0 x04,0 x02,0 x 01,0 x02,0 x00,0 x03,0 x02,0 x02,0 x02,0 x03,0 x00; 下 unsignedcharcodexia=0 x02,0 x02,0 x02,0 x02,0 x02,0 xFE,0 x12,0 x12,0 x22,0 x43,0 x02,0 x00,0 x00,0 x00,0 x00, 0 x00,0 x00

40、,0 x07,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00; 者 unsignedcharcodezhe=0 x10,0 x12,0 x92,0 xD2,0 x7F,0 x52,0 x5A,0 x56,0 xD2,0 x19,0 x10,0 x00,0 x01,0 x01,0 x00, 0 x07,0 x05,0 x05,0 x05,0 x05,0 x07,0 x00,0 x00,0 x00; 张 unsignedcharcodezhang=0 x79,0 x49,0 x49,0 xCF,0 x20,0 xFF,0 x30,0 xE8,0 x24,0 x23,0 x2

41、0,0 x00,0 x04,0 x04,0 x0 6,0 x01,0 x00,0 x07,0 x04,0 x02,0 x01,0 x02,0 x04,0 x00; 军 unsignedcharcodejun=0 x03,0 x09,0 x69,0 x59,0 x4F,0 xF9,0 x49,0 x49,0 x49,0 x49,0 x03,0 x00,0 x01,0 x01,0 x01,0 x01,0 x01,0 x07,0 x01,0 x01,0 x01,0 x01,0 x01,0 x00; /P unsignedcharcodeKkp=0 x08,0 xF8,0 x08,0 x08,0 x0

42、8,0 x08,0 xF0,0 x00,0 x20,0 x3F,0 x21,0 x01,0 x01,0 x01,0 x00, 0 x00; /I unsignedcharcodeKki=0 x00,0 x08,0 x08,0 xF8,0 x08,0 x08,0 x00,0 x00,0 x00,0 x20,0 x20,0 x3F,0 x20,0 x20,0 x00, 0 x00; /D unsignedcharcodeKkd=0 x08,0 xF8,0 x08,0 x08,0 x08,0 x10,0 xE0,0 x00,0 x20,0 x3F,0 x20,0 x20,0 x20,0 x10,0

43、x0F,0 x00;void checkbusy() 检查忙,若忙则必须等待(EN=1;RW=1;RS=0;LCD=0XFF;if(BUSY);void writecode(unsigned char dat) 写命令(checkbusy();EN=1;RW=0;RS=0;LCD=dat;EN=1;EN=0;void writedata(unsigned char dat) 写数据(checkbusy();EN=1;RW=0;RS=1;LCD=dat;EN=1;EN=0;void LCD_set(unsigned char page,unsigned char column)/设定起始彳亍 页

44、 歹0 (column=column&0 x3f; /12864 最大为 64 歹0writecode(page+0 xb8);writecode(column+0 x40);void LCD_clear() /清屏(unsigned char i,j;CS2=0;CS1=0;for(i=0;i8;i+)(for(j=0;j64;j+) (LCD_set(i,j);writedata(0);void LCD_write_char(unsigned char screen,unsigned char page,unsigned char line,unsigned char *hz)(unsig

45、ned char i,j;if(screen=0)(CS1=1;CS2=0; /leftLCD_set(page,line);for(i=0;i8;i+)writedata(hzi);LCD_set(page+1,line);for(j=0;j8;j+)writedata(hzj+8);if(screen=1)(CS1=0; /rightCS2=1;LCD_set(page,line);for(i=0;i8;i+)writedata(hzi);LCD_set(page+1,line);for(j=0;j8;j+)writedata(hzj+8);void LCD_write_var(unsig

46、ned char screen,unsigned char page,unsigned char line,int num) /显示单个数字(unsigned char i;if(screen=0)(CS1=1;CS2=0; /leftLCD_set(page,line);for(i=0;i6;i+)writedata(numbernumi);if(screen=1)(CS1=0; /rightCS2=1;LCD_set(page,line);for(i=0;i6;i+)writedata(numbernumi);void LCD_write_num(unsigned char screen,

47、unsigned char page,unsigned char line,int dat) / 显示三位数 (unsigned char i,tab3=0;tab0=dat/100;tab1=dat%100/10;tab2=dat%100%10;for(i=0;i3;i+)LCD_write_var(screen,page,line+i*6,tabi);void LCD_write_chinese(unsigned char screen,unsigned char page,unsigned char line,unsigned char *hz) 显示汉字屏区页歹0字库 unsigned

48、 char i,j;if(screen=0)CS1=1;CS2=0; /leftLCD_set(page,line);for(i=0;i12;i+)writedata(hzi);LCD_set(page+1,line);for(j=0;j12;j+)writedata(hzj+12);if(screen=1)CS1=0; /rightCS2=1;LCD_set(page,line);for(i=0;i12;i+)writedata(hzi);LCD_set(page+1,line);for(j=0;j12;j+)writedata(hzj+12);void Displayl(void)(int

49、 i;delay(500);LCD_write_chinese(0,0,10,zhong);delay(100);LCD_write_chinese(0,0,40,nan);delay(100);LCD_write_chinese(1,0,5,da);delay(100);LCD_write_chinese(1,0,35,xue);delay(100);delay(500);LCD_write_chinese(0,2,0,ke);delay(100);LCD_write_chinese(0,2,16,cheng);delay(100);LCD_write_chinese(0,2,32,she)

50、;delay(100);LCD_write_chinese(0,2,48,ji1);delay(100);LCD_write_chinese(1,2,0,ke);delay(100);LCD_write_chinese(1,2,16,ti);delay(100);delay(500);LCD_write_chinese(0,4,0,zhi1);delay(100);LCD_write_chinese(0,4,16,liu);delay(100);LCD_write_chinese(0,4,32,dian);delay(100);LCD_write_chinese(0,4,48,ji2);del

51、ay(100);LCD_write_chinese(1,4,0,bi);delay(100);LCD_write_chinese(1,4,16,huan);delay(100);LCD_write_chinese(1,4,32,kong);delay(100);LCD_write_chinese(1,4,48,zh i2) ;delay(100); delay(500);LCD_write_chinese(0,6,48,she);delay(100);LCD_write_chinese(1,6,0,ji1);delay(100);LCD_write_chinese(1,6,16,zhe);de

52、lay(100);LCD_write_chinese(1,6,32,zhang);delay(100);LCD_write_chinese(1,6,48,jun);delay(100);delay(500);for(i=0;i10;i+)delay(100);void Display2(void)(LCD_write_chinese(0,0,0,ge);delay(100);LCD_write_chinese(0,0,16,can);delay(100);LCD_write_chinese(0,0,32,shu);delay(100);LCD_write_chinese(0,0,48,xian

53、);delay(100);LCD_write_chinese(1,0,0,shi);delay(100);LCD_write_chinese(1,0,16,ru);delay(100);LCD_write_chinese(1,0,32,xia);delay(100);LCD_write_chinese(0,3,0,she);delay(100);LCD_write_chinese(0,3,14,ding);delay(100);LCD_write_var(0,3,26,10);delay(100);LCD_write_chinese(0,6,0,dang);delay(100);LCD_wri

54、te_chinese(0,6,14,qian);delay(100);LCD_write_var(0,6,26,10);delay(100);LCD_write_char(1,2,20,Kkp);delay(100);LCD_write_var(1,3,30,10);delay(100);LCD_write_char(1,4,20,Kki);delay(100);LCD_write_var(1,5,30,10);delay(100);LCD_write_char(1,6,20,Kkd);delay(100);LCD_write_var(1,7,30,10);delay(100);void LC

55、D_init()(writecode(0X3f);/显示开关关writecode(0XC0);/修 改显示起始行writecode(0XB8);/修改页地址,x 地址writecode(0X40);修改列地址,y地址void delay(unsigned int a)(unsigned int i,j;for(i=0;ia;i+)for(j=0;j200;j+);void Scankey(void)(int i,t;P1=P1&0 xf0;t=P1&0 xf0;if(t!=0 xf0)(KeyH=t&0 xf0;P1=0 xff;delay(1);P1&=0 x0f;t=P1&0 x0f;if

56、(t!=0 x0f)(KeyL=t;Key=KeyH|KeyL;for(i=0;i0;c-) for(b=150;b0;b-) for(a=16;a0;a-); void Keychuli(void) (unsigned int t=30000; int n1=1000; int n2=1000; LED0=0; LED1=0; LED2=0; LED3=0; Key_flag=1; Scankey();if(Key=10) / 设定速度 ( LED0=1; while(!(n1=0) ( Scankey(); if(Key=15) / + ( delay1s(); while(!(n2=0)

57、 (Scankey(); delay(150);if(Key=14) (n2=0;n1=0;Key=0;确定参数else if(Key=13) (setspeed=0;Key=0;参数清零else if(Key9) Key=0; setspeed=setspeed+Key;Key=0;if(setspeed999) setspeed=999;LCD_write_num(0,3,34,setspeed);else if(Key=12&setspeed!=0)/ -(delay1s();while(n2-)(Scankey();delay(150);if(Key=14) (n2=0;n1=0;Ke

58、y=0;else if(Key=13) (setspeed=0;Key=0;参数清零else if(Key9) Key=0;setspeed=setspeed-Key;Key=0;if(setspeed999) setspeed=999;LCD_write_num(0,3,34,setspeed);LCD_write_num(0,3,34,setspeed);else if(Key=11) /设置 PID(delay(200);LED1=1;while(t-) ( Scankey();LED1=0;delay(200);if(Key!=11) 单击设置 P(LED1=1;while(!(n1=

59、0)(Scankey();if(Key=15) / +(delay1s();while(!(n2=0)(Scankey();delay(150);if(Key=14) n2=0;n1=0;Key=0;else if(Key=13) KP=0;Key=0; 参数清零 else if(Key9) Key=0;KP=KP+Key;Key=0;if(KP999) KP=999;LCD_write_num(1,3,38,KP);else if(Key=12&KP!=0) / -delay1s();while(n2-)Scankey();delay(150);if(Key=14) n2=0;n1=0;Key=0;else if(Key=13) KP=0;Key=0; 参数清零 else if(Key9) Key=0;KP=KP-Key;Key=0;if(KP999) KP=999;LCD_write_num(1,3,38,KP);LCD_write_num(1,3,38,KP);else if(Key=11)delay(200);LED2=1;while(t-) Scankey();LED2=0;Scankey();delay(200);

温馨提示

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

评论

0/150

提交评论