logo资料库

电机速度控制PIC课设报告.doc

第1页 / 共22页
第2页 / 共22页
第3页 / 共22页
第4页 / 共22页
第5页 / 共22页
第6页 / 共22页
第7页 / 共22页
第8页 / 共22页
资料共22页,剩余部分请下载后查看
4、结论
《PIC16 系列单片机 C 程序 设计与 PROTEUS 仿真》 课程设计 题 目:电 机 速 度 控 制 学生姓名: 学 号: 专业班级: 指导教师: 二○一一年 6 月 7 日
目 录 1.课程设计···············································02 2.课程设计题目描述和要求·································02 3.课程设计具体内容 3.1 总体方案设计·········································02 3.2 硬件设计·············································02 3.3 软件设计············································ 06 4.结论 4.1 测试结果·············································09 4.2 问题及解决方法·······································09 4.2 感想及经验···········································10 5.参考文献 ··············································11 6.附录 1
1.课程设计目的 本课程设计在《PIC 单片机》课程的基础上,通过硬件设计与软件编程与调 试的实践,进一步掌握 PIC 单片机的应用方法,熟练 PIC 单片机的 C 程序的编 写与调试,是毕业设计前的一次重要的实践,为今后走上工作岗位打下坚实的单 片机应用基础。在本课设中,具体表现在: 1) 熟练掌握 DS1307、LCD1602 和 PIC16F887 中捕捉、AD 与 PWM 控制功能的使 用; 2) 学会用 C 语言编写一个完整的实用程序,掌握程序的设计方法和思路,拓展 编程思维; 3) 通过分析需求、设计原理图、选用元器件、编程、接线、调试、撰写报告 等步骤,了解设计开发一个产品的过程,积累经验。 2.课程设计题目描述和要求 本课设我设计的题目是《电机速度控制》,通过在 PROTEUS 仿真及在实物板 上调试,运行正确。研究的内容及要求如下: 1)利用 LCD,显示电机期望转速与实际转速,PWM 占空比与转速差; 2)能够通过按键的输入调整增大或减小转速差,并通过按键挂档; 3)通过 AD 转换进行转速微调; 4)通过 LED 提示电机速度不稳; 3.课程设计具体内容 3.1 总体方案设计 本课程设计利用 PIC16F887 通过将电位器电压值进行 A/D 转换,从而对转速 给定值进行采样;同时根据脉宽调制原理利用单片机调整输出 PWM 的高电平时间 控制直流电机的转速;电机转速通过利用单片机的 CCP 捕捉模块捕捉光电遮蔽器 产生的脉冲信号,进行计算获得转速,同时将测得的转速与给定值进行比较,对 电机的转速进行快速调整,控制电机速度在一定误差范围内;按键模块则实现输 入给定速度误差范围,同时 LCD 能够实时显示电机的转速,实现良好的人机交互。 3.2 硬件电路设计原理与实现 整个系统硬件电路包括5个主要模块:LCD 显示模块、按键输入模块、微型 直流电机 PWM 控制模块、带光电遮蔽器的电机测速模块。 3.2.1 LCD 显示模块 2
图 3.2.1 课设板所用的 LCD 型号为 YB1602A,接线如图 3.2.1 所示。图中采用 4 位 数据线接线方式,是为了节省单片机的 IO 口。从图中可以知道,要使用该 LCD 时,短路插 P38、P22 的短路插(除 RD7 外)均要插上。如要使用背光控制,可 将 P22 的短路插 8 插短接,如不用背光,该短路插不接。表 1 为 LCD YB1602A 的 引脚功能说明。 引脚名 RS R/W E DB7~DB0 功能 命令/数据选择:1:数据,0:命令 读/写选择:1:读,0:写 数据使能:下降沿送入有效 数据线,如用 4 位数据,使用高 4 位 表 1 LCD YB1602A 引脚功能表 上电后要延时 15ms 后,才能进行初始化,LCD 初始化过程详见[1]。 3.2.2 按键输入模块 采用课设板上 4×4 按键中的三个普通按键 S1、S5、S9 即可,三个按键对应 的功能见表 2,接线如图 3.2.2 所示,其中 P45 须短接到地,P20 的 1~3 短路 插短接,用到 RB0~RB2 共 3 个引脚,编程时利用 RB0/INT 中断与 RB 电平变化 中断进行按键处理。 3
图 3.2.2 功能 进入调整模式,或者退出调整模式 每按一次,则数值增 1 每按一次,则数值减 1 表 2 按键功能表 按键 S1(SET) S5(INC) S6(DEC) 3.3.3 微型直流电机 PWM 控制模块 图 3.3.3 本模块的接线图如图 3.3.3 所示,利用单片机输出的 PWM 波形控制 T3 的通 断,对 VCC 电压进行斩波,通过改变 PWM 占空比从而改变直流电机的电枢电压, 从而改变电机转速。为了防止 T3 断开时电机产生的过电流使板上器件烧毁,在 电机两端反并联了二极管 D4。 本设计采用 CCP2 模块即通过 RC1 输出 1kHz 的 PWM 波控制电机转速,P26 需 将 1 用短路插短接。 4
3.3.4 电机测速模块 图 3.3.4 电机测速模块如图 3.3.4 所示,其中 ST159-08 为一直射式光电传感器,即 光电遮断器。在电机转轴上装有遮挡片,当光电传感器发射的红外线被遮挡时, 输出电平发生变化,循环如此,形成脉冲。单片机通过检测光电遮断器输出脉冲 的周期或对脉冲计数来计算转动物体的速度。 本设计利用 PIC16F887 的 CPP 模块对输出脉冲每 4 个脉冲捕捉一次来计算电 机的转速。 除以上4个模块外,还有一个调整转速给定的电位器,本设计采用 AN0 对给 定电压进行 A/D 转换,采样转速给定值,其接线图如下所示: 使用时,需将 P11 的 1 用短路插短接。 5
R4(1) R4 330 U1 1 2 6 5 4 OPTOCOUPLER-NPN RC2 R3 100k RC1 R1 1k D1 1N4148 + 8 8 8 . RB0 RB1 RB2 RB3 R9 1kR10 1kR11 1kR12 1k LCD2 LM016L S S V D D V E E V S R W R E 0 D 1 D 2 D 3 D 4 D 5 D 6 D 7 D 1 2 3 4 4 D R 5 5 D R 6 6 D R 7 8 9 0 1 1 0 1 D R 2 1 1 D R 3 2 1 D R 4 3 1 D R RC1 RC2 A B C D RV2 10k % 5 1 RA0 M Q1 TIP122 RC1 RC2 RD0 RD1 RD2 RD3 RD4 RD5 RD6 15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30 8 9 10 RA0/AN0/ULPWU/C12IN0- RA1/AN1/C12IN1- RA2/AN2/VREF-/CVREF/C2IN+ RA3/AN3/VREF+/C1IN+ RA4/T0CKI/C1OUT RA5/AN4/SS/C2OUT RA6/OSC2/CLKOUT RA7/OSC1/CLKIN RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RC2/P1A/CCP1 RC3/SCK/SCL RC4/SDI/SDA RC5/SDO RC6/TX/CK RC7/RX/DT RD0 RD1 RD2 RD3 RD4 RD5/P1B RD6/P1C RD7/P1D RE0/AN5 RE1/AN6 RE2/AN7 U2 RE3/MCLR/VPP 1 RA0 2 3 4 5 6 7 14 13 RB0 33 RB1 34 RB2 35 RB3 36 37 38 39 40 LED-YELLOW RB0/AN12/INT RB1/AN10/C12IN3- RB2/AN8 RB3/AN9/PGM/C12IN2- RB4/AN11 RB5/AN13/T1G RB6/ICSPCLK RB7/ICSPDAT R13 1k PIC16F887 NET=RC9 3.3 软件设计 3.3.1 主程序流程图 开 始 初 始 化 A / D 转 换 L C D 显 示 转 速 静 差 超 过 允 许 值 D N Y P W M 高 电 平 时 间 调 整 延 时 K E Y . F L A G = = 1 ? Y 6 s 内 有 操 作 ? Y 相 应 的 L C D 显 示 N N 图 7 硬件原理图 3.3.2 各部分功能实现 3.3.2.1 按键功能程序流程图 本设计是通过利用 RB0/INT 中断 与 RB 电平变化中断来实现按键模块的 相应功能。为了达到上电后随时按下 N SET 键便进入 DN 修改与挂档模式,通 过 INC 键和 DEC 键来分别实现转速差递 增和递减功能与电机速度挂档,同时又 得保证在未按下 SET 键之前,按其他键 不会产生反应,所以将 B 口电平变化中 断使能在 INT 中断子程序中开启,这样 就实现了上述情况。除此之外,按下 SET 键后 6 秒内若未进行操作,也应退 出 DN 修改模式,所以应增设一个 TMR0 计时器,按键中断子程序流程图如图 3.3.2.2。 3.3.2.2 PWM 输出程序设计 本设计采用 CCP2 模块从 RC1 引脚输出 1kHz(即周期为 1000 s )的 PWM 波, 预分频比用 1:4,晶振为 4MHz,则 6
1000 ( PR  2 249   PR 2 1) 4 0.25 4     假设高电平时间为 ,HT 则由 CCPR2L 及 CCP2CON 的 5、4 两位共 10 位的 X 值为 HT ,时间单位为 s 。 而占空比 D T H  10 改变 PWM 的高电平时间,只需对 CCPR2L 和 CCP2CON 的 5、4 两位重新赋值即 可: N INTF=1 Y KEY.SET+1; KEY.FLAG置1; RBIE置1; 定时器0开始计时; INTF=0; N KEY.SET>1 Y KEY.SET、 KEY.FLAG、 RBIE都清零 中断子程序 RBIF=1 KEY.FLAG=1 Y RB3=0 N Y KEY.DEC=1; 计时清零 指向ND[T] T++ RB2=0 N Y RB1=0 N Y KEY.DEC=1; 计时清零 KEY.INC=1; 计时清零 RBIF=0 返回 TOIF=1 N Y TOIF=0; T0N++; N 超时否 Y KEY.FLAG=0; KEY.SET=0; T0IE=0; CCPR2L=(X>>2) & 0x0FF; CCP2CON=((X<<4)&0x30)|0x0C; 具体程序详见附录。 7
分享到:
收藏