当前位置:首页 > PID控制PWM调节直流电机速度
**学院毕业设计(论文)
n?60 r/min v=
N?t从这里可以看出速度
v
的误差主要是由圆盘边缘上的凹槽数的多少决定的,为了减
少系统误差应尽量提高凹槽的数量,在本次设计中取凹槽数N为120,采样时间t为0.5s,则速度计算具体程序流程如图4.2所示。
计算v=(r/0.5)*60t=0.5s?Y计算r=n/120N
返回 图4.2 测速程序流程
4.2 程序流程
4.2.1 主流程图
在一个完整的系统中,只有硬件部分是不能完成相应设计任务的,所以在该系统中软件部分是非常重要的,按照要求和系统运行过程设计出主程序流程如图4.3所示。
设置界面显示N开始初始化调用清屏子程序开始界面显示设置键按下?Y调用清屏子程序
N启动键按下?Y根据设置计算参数21 **学院毕业设计(论文)
图4.3 主程序流程
4.2.2 键盘程序程序流程
键盘中断程序是用来设在系统相应参数和控制系统进入相应的运行状态,其程序流程图如图4.4所示。
延时去抖动P1口低四位置1读P1口低四位数据到KEYLP1口高四位置1读P1口高四位数据到KEYHKEYL、KEYH相与为KEYKEY=0XEE ?NKEY=0XED ?NKEY=0XEB ?NKEY=0XE7 ?NKEY=0XDE ?NKEY=0XDD ?NKEY=0XDB ?NKEY=0XD7 ?NKEY=0XBE ?NKEY=0XBD ?YYYYYYYY22 数字键0数字键1数字键2数字键3数字键4数字键5数字键6数字键7数字键8数字键9YY**学院毕业设计(论文)
图4.4 键盘程序流程
4.2.3 定时程序流程
在本系统中定时器T0中断子程序是用来控制电机运行时间和进行速度计算和
PID 运算,其程序流程如图4.5所示。
图4.5 定时程序流程
23
脉冲计数时间=0.5s?Y速度计算PID运算各变量重新赋值显示数据刷新定时器T0赋初值RETIN**学院毕业设计(论文)
4.2.4 显示程序流程
显示模块是实现人机对话的重要部分,在这里选用128×64LCD显示器可实现对汉字和字符的显示,该显示器的引脚功能在上面已经做了说明,下面介绍
128×64LCD的相关指令。 (1)读取状态字
D/I R/W 0 1 DB7 BUSY DB6 0 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 ON/OFF RST 当R/W=1,D/I=0时,在E信号为高的作用下,状态分别输出到数据总线上。状态字是了解模块当前工作状态的唯一的信息渠道,在每次对模块操作之前,都要读出状态字判断BUSY是否为“0”。若不为“0”,则计算机需要等待,直至BUSY =0为止。
(2)显示开关设置
D/I 0 R/W 0 DB7 0 DB6 0 DB5 1 DB4 1 DB3 1 DB2 1 DB1 DB0 1 D D=1:开显示;D=0关显示。 (3)显示起始行设置
D/I 0 R/W 0 DB7 1 DB6 1 DB5 DB4 DB3 DB2 DB1 DB0 显示起始行(0~63) 指令表中DB5~DB0为显示起始行的地址,取值在0~3FH(1~64行)范围内,它规定了显示屏上最顶一行所对应的显示存储器的行地址。
(4)页面地址设置
D/I 0 R/W 0 DB7 1 DB6 0 DB5 1 DB4 1 DB3 1 DB2 DB1 DB0 Page(0~7) 页面地址是DDRAM的行地址。8行为一页,DDRAM共64行即8页,
DB2-DB0表示0-7页。 (5)列地址设置
24
共分享92篇相关文档