转速表的测量综述Word格式文档下载.docx
《转速表的测量综述Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《转速表的测量综述Word格式文档下载.docx(27页珍藏版)》请在冰豆网上搜索。
合计
(100分)
任务完成
情况
(20分)
课程设计
报告质量
(40分)
表达情况
(10分)
回答问题
工作态度与纪律
独立工作
能力
得分
课程设计成绩评定
班级1224081姓名闫长印学号122408172
成绩:
分(折合等级)
指导教师签字年月日
一、设计目的
通过具体的实验,让我们更熟练地掌握单片机在实验中的应用。
二、设计要求
1)利用单片机组成一数字转速表。
2)电机转速由信号发生器的方波脉冲信号来模拟。
3)利用四位LED显示器显示:
a.当前转速b.给定转速c.给定转速与当前转速的区别标志d.超速报警显示
4)利用小键盘实现:
a.显示选择b.给定转速的输入
5)测速范围为500rpm—1500rpm。
电机的正常转速为1000rpm。
6)检测对应关系为:
1024个脉冲/转,采用周期为40ms。
三、总体设计
为了确定其设计方案,首先必须构思好初步的设计思路。
根据设计要求和实验仿真条件,初步的设计思路可以总结如下:
1)用信号发生器来产生周期为0.04ms—0.2ms的方波脉冲信号。
2)当前转速与给定转速显示用4段LED数码管。
3)键盘采用矩阵式键盘,一共12个键,用2个控制键和10个数字键。
4)采样时间用定时/计数器0来实现。
5)用定时/计数器1来统计采样时间内的脉冲数,进而计算转速。
6)给定转速与当前转速的区别标志是在个位加点显示,有点为给定转速。
根据设计要求与设计思路,可以确定该系统的设计方案,图1为该系统设计的硬件电路设计框图。
硬件主要由四部分组成,即脉冲源、单片机、小键盘、LED显示器。
单片机采用89C51。
考虑到实验室的条件,键盘采用2行6列的矩阵式键盘,2个控制键分别控制显示当前转速和给定输入的转速,10个数字键用来输入给定转速,行与列与P1口连接。
LED显示采用静态串口显示,需用4个LED和4个74LS164移位寄存器。
脉冲源用一个方波脉冲发生器,用来模拟对应的转速。
脉冲源与单片机的T1相连。
图1数字转速表硬件框图
键盘的设计也可以采用其它形式,如采用3行4列。
LED显示也可以采用动态显示。
但综合考虑本设计还是采用如上方案。
四、各部分电路设计
1.数字转速表硬件设计
本设计需用到AT89C2051单片机、小键盘、LED显示器和74LS164移位寄存器等硬件,与其它设计相比其硬件设计相对简单,且在实验室也容易实现。
小键盘用2行6列的矩阵式键盘,一共有12个键。
LED和74LS164一起构成静态串口显示。
硬件设计总图见附图A。
下面对各部分硬件的设计进行简单的介绍。
单片机最小系统
根据初步设计方案的分析,设计这样的一个简单应用系统,可以选择带有EPROM的单片机,应用程序直接储存在片内,不用再外部扩展存储器,电路可以简化,AT89C51单片机的功能与MCS-51系列单片机完全兼容,并且还有程序加密功能,物美价廉,经济适用,因此我们选择AT89C51,图2是89C51的图示。
本设计需用到Vcc、END、RESET、XTAL1和XTAL2、P3.0/RXD、P3.1/TXD、P1口、T1引脚。
下面对所用引脚进行简单介绍。
Vcc:
供电电压,GND:
接地。
P3.0/RXD:
串行输入口,P3.1/TXD:
串行输出口
T1:
定时/计数器1外部输入
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
反向振荡器的输出。
RESET:
复位输入。
当振荡器复位器件时,要保持RESET脚两个机器周期的高电平。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口。
图2单片机最小系统
时钟电路设计
单片机工作时间的基准是由时钟电路提供的。
在单片机的XTAL1和XTAL2两个引脚间接一只晶振及两只电容就构成了单片机的时钟电路,如上图所示,电路中电容器C2和C3对振荡频率有微调作用,通常的取值范围30+/-10pF;
石英晶体选11.0592MHz。
复位电路设计
单片机的RESET引脚为主机提供一个外部复位信号输入端口。
复位电路是高电平有效,高电平有效的持续时间应为两个周期以上。
复位后,单片机内各部件恢复到初始状态,单片机从ROM的0000H开始执行程序。
其电路图如图2所示,R1=1KΩ,C1=22μF。
RESET按键选择开关。
与其它硬件的连接
RXD/串行输入口与74LS164的A、B相连,TXD/串行输出口与74LS164的CLR相
连。
P1口与键盘相连。
其中P1.0可P1.1作为输入与键盘行线相连,P1.2—P1.7作为输出与键盘列线相连。
2、小键盘接口电路设计
根据设计要求与设计思路,并考虑到实际情况,小键盘采用2行6列的矩阵形式,可以组成12个键,其中2个控制键,分别用来控制显示当前转速和给定输入的转速。
另外还有10个数字键,用来输入给定转速。
可以按下图进行设计。
图3小键盘接口电路
键盘说明
如图3,P1.0和P1.1作为输入与行线相连,行线接电阻后与+5V电源连接。
P1.2—P1.7作为输出与列线相连,另一端悬空,为了防止多键同时按下使输出口短路,在每一列可以串联一个二极管。
行与列之间的交叉点就放置按键,按键的编号如图3所示,其中A、B为控制键,A键控制当前转速在LED上显示,B键控制给定转速在LED上显示,其余为数字键,其排列顺序如图。
按键未按下时行与列没有连接,当且仅当按键按下时行与列相连,此时按键才起作用。
键盘的工作原理
从图3可以看出,行线与电阻串联后接+5V的电源,当没有按键按下时,P1.0和P1.1的输入为高电平,即单片机检测到P1.0和P1.1的电平为高电平。
因此,为了使按键起作用,P1.2—P1.7的输出为低电平,当任意一个按键按下时,P1.0或P1.1的输入为低电平。
这样为了检测X行Y列的按键是否按下时,可以在Y列输入低电平,其余为高电平,然后检测X行输入的电平,若为高电平说明按键没有按下,若为低电平则有按键按下。
3、LED显示接口电路设计
根据设计要求可知,系统需要显示4位数字,因此需用到4个LED。
考虑到显示的数字需要移位以及实验室的条件,本系统采用串口静态显示。
串口静态显示需用到4个移位寄存器,这里采用4个74LS164。
其硬件图如下:
图4LED显示接口电路
说明
如图4所示,四个LED是8段共阴极数码管,它们的端口9接地;
LED的a,b,c,d,e,f,g,dp接限流电阻后分别与74LS164的QA,QB,QC,QD,QE,QF,QG,QH相连;
编号为1的74LS164的端口A、B连在一起并与单片机的RXD相连,其余三个74LS164的A、B端口也连在一起并与前一个QH端口相连;
四个74LS164的端口CLK连在一起并与单片机的TXD相连,
与+5V电源相连。
四个LED的主要功能是用来显示四位转速数字;
74LS164的主要功能是在脉冲的作用下移位,并具有锁存作用。
工作原理
图4与单片机连在一起构成静态串口显示,当单片机执行指令‘MOVSBUF,A’时单片机开始通过串行输入口RXD向74LS164移位寄存器传送一个字节的数据,与此同时前一个移位寄存器向后移位寄存器也传送它之前寄存的一个字节数据。
因为LED与移位寄存器是对应相连的,因此LED会根据74LS164寄存器中的值作出对应的显示。
移位寄存器接收数据是单片机通过TXD向74LS164的CLK发送脉冲所致,脉冲的频率直接影响发送数据的速度。
2、数字转速表软件设计
软件设计是课程设计的一个重要组成部分,软件的设计成功与否直接影响系统的功能。
因此,软件的设计是一个非常严密的过程。
根据设计要求和设计方案可知,本系统是通过测量脉冲并根据所给关系来计算转速并在LED上显示,LED的显示是通过键盘来控制,为了实现这些功能,可确定下面的设计方案。
软件设计简介
根据要求,每按下按键就有相应的显示,故在主程序中设计键盘循环扫描程序。
另外测速的采样周期是40ms,可以通过设计定时器中断子程序来定时40ms,并在这40ms内通过设计计数器程序来计算脉冲个数。
此外,还需设计相应的子程序。
系统资源分配
为了方便编写程序,先对系统的资源分配加以说明。
1)定时器:
定时器0用作采样周期定时,按方式1工作,每隔40ms溢出中断一次。
故初值定为6FFEH。
2)计时器:
计时器1用作在40ms的时间内统计脉冲个数。
不中断并由软件控制。
3)片内RAM的分配与定义表1所示
表1片内RAM的分配与定义
地址
功能
名称
初始化
40H-43H
显示当前转速缓冲区(个位在前)
GW1、SW1、BW1、QW1
00H
44H-47H
显示给定转速缓冲区(个位在前)
GW2、SW2、BW2、QW2
48H-49H
40ms内所测脉冲寄存区(低位在前)
DSL、DSH
50H-52H
当前转速BCD码寄存区(低位在前)
BCD1、BCD2、BCD3、BCD4
55H-7FH
堆栈区
软件流程
根据上述工作流程,软件设计可分为以下几个功能模块:
1)主程序:
初始化与键盘循环扫描等
2)计时:
为定时器0中断服务子程序,完成对应转速的计算和判断是否报警等。
3)显示:
显示1完成当前转速4位静态显示;
显示2完成给定转速4位静态显示。
4)报警显示子程序:
实现4个‘8’的静态显示。
5)其它辅助功能子程序:
如乘除法运算子程序,两字节转换为三字节BCD码子程序,两个延时子程序。
下面对各功能模块进行介绍
1、主程序
主程序功能分析
主程序首先必须完成串行口设置、指针设置、中断设置、定时计数器工作方式及初始值设置等。
其次,进行寄存区初始化设置和调用LED1子程序。
再次,开中断并开始扫描数字键和控制键等。
键盘的扫描是不断循环进行的。
当有键按下时就会执行它要实现某一功能的程序,为了凸显这一过程,画出主程序流程图如图5。
主程序说明
串口方式采用方式0;
中断允许寄存器设为82H,即允许T0和CPU中断;
T1设为方式0,初值为0;
T0设为方式0,且初值为6FFEH,因为需要定时40ms,可根据下面的表达式求出初值,其中时钟频率为11.0592MHz,一个周期的时间为1.085μS。
R2的值表示接连按数字键的次数,在扫描数字键前设置R2=1。
当确定有数字键按下且R2的小于4时,根据R2的值执行完相应程序后返回到开始数字键扫描处。
当确定R2=4或有控制键按下时,在执行完对应程序后返回到设置R2=1程序处。
另外,键盘的扫描是依次循环进行的。
图5主程序流程图
2、T0中断服务子程序
功能分析
中断服务子程序需完成的主要任务有:
保持现场;
读取计数器1在这40ms内所统计的脉冲个数;
把脉冲个数通过调用‘转速计算子程序’和‘二进制转换为BCD码子程序’转换为BCD码并存入缓冲区中;
通个查表将BCD码转换为相应可以显示的数值并存入GW1—QW1缓冲区中;
检查是否报警;
恢复现场。
根据这些任务可以编写相应的中断服