数字转速检测软硬件框架设计Word文件下载.docx
- 文档编号:20721016
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:9
- 大小:22.67KB
数字转速检测软硬件框架设计Word文件下载.docx
《数字转速检测软硬件框架设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《数字转速检测软硬件框架设计Word文件下载.docx(9页珍藏版)》请在冰豆网上搜索。
4系统软件设计6
5心得体会8
参考文献8
附录1系统原理图9
附录2程序清单10
1设计任务
1.选择一款微处理器。
2.增量式旋转编码器每周脉冲数600、1024、2048任选。
3.要求:
(1)硬件电路设计:
尽量具体到管脚,最好使用protel软件
(2)软件设计:
结合自己的硬件原理图,给出M/T算法的流程
2设计方案
2.1任务分析
本次设计选用增量式旋转编码器,光栅数为1024的,旋转编码器与电动机相连,当电动机转动时带动码盘旋转,通过光栅的作用,持续不断地开放或封闭通路,因此,在接收装置的输出端便得到频率与转速成正比的方波序列,从而可以计算转速。
本次设计用的是M/T算法测速,由于M/T算法的计数值M1和M2都随着转速的变化而变化,高速时,相当于M法测速,最低速时,M1=1,自动进入T法测速。
因此,M/T法测速能适用的转速范围明显高于前两种,是目前广泛应用的一种测速方法。
转速计算公式为N=60M1F/ZM2。
2.2方案设计
按照系统设计的功能的要求,初步确定设计系统由增量式旋转编码器、AT89S51单片机、液晶LCD1602显示器和系统软件组成。
其中增量式旋转编码器输出的脉冲经74HC14与单片机的P3.5口连接;
通过单片机的设置可使P3.5引脚能够对计数器T1的工作进行控制,这样能精确地测出加到T1引脚的脉冲数;
速度显示部分采用液晶LCD1602显示器。
系统软件包括单片机和液晶模块的初始化模块、液晶模块的写数据/命令子模块、周期测量模块、速度里程计算模块、数据显示模块以及实时中断服务模块等。
该设计能实时地将所测的速度显示出来。
该速度表能将传感器输入到单片机的脉冲信号数量实时地测量出来,然后通过单片机计算出速度,再将所得的数据由1602显示器实时显示出所测速度。
单片机利用定时器/计数器T1的控制功能测出输入脉冲信号的数量M2后,再利用单片机的算术运算功能将周期转换成速度。
最后将得出的速度用1602显示。
3系统硬件设计
3.1单片机的最小系统
AT89S51是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。
AT89S51具有如下特点:
40个引脚,4kBytesFlash片内程序存储器,128Bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。
空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。
同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。
AT89S52单片机为40引脚双列直插芯片,有四个I/O口P0,P1,P2,P3,MCS-51单片机共有4个8位的I/O口(P0、P1、P2、P3),每一条I/O线都能独立地作输出或输入[7]。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
I/O口作为输入口时有两种工作方式,即所谓的读端口与读引脚。
读端口时实际上并不从外部读入数据,而是把端口锁存器的内容读入到内部总线,经过某种运算或变换后再写回到端口锁存器。
只有读端口时才真正地把外部的数据读入到内部总线。
输入缓冲器CPU将根据不同的指令分别发出读端口或读引脚信号以完成不同的操作。
这是由硬件自动完成的,不需要我们操心,1然后再实行读引脚操作,否则就可能读入出错,如果不对端口置1,端口锁存器原来的状态有可能为0Q端为0Q^为1加到场效应管栅极的信号为1,该场效应管就导通对地呈现低阻抗,此时即使引脚上输入的信号为1,也会因端口的低阻抗而使信号变低使得外加的1信号读入后不一定是1。
若先执行置1操作,则可以使场效应管截止引脚信号直接加到三态缓冲器中实现正确的读入,由于在输入操作时还必须附加一个准备动作,所以这类I/O口被称为准双向口。
89C51的P0/P1/P2/P3口作为输入时都是准双向口。
时钟晶振电路和复位电路连接如图3-1和图3-2。
图3-1单片机系统的时钟晶振电路
图3-2单片机系统的复位电路
3.2显示电路设计
本设计显示模块用液晶LCD1602显示。
该显示器为工业字符型液晶,能够同时显示16x02即32个字符(16列2行)。
采用1602液晶显示器,单片机P0口通过10K的上拉电阻作为数据输出口,RS,E分别连接到单片机的P2.6,P2.7。
R\W接地,是只向1602写数据,VDD接5V电源,VSS接地。
VEE为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。
RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。
R/W为读写信号线,高电平
(1)时进行读操作,低电平(0)时进行写操作。
E(或EN)端为使能(enable)端,下降沿使能。
DB0-DB7为双向数据总线,同时最高位DB7也是忙信号检测位。
以下是1602与单片机的连接图:
图3-3液晶1602与单片机的连接图
3.3转速测量电路设计
转速测量电路由光电编码器及脉冲整形电路组成,如图3-4所示,其中编码盘加在电机转轴上,随电机同步转动,光电编码器由脉冲编码盘、发光二极管和光敏三极管组
图3-4光电编码器的原理
4系统软件设计
主电路采用ATMEL公司生产的AT89S51单片机。
其中,TO和T1都工作在模式1,T0用作定时器,T1用作计数器,当T1引脚出现一个1到0的跳变时,计数器加1,用查询法不断的查询计数器T1溢出标志位TF1,若TF1=1,则计数器T1计满,设置标志flag=falg+1,并用软件将TF1清零,直到T0定时时间到,进入中断程序;
然后对T1中的数据进行处理,对T0、T1进行重新装载、设置中断后,中断返回。
编码器选用1024的,编码器输出脉冲连接单片机的P3.5口。
虚线是中断处理程序。
图4-1系统主程序流程图
5心得体会
本设计以AT89S51为核心,利用单片机的运算和控制功能,并采用1602显示模块实时显示所测速度的设计方案。
论文主要是在参考各种资料和相关的专业文献的基础上完成的,所参考的专业文献在论文中已经列单出来,但还有部分来源资料参差不齐不能在论文中详细列出,在这里也说明一下。
论文的整个制作过程的确不容易,现在回想一下那段时日,有艰辛的一面,亦有喜悦的一面,但整个过程总结来说还是蛮充实的,毕竟在整个设计的过程中,自己又对已经学过的专业课知识梳理了一下,而且对于实际的应用和需求也参考了各个方面的资料,所以整个设计过程下来,自己整体的专业知识水平又进行了一次升华。
参考文献
[1]余发山主编.单片机原理及应用技术.中国矿业大学出版社.2003.12.21-32
[2]董爱华主编.检测与转换技术.中国电力出版社.2007.12
[3]康华光主编.电子技术基础数字部分(第五版).2006.137-153430-460
[4]朱经利,蒋玉亮等编著.海尔家用洗衣机原理和维修.人民邮电出版社.1999.63-152
[5]孟庆龙,张鸿海等编著.小鸭家用洗衣机原理和维修.人民邮电出版社.1999.31-45
[6]谢自美主编.电子线路设计·
实验·
测试.华中理工大学出版社.2000.7.11-15
[7]张友汉主编.电子线路设计应用手册.福建科学技术出版社.2000.7
附录1系统原理图
附录2程序清单
#include<
reg51.h>
#defineucharunsignedchar
#defineuintunsignedint
ucharqian,bai,shi,ge;
uintaa,flag=0,speed;
//flag为计数器T1计数已满的标志
longintM2;
sbitRS=P2^6;
sbitEN=P2^7;
unsignedcharcodestr1[]={"
SPEED:
"
};
voiddelay1ms(unsignedintms)//延时1毫秒(不够精确的)
{
unsignedinti,j;
for(i=0;
i<
ms;
i++)
for(j=0;
j<
100;
j++);
}
voidwr_com(unsignedcharcom)//写指令//
{
delay1ms
(1);
RS=0;
EN=0;
P0=com;
EN=1;
voidwr_dat(unsignedchardat)//写数据//
;
RS=1;
P0=dat;
voidlcd_init()//初始化设置//
delay1ms(15);
wr_com(0x38);
delay1ms(5);
wr_com(0x08);
wr_com(0x01);
wr_com(0x06);
wr_com(0x0c);
voiddisplay(unsignedchar*p)//显示//
while(*p!
='
\0'
)
{
wr_dat(*p);
p++;
delay1ms
(1);
}
init_play()//初始化显示
lcd_init();
wr_com(0x80);
//只用第一行显示
display(str1);
voiddisplay_Speed(longintf)//速度显示函数
qian=f/1000+0x30;
bai=f%1000/100+0x30;
shi=f%100/10+0x30;
ge=f%10+0x30;
wr_com(0x80+7);
wr_dat(qian);
wr_com(0x80+8);
wr_dat(bai);
wr_com(0x80+9);
wr_dat(shi);
wr_com(0x80+10);
wr_dat(ge);
wr_com(0x80+11);
//显示速度单位r/min
wr_dat('
r'
);
wr_com(0x80+12);
/'
wr_com(0x80+13);
m'
wr_com(0x80+14);
i'
wr_com(0x80+15);
n'
voidmain()
init_play();
TMOD=0x51;
//T1为计数器,T2为定时器,都工作在方式1
TH0=(65536-10)/256;
TL0=(65536-10)%256;
TH1=0;
TL1=0;
EA=1;
//允许开总中断
ET0=1;
//使用定时器T0的中断
TR0=1;
//启动定时器T0
ET1=0;
//不使用定时器T1的中断
TR1=1;
//启动计数器T1
while
(1)
{
if(TF1==1)//不断查询计数器T1的溢出标志位TF1状态
{
flag=flag+1;
TF1=0;
//软件清零
}
speed=12000000*60*800/1024*M2;
display_Speed(speed);
}
voidtimer0()interrupt1
//f=12Mz
aa++;
if(aa==80)//定时0.8msM1=800
aa=0;
M2=flag*65536+TH1*256+TL1;
//外部脉冲数量
TH1=0;
TL1=0;
Flag=0;
//便于下一次中断前的检测
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 转速 检测 软硬件 框架 设计