《电机转速测量系统设计(光电传感器)课程设计报告.docx》由会员分享,可在线阅读,更多相关《电机转速测量系统设计(光电传感器)课程设计报告.docx(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、.传感器原理与应用课程设计1、题目:电机转速测量系统设计(光电转速传感器)院校:专业:姓名:学号:班级: 指导老师:二 0 一六 年 六 月word 教育资料.目录第一章 传感器原理与应用课程设计任务书41.1 总要求41.2 总任务41.3 设计题目41.4 设计内容41.5 设计进度或计划41.6 设计说明书包括的主要内容4第二章 系统介绍5第三章 系统设计方案53.1 方案的设计与选择53.1.1 转速测量的方法53.1.2 整体控制方式63.1.3 传感器模块63.2 方案描述7第四章 系统理论分析与计算84.1 信号采集电路的分析84.2 电机转速的计算9第五章 硬件电路设计95.1
2、 单片机模块95.1.1 STC89C52 单片机简介95.1.2 时钟电路115.1.3 复位电路115.2 显示电路12第六章 软件设计126.1 系统总体设计126.2 中断子程序设计136.3 定时子程序设计136.4 显示子程序设计14第七章 测试方案157.1 电路调试15word 教育资料.7.2 软件调试15第八章 心得体会17参考文献17附录19附录一 电路仿真图19附录二 程序清单19附录三 实物图25word 教育资料.第一章 传感器原理与应用课程设计任务书1.1 总要求课设题目尽量侧重于传感器检测模块设计,主要是绘制系统原理图、制作传感部分前端电路、实验调试及分析、撰写
3、实验报告等。电路图:传感检测/接口电路/控制电路、单片机检测系统电路(若题目要求, 则应加上)。程序:主程序、部分子程序(若题目要求,则应加上)。说明书:按规范撰写。1.2 总任务针对总要求进行原理及方案论证、模块设计、接口电路设计、焊接或插接与调试、精度分析以及撰写报告等工作。1.3 设计题目电机转速测量系统设计1.4 设计内容实现全部要求的实物功能,性能稳定,外形美观。1.5 设计进度或计划1、准备及查阅资料一天2、方案设计及论证(总体方案)二天3、硬件设计三天4、程序设计三天5、实验室调试及结果分析二天6、整理报告及准备答辩三天1.6 设计说明书包括的主要内容1、封面2、目录3、设计任务
4、书4、正文(可按下列内容撰写、仅供参考)(1) 摘要:可包括系统工作原理的介绍等。(2) 方案设计及论证:可按模块进行方案设计与论证,各模块设计中应包括适当的精度分析及选型等。(3) 实验或系统调试:可包括实验调试工具仪器、实验结果及适当的分析等。(4) 心得体会。(5) 主要参考文献。word 教育资料.第二章 系统介绍转速的测量原理有两种:对于较高的转速,记录单位时间内的转速或角 度,即频率测量法;对于较低的转速,记录每转所用的时间或没特定角度多 用的时间,即周期测量法。因为本系统测量对象为直流电动机,转速较高, 所以选择频率测量法,即在固定的测量时间内,对传感器产生的脉冲进行计 数,从而
5、算出实际转速。假设测量时间为Tc(min),脉冲个数为 P,光码盘的小孔个数为 m,则可算出实际转速 N(r/min)为:N=60 n/(PTc)当采样周期为 1s,光码盘开孔数为 4 个时,其实际转速 N 为:N=60 P/ 4本设计中采用光电传感器采集信号,方便了信号的采集,也提高了测量的精度,但容易受外界光线和环境的干扰,编码盘与电机转轴的固定连接,都是本设计的难点。用 1602LCD 的数码管以动态扫描清晰的显示了实时的转速,程序的编写成了本设计的重点。第三章 系统设计方案本系统主要由单片机模块、传感器模块以及显示模块组成,下面分别论述这几个模块的选择。3.1 方案的设计与选择3.1.
6、1 转速测量的方法方案一:测周期法(T 法)它是测量光电脉冲发生器所产生的相邻两个转速脉冲信号的时间来确定转速。相邻两个转速脉冲信号时间的测量是采用对已知高频脉冲信号进行计数来实现的。在极端情况下,时间的测量会产生 1 个高频脉冲周期,因此T 法在被测转速较低(相邻两个转速脉冲信号时间较大 )时,才有较高的测量精度,所以 T 法适合于低速测量。方案二:测频法(M 法)在规定的检测时间内,检测光电脉冲发生器所产生的脉冲信号的个数来确定转速。虽然检测时间一定,但检测的起止时间具有随机性,因此 M 法测量转速在极端情况下会产生 1 个转速脉冲的误差。当被测转速较高或电机转动一圈发出的转速脉冲信号的个
7、数较大时,才有较高的测量精度,因此 M 法适合于高速测量。方案三:频率/周期法(M/T 法)word 教育资料.它是同时测量检测时间和在此检测时间内光电脉冲发生器所产生的转速脉 冲信号的个数来确定转速。由于同时对两种脉冲信号进行计数,因此只要“同时性”处理得当,M/T 法在高速和低速时都具有较高的测速精度。由于M/T 法可在整个速度范围内获得高分辨率,可在不损失精度和分辨率的前提下获得快速响应。由于这次使用的是小马达,所以我选择使用方案二,测频法。3.1.2 整体控制方式方案一:采用集成电路控制方式光电传感器感受到光信号并转换成电信号,此时的电信号为模拟信号,经信号处理电路滤除干扰,并转换成能
8、被计数器接受的方波信号或脉冲信号,再经过计数、译码、显示电路,由数码管显示转速。可实现功能,但电路较复杂,系统调试也较繁杂。方案二:采用单片机模块控制方式单片机模块接收脉冲信号,进行计数、处理,把数据传送给 LCD 显示模块, 达到实时检测和反馈的功能。基于单片机的转速测量系统,具有硬件电路简单, 程序简单和运算速度快,测速范围广,抗干扰性能好的特点。综合以上两种方案,选择方案二。3.1.3 传感器模块方案一:采用红外传感器红外传感器是利用红外线的物理性质来进行测量的传感器,为反射式。红外线传感器测量时不与被测物体直接接触,因而不存在摩擦,并且有灵敏度高,反应快等优点。但红外线的发射、接收不好
9、控制,而且容易受到外界光线和环境的干扰。方案二:采用霍尔传感器霍尔传感器是根据霍尔效应原理制成的霍尔元件。传感器的定子上有 2 个互相垂直的绕组 A 和 B,在绕组的中心线上粘有霍尔片HA 和HB,转子为永久磁钢,霍尔元件 HA 和 HB 的激励电机分别与绕组 A 和 B 相连,它们的霍尔电极串联后作为传感器的输出。采用霍尔传感器在信号采样的时 图 1 霍尔转速传感器结构图候,会出现采样不精确,因为它是靠磁性感应才采集脉冲的,使用时间久了会出现磁性变小,影响脉冲的采样精度。方案三:采用光电传感器word 教育资料.光电传感器是通过把光强度的变化转换成电信号的变化来实现控制的。光电传感器在一般情
10、况下,有三部分构成,它们分为:发送器、接收器和检测电路。发送器对准目标发射光束,发射的光束一般来源于半导体光源,发光二极管(LED)、激光二极管及红外发射二极管。光束不间断地发射,或者改变脉冲宽度。接收器有光电二极管、光电三极管、光电池组成。在接收器的前面,装有光学元件如透镜和光圈等。在其后面是检测电路,它能滤出有效信号和应用该信号。此外,光电开关的结构元件中还有发射板和光导纤维。三角反射板是结构牢固的发射装置。它由很小的三角锥体反射材料组成,能够使光束准确地从反射板中返回,具有实用意义。图2 光电传感器原理示意图综合以上 3 种方案,选择方案三。3.1.4 显示模块方案一:用数码管动态显示,
11、可以显示数字,但显示的内容有限,接线繁多, 且不能连续显示字符,有一定局限性。方案二:采用LED 点阵显示,能动态扫描,变换颜色,但体积比较大,需要很多点阵组合使用,显示较为繁琐,但需要的 I/O 资源较多,影响总体布局。方案三:采用 LCD 液晶显示,显示内容最丰富,不仅编程灵活,显示可靠, 而且电路简单,易与单片机连接,明亮对比度可调,显示非常清晰,是一种非常好的方案。综合以上,选择方案三。3.2 方案描述光电传感器信号STC89C52显示电路单片机本设计主要用 STC89C52 单片机作为控制核心,由光电传感器、LCD 动态显示屏构成。STC89C52 单片机接收光电传感器传来的脉冲信号
12、,单片机根据外部中断,以及内部定时器进行记数计算出电机转速送到 LCD 显示,使能实时读出电机的转速。图 3 系统总体方框图word 教育资料.第四章 系统理论分析与计算4.1 信号采集电路的分析采集光信号的电路原理图如图 4 所示:图 4采集光信号的电路原理图在图中,U3 为槽型光耦,它的左端是发光二极管,因为发光二极管的驱动电流为 520mA,所以设置 R2 的值为 500,同理设置,光电接收晶体管的下拉电阻即 R3 为 10K。光耦的输出端用三极管进行电压放大,为使 T1 输出的电平为 TTL 电平,将 R5 和 R4 的阻值设定为 1K。该部分设计采用了红外光电传感器,进行非接触式检测
13、。当有物体挡在红外光电发光二极管和高灵敏度的光电晶体管之间时,传感器将会输出一个低电平, 而当没有物体挡在中间时,则输出高电平,从而形成一个脉冲。系统在光电传感器收发端之间加上电动机,并在电动机转轴上安装一转盘。在这个转盘的边沿处挖若干个圆形通光孔,把传感器的检测部分放在圆孔的圆心位置。每当转盘旋转时,传感器将输出若干个脉冲。把这些脉冲通过放大整形成单片机可以识别的TTL 电平,即可计算出轮子的转速。转盘的圆孔的个数决定了测量的精度,个数越多,精度越高。这样就可以再单位时间里尽可能多地得到脉冲数。从而避免了因为两个过孔之间距离过大,而正好在过孔之前或者是在下一个过孔之前就停止了,造成较大的误差
14、。设计中转盘的圆孔的实际个数受到技术限制。为了达到预定的效果设计,在转盘过孔的设计上采用 20 个过孔,再通过软件对采集的数据进行计算。word 教育资料.4.2 电机转速的计算图 5光码盘在编程时让单片机每隔一秒记录一次接收到的脉冲总数,然后根据如下计算电机的转速n:电机转速T:采样周期n=60 N/(PT)(1)N:采样周期 T 内光脉冲个数P:光码盘开孔的总数当采样周期为 1 秒时,转速n=60 f/P(2)f:1 秒内采集到的光脉冲个数第五章 硬件电路设计5.1 单片机模块单片微型计算机简称单片机,它把组成微型计算机的各个功能部件:中央处理器 CPU、随机存取存储器RAM、只读存储器R
15、OM、可编程存储器EPROM、并行及串行输入输出 I/O 接口电路、定时器/计数器、中断控制器等部件集成在一块半导体芯片上,构成一个完整的微型计算机。5.1.1 STC89C52 单片机简介STC89C52 是 STC 公司生产的一种低功耗、高性能 CMOS8 位微控制器,具有8K 在系统可编程 Flash 存储器。STC89C52 使用经典的 MCS-51 内核,但做了很多的改进使得芯片具有传统 51 单片机不具备的功能。在单芯片上,拥有灵巧的 8位 CPU 和在系统可编程 Flash,使得 STC89C52 为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能:8k 字节
16、 Flash,512 字节 RAM,32 位 I/O 口线,看门word 教育资料.狗定时器,内置 4KB EEPROM,MAX810 复位电路,3 个 16 位定时器/计数器,4个外部中断,一个 7 向量 4 级中断结构(兼容传统 51 的 5 向量 2 级中断结构),全双工串行口。另外 STC89C52 可降至 0Hz 静态逻辑操作,支持 2 种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率 35MHz,6T/12T 可选。图
17、6单片机管脚图VCC:供电电压GND:接地P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。当P1 口的管脚第一次写 1 时,被定义为高阻输入。P0 能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能接收输出 4TTL 门电流。P1 口管脚写入 1 后,被内部上拉为高,可用作输入,P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接收, 输出 4 个 TTL 门电流,
18、当P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时,P2 口输出地址的高八位。P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电流。当 P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入, 由于外部下拉为低电平,P3 口将输出电流(ILL)这是由于上拉的缘故。P3 口也可作为 STC89C52 的一些特殊功能口。word 教育资料.时钟是单片机的心脏,单片机各功能部件的运行
19、都是以时钟频率为基准,有条不紊地一拍一拍地工作。因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统稳定性。常用的时钟电路有两种方式,一种是内部时钟方式,另一种是外部时钟方式。图 7单片机晶振电路图 8单片机复位电路5.1.2 时钟电路单片机内部有一个用于构成振荡器的高增益反向放大器,该高增益反向放大器的输入端为芯片引脚 XTAL1,输出端为引脚 XTAL2这两个引脚跨接在石英晶体振荡器和微调电路,就构成一个稳定的自激振荡器。电路中的电容 C1 和 C2 典型值通常选择 30pF 左右,该电容大小会影响振荡器频率的高低,振荡器的稳定性和起振的快速性。晶振的振荡器频率的范围通常
20、在 1.212MHz 之间,晶体的频率越高,则系统得时钟频率也就变高,单片机的运行速度也就越快。但反过来运行速度快,对存储器的速度要求就高。对印刷电路板的工艺要求也高,即要求浅间的寄生电容要小;晶体和电容应尽可能安装得与单片机芯片靠近,以减少寄生生活,更好的保证振荡器稳定,可靠地工作。5.1.3 复位电路为确保微机系统中电路稳定可靠工作,复位电路是必不可少的一部分,复位电路的第一功能是上电复位。一般微机电路正常工作需要供电电源为5V5%,即4.755.25V。由于微机电路是时序数字电路,它需要稳定的时钟信号,因此在电源上电时,只有当 VCC 超过 4.75V 低于 5.25V 以及晶体振荡器稳
21、定工作时,复位信号才被撤除,微机电路开始正常工作。单片机在启动时都需要复位,以使 CPU 及系统各部件处于确定的初始状态, 并从初态开始工作。89 系列单片机的复位信号是从 RST 引脚输入到芯片内的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如果 RST 引脚上有一个高电平并维持 2 个机器周期(24 个振荡周期)以上,则 CPU 就可以响应word 教育资料.并将系统复位。单片机系统的复位方式有:手动按钮复位和上电复位。5.2 显示电路LCD1602 液晶显示模块可以和单片机 STC89C52 直接接口,电路如图所示。图 9 显示电路1602 字符型 LCD 通常有 14
22、条引脚线或 16 条引脚线的 LCD,多出来的 2 条线是背光电源线。液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。3.3V 或5V 的工作电压,对比度可调。内含复位电路,可提供各种控制命令, 如:清屏、字符闪烁、光标闪烁、显示移位等多种功能。有80字节显示数据存储器 DDRAM,并建有192个5X7点阵的字型的字符发生器 CGROM,有8个可由用户自定义的5X7的字符发生器 CGRAM。第六章 软件设计图 10LCD1602 管脚图6.1 系统总体设计单片机按编入的程序运行,开始后对显示液晶的初始化及中断定时的初始化,为后续程序
23、做好准备,初始化好后开始检测定时是否到达 1 秒,等到达 1word 教育资料.秒后便取出计数脉冲值,将脉冲值经算法运算后得出转速信息送到液晶模块显示,如此循环每隔 1 秒刷新一次转速显示。系统总体流程图如图 11 所示。开始中断定时初始LCD 初始化N定时是否Y1SY取数计算数码管显示6.2 中断子程序设计图 11 系统总体流程图开始是否有脉冲否是计数脉冲加 1中断程序为下降沿触发,从 IT0 引脚传送到单片机,程序每来一次中断,表明有脉冲触发,计一次脉冲,不断的中断循环,来一个脉冲触发一次中断。中断子程序设计流程图如图 12。6.3 定时子程序设计图 12 中断子程序流程图开始定时函数为计
24、时 50ms 的函数,定时器初始化完成后便开始计时,每一次计时为 50ms,在定时程序中判断是否计时 20 次到达 1 秒,到达 1 秒后便计时完毕,word 教育资料.由单片机相应其它子程序,由重新开始计时。定时子程序设计流程图如图 13 所示。定时器初始化(50ms)是否有中断定时计数器加是否定时 1S计时 1 秒完毕6.4 显示子程序设计图 13 定时子程序流程图显示程序初始化完毕后,等待由定时器的 1 秒计时完毕后,将中断函数产生的脉冲值计算后送到液晶显示部分显示,每隔 1 秒计时刷新一次显示,如此循环。显示子程序设计流程图如图 14 所示。开始显示函数初始化是否定时 1S否是刷新转速
25、显示图 14 显示子程序流程图word 教育资料.第七章 测试方案7.1 电路调试在本次课程设计中出现了一部分问题,初始我的设计思路是想要自己设计一个发射电路和接收电路,但是由于发光二极管我没能找到,所以我就想着用一个槽型光耦来代替,因为槽型光耦刚好符合这个特性,于是我就在网上搜了一下槽型光耦的引脚图和内部电路结构,然后按照预先设计好的电路进行连接,本来一个简单的电路,但是由于自己接反了习惯性的认为槽型光耦和电路图中的一样是对应的,所以我就直接按照对应的线路来接了,调试了两天,我也多次改变了下拉电阻的大小,但并没有出现自己想要的结果,然后周 3 的时候,我用万用表测量了一下电路中每一路的电流,
26、发现有一路是没有电流,所以我就把原来的接线位置对调了一下,这次电路终于通了。由于集电极输出电压不是 TTL 电平,所以加上一个三极管,对其进行放大,是其变成TTL 电平,即可直接接单片机的I/O 口,对其输出脉冲进行计数。7.2 软件调试由于本程序较大,而 C 语言编程具有很强的灵活性,便于编写与理解,因此采用 C 程序语言编写。采用自下而上的调试方法,先调试功能电路,再调试整个系统。我们所使用的调试软件是 51 系列单片机开发软件 Keil C51,它是一个基于32 位 Windows 环境的应用程序,支持 C 语言和汇编语言编程,其 6.0 以上的版本将编译和仿真软件统一为 Vision。
27、Keil 提供包括 C 编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案。Keil 能以单步执行、过程单步执行、全速执行等多种运行方式进行程序调试。如果发现程序有错,可采用在线汇编功能对程序进行在线修改,不必执行先退出调试环境、修改源程序、对工程重新进行编译/汇编和连接、然后再次进入调试状态的步骤。对于一些必须满足一定条件(如按键被按下等)才能被执行的、难以用单步执行方式进行调试的程序行,可采用断点设置的方法处理。在模拟调试程序后,还须通过编程器将.hex 目标文件烧写入单片机中才能观察目标样机真实的运行状况。Altium Designer 是原 Protel 软件
28、开发商 Altium 公司推出的一体化的电子产品开发系统,主要运行在 Windows 操作系统。这套软件通过把原理图设计、电这次我们还用到了 Protel 软件画电路图,在之前的课程设计中我们没有用过 Protel,因此我又学习了 Protel 软件的使用,我运用的是 Protel 的升级版Altium Designer。word 教育资料.路仿真、PCB 绘制编辑、拓扑逻辑自动布线、信号完整性分析和设计输出等技术的完美融合,为设计者提供了全新的设计解决方案,使设计者可以轻松进行设计, 熟练使用这一软件必将使电路设计的质量和效率大大提高。Altium Designer 除了全面继承包括 Pro
29、tel 99SE、Protel DXP 在内的先前一系列版本的功能和优点外,还增加了许多改进和很多高端功能。该平台拓宽了板级设计的传统界面,全面集成了 FPGA 设计功能和 SOPC 设计实现功能,从而允许工程设计人员能将系统设计中的 FPGA 与 PCB 设计及嵌入式设计集成在一起。主要功能有:原理图设计、印刷电路板设计、FPGA 的开发、嵌入式开发、3D PCB 设计。这次由于使用了单片机,所以我还用到了烧录软件STC-ISP-v4.80,以前做实验的时候见过这个东西,所以刚好自己查了下用法。STC 单片机具有通过串口编程功能,简单到通过串口 3 三根线就能将程序烧录到单片机内,这大大的方
30、便了开发人员,省去了昂贵复杂的编程器,在调试程序时也可将内部数据直接通过串口发送到 PC 上观看,一些不太复杂的程序甚至可以省掉仿真器。目前大部分的计算机都不带串口,这里还得介绍一下一个小转换工具,可将PC 上的 USB 口转换成单片机的 TTL 电平。插入硬件后提示安装驱动,完成后查看 PC 上设备管理器,端口中会多出一个串口,这里是 COM3,记住这个串口号, 下面给单片机烧录是要用。单片机板和转换板连线对应连接好,如发现无法通讯,可调整 2、3 的连线。1,地线 地线2,TXDRXD3,RXDTXD转换板由于 PC 供电,指对外提供很小的供电能力,建议单片机板用单独的电源供电,切记不能外
31、接电源和转换板同时对单片机板供电,否则会烧设备或计算机的危险。硬件连接正常后就是通过 STC 专门的烧录软件进行烧录了。1、现在对应的单片机型号2、打开编译过的需要写入单片机内的程序,类型都是以.bin 和.Hex 结尾的文件。3、选择连接的串口号,就是上边在设备管理器里看到的 COM3。4、选择通讯波特率,单片机目标板上有晶振的,这一项基本可以不用理会, 系统会自动适应合适的波特率。如果目标板使用的是内部振荡,由于内部制造误差,自动波特率可能会连接不成功,这时就要手工设置,最高和最低都设成一样, 从最大数到最小数一个一个试,直到连接成功为止,最差的就只能以 1200 的波word 教育资料.
32、特率烧录了,烧录时间稍长些,没办法就多等会儿吧。其它选项不知道啥意思的就不要乱选。5、最后一项就是烧录了,一定记住要先点击“下载”,然后再给单片机目标板供电。第八章 心得体会通过这次课程设计,我学到了很多东西,然后让我对以前学的东西又进行了进一步的加深,在这个过程中,让我对以前学的似懂非懂的单片机又进行了进一步的了解,我的专业知识和动手能力都得到了进一步的提高。由于 C 语言是大一刚来学的时候学的,而那时候第一次接触这种繁琐的东西,就会产生一种抵触,所以并没有去好好学习这门课,所以导致了这次课设要用到 C 语言写程序时头都大了,所以我又相当于重新学了一点 C 语言的知识,然后经过从书上的和网上
33、的程序,结合了下就写出了自己所需要的程序。仿真软件由于之前用过,所以还算是比较容易的一步。仿真时,主要使用软件 keil、Proteus 8 Professional。其中 keil 用来编写 C 语言程序,以及编译连接使之产生后缀名为 hex 的文件,将其烧录在软件 Proteus 8 Professional 中进行测试仿真调试。还运用到了Altium Designer 用来画电路图。这次实习的重点就是如何编写程序以及 仿真中的 行骗各个 管脚的连接 问题, 主要的元器 件有STC89C52、lcd1602 液晶显示等。本次设计把理论应用到了实践中,同时通过设计,也加深了自己对理论知识的理
34、解和掌握,在解决困难的过程中,获得了许多专业方面的知识,拓展了视野。提高了理论水平和实际的动手能力,学会了解决问题的方法,激发了我的探索精神。这样的课程设计是很好的锻炼机会,这次课程设计是我们上大学以来第二次关于电子方面的课程设计,我相信通过这两次的课程设计的铺垫,以后我们在做毕业设计的时候,应该会省事的多,所以我坚信我们会做出一个好的毕业设计, 然后在毕业之后能有一个好的出路。参考文献1 张毅坤.陈善久,裘雪红. 单片微型计算机原理及应用M. 西安电子科技大学出版社. 2009. 124-162.2 秦曾煌. 电工学M. 高等教育出版社. 2009. 36-86.3 何立民. 单片机应用技术
35、选编M. 北京航空航天大学出版社. 2011. 89-112.4 刘笃仁. 传感器原理及应用技术M. 西安电子科技大学出版社. 2011.word 教育资料.169-185.5 谭浩强. C 程序设计(第二版)M. 清华大学出版社. 2001.78-105.6 童诗白. 模拟电子技术基础M. 高等教育出版社. 2010. 128-169.7 马忠梅. 单片机的 C 语言应用程序设计M. 北京航空航天大学出版社. 2011.189-221.8 周润景. PROTEUS 入门实用教程M. 机械工业出版社. 2011.57-85.9 肖婧. 单片机系统设计与仿真基于 ProtuesM. 北京航空航天
36、大学出版社. 2010. 124-140.10 李丽荣,张常全,郑建红. 51 单片机应用设计M. 北京理工大学出版社. 2012. 194-211.11 蓝和慧,宁武,闫晓金. 全国大学生电子设计竞赛单片机应用技能精解M. 2009. 191-217.word 教育资料.附录附录一 电路仿真图附录二 程序清单#include #include unsigned char code cdis1 =SPEED:;unsigned char code cdis2 =r/min;sbit LCD_RS = P2 6; /寄存器选择位,将 RS 位定义为 P2.6 引脚sbit LCD_RW = P2
37、 5;/读写选择位,将 RW 位定义为 P2.5 引脚word 教育资料.sbit LCD_EN = P2 7;/使能信号位,将 EN 位定义为 P2.7 引脚bit sec = 0;unsigned char msec = 0, Hdata = 0, Ldata = 0, Count = 0;unsigned long temp = 0; unsigned char data display =0x00,0x00, 0x00, 0x00, 0x00;char code reserve3_at_ 0x3b; /保留 0x3b 开始的 3 个字节/* us 延时函数*/ void delayNO
38、P()_nop_();_nop_();_nop_();_nop_();/* ms 延时函数*/ void delayms(unsigned int ms)unsigned char n; while (ms-)for (n = 0; n 114; n+);/*检查 LCD 忙状态lcd_busy 为 1 时,忙,等待。lcd-busy 为 0 时,闲,可写指令与数据。*/ bit lcd_busy()bit result;word 教育资料.LCD_RS = 0;/根据规定,RS 为低电平,RW 为高电平时,可以读状态LCD_RW = 1;LCD_EN = 1;/EN=1,才允许读写delay
39、NOP();/空操作,给硬件反应时间result = (bit)(P0 &0x80);/将忙碌标志电平赋给 P0.7 LCD_EN = 0; /将 E 恢复低电平return (result);/*写 指 令 数 据 到 LCD RS=L,RW=L,E=高脉冲,D0-D7=指令码。*/ void lcd_wcmd(unsigned char cmd)while (lcd_busy() ;/如果忙就等待LCD_RS = 0; /根据规定,RS 和 R/W 同时为低电平时,可以写入指令LCD_RW = 0;LCD_EN = 1; /E 置低电平(写指令时,E 为高脉冲,就是让 E 从 0 到 1
40、发生正跳变,所以应先置0)P0 = cmd;/将数据送入 P0 口,即写入指令或地址delayNOP();/空操作,给硬件反应时间LCD_EN = 0;/当 E 由高电平跳变成低电平时,液晶模块开始执行命令/* 将数据(字符的标准 ASCII 码)写入液晶模块RS=H,RW=L,E=高脉冲,D0-D7=数据。*/ void lcd_wdat(unsigned char dat)while (lcd_busy() ;LCD_RS = 1;/RS 为高电平,RW 为低电平时,可以写入数据LCD_RW = 0;LCD_EN = 1;P0 = dat; /将数据送入 P0 口,即将数据写入液晶模块de
41、layNOP();LCD_EN = 0; /当 E 由高电平跳变成低电平时,液晶模块开始执行命令/* LCD 初始化设定*/ void lcd_init()word 教育资料.delayms(15);/延时 15ms,首次写指令时应给 LCD 一段较长的反应时间lcd_wcmd(0x38); /显示模式设置:16*2 显示,5*7 点阵,8 位数据delayms(5);/延时 5ms,给硬件一点反应时间lcd_wcmd(0x38);delayms(5); /延时 5ms,给硬件一点反应时间lcd_wcmd(0x38); /连续三次,确保初始化成功delayms(5);/延时 5ms,给硬件一点反应时间lcd_wcmd(0x0c); /显示模式设置:显示开,无光标,光标不闪烁delayms(5);/延时 5ms,给硬件一点反应时间lcd_wcmd(0x06); /显示模式设置:光标右移,字符不移delayms(5);/延时 5ms,给硬件一点反应时间lcd_wcmd(0x01); /清屏幕指令,将以前的显示内容清除delayms(5); /延时 5ms,给硬件一点反应时间/*指定字符显示的实际地址*/void lcd_pos(unsigned char pos)
限制150内