文档库 最新最全的文档下载
当前位置:文档库 › 数字转速表

数字转速表

数字转速表
数字转速表

目录

第1章系统概述....................................................................... .1 第2章总体设计思路.. (3)

第3章硬件电路的设计方案 (4)

3.1 LED显示电路设计 (4)

3.2 按键电路的设计 (5)

第4章软件设计与说明 (6)

4.1总程序模块 (6)

4.2定时计数模块 (7)

4.3按键程序模块 (8)

第5章系统调试 (9)

第6章总结与体会 (10)

第7章参考文献 (11)

附录A 总电路图 (12)

附录B 总电路图 (13)

第1章系统概述

1.1课题简介

本次课程设计就是运用单片机来设计数字转速表。首先,运用单片机来接受一个脉冲信号,再设定1S,先做1S的,最后再乘以60来转换成分钟。具体讲就是我们要通过单片机CPU的定时器/计数器T0、T1来实现,我们让T0定时,定时50毫秒,计满20个周期即为1秒,在这20个周期内,让T1接收外部的脉冲个数并计数。这20个周期作为1秒,测量到的转速是以r/s为单位的,使这个转速乘60,变成以r/min为单位的转速,达到我们设计的要求。第二,是单片机控制4位LED显示器将处理后转速值显示出来,在此必须注意要有驱动器件。第三,要实现各按键的功能,也就是通过程序在LED上显示不同的变化可以观察出按键功能的好坏!

本次设计使用ATMEL公司的AT 80C51实现一基于单片机的数字测速仪表的设计。

1.2主要功能:

(1)测速仪表还具有键盘启动、停止、复位功能。当按下启动键是开始对电机测速,停止时显示当前所记录的速度,复位后从新开始等待记速。数字测速仪由3×4矩阵键盘接口电路、LED液晶显示电路组成。

1.3设计内容及条件:

单片机通过检测脉光电冲信号计算电机的转速,利用单片机试验台上的电机转速检测脉冲(每转1个)进行程序设计和调试,测速范围0~3000转/分,转速表上至少具有启动和复位两个操作按键,转速显示要求至少4位。

第2章总体设计思路

2.1总体思路

本课题要求以MCS-51系列单片机为核心,设计一个数字转速表对脉冲转速信号进行检测,能将所测量的转速在LED显示器上显示(十进制),并具有方便的键盘操作(启动、停止、复位)功能。

单片机通过检测手动脉冲信号计算转速,测速范围0~3000转/分,转速表至少有启动和复位两个操作按键,转速显示要求至少4位。

该系统的功能概括起来就是能测量当前每秒钟给的手动脉冲数,并且进行超速报警。MCS-51单片机内有两个定时器/计数器T0和T1,利用其内部定时器T1设置为定时方式,且定时时间为1s。计数器T0设置为外部脉冲计数工作方式,设在1s内测量的脉冲个数为n,再将n乘上60即是转速(分/转)。

2.2系统组成

本系统由AT89C51单片机,LED显示电路,LED显示器,时钟与复位电路以及独立式按键五个部分组成。

其系统的总框图如图2.1所示

图2.1系统的总框图

第3章硬件电路的设计方案

3.1 LED显示电路设计

本课题所采用得是由LED(数码管)作为显示电路,用以显示由单片机所接收的脉冲来转换的BCD码,以及开始测速时的初始状态。其硬件电路连接是单片机P0.0~P0.7接数码管的由A~G的8各管脚,P2.0~ P2.3相连,以控制4个数码管点亮, ABCDEFG、DP则分别与P1.0~ P1.7相连,以段选控制数字以及小数点的显示,通过位选和段选来控制整个动态电路的显示结构,增强电流,点亮数码管,如果不经过驱动电路电流过小的话,数码管将不会被点亮。LED显示电路图如图3-1所示。

LED显示电路图如图3-1

3.2 按键电路的设计

在本次的课程设计中,我们需要用到四个健,分别为启动键,停止键,复位键,还有一个手动脉冲输入键,由于按键较少,这里采用的是独立按键方式。使AT89C51的P1.0 P1.2口分别作为启动、暂停、停止三个按键的输入口,手动脉冲键则与AT89C51的输入端P3.2口相连,每按下一次就产生一个脉冲。键盘设计图入如图3-2所示。

键盘设计图3-2

第4章软件设计与说明

4.1总程序模块

这里所指的主程序是整个程序的轮廓,他包含了整个程序的进程,主程序的流程图如图4-1所示。

图4-1 总程序流程图

4.2 定时计数中断模块

定时计数模块是在单片机的T1口采集到脉冲信号的个数后进行工作的,由定时器来完成1s的定时,由计数器来完成对脉冲的计数,然后将所测脉冲数乘以60即为转速。定时计数流程图如图4-2所示。

图4-2 定时计数中断流程

4.3按键程序模块

本次课程设计中我们使用的独立按键,因为只有启动、暂停和复位三个按键。按键程序的流程图如图4-3所示。

图4-3键盘扫描流程图

第5章系统调试

5.1 软件模拟仿真

试验所涉及的2个软件wave和proteus,以下是仿真步骤。

wave调试程序的程序必须要以ASM的格式保存,在调试无误后,会生成一个HEX的文件,最后在用到proteus时,只要在AT89C51里选取那个HEX文件就可以运行!

5.2 硬件调试

首先接通电源,再接线。通过proteus软件运行HEX的文件来调试硬件电路,观察LED灯的情况来调试程序。当程序运行时,按开始按钮,显示初值,在不同的按键下,实现不同的功能

按下电源开关,LED上显示初始状态,按下启动键显示接收数据的状态,按下停止键后显示当前所记录的数据,按下复位键则显示初始状态。

第6章总结与体会

转眼为期2周的课程设计就结束了,2周的设计2周的辛勤付出,终于等到了相应的收获!本次课程设计就是要求我们做一个电子转数表,思路是比较简单的,定时计数,将计数值显示,并且要求使这些步骤由按键选择性实施。

就说这次的课程设计,基本的内容和我们上课所学的差不多!就是把课本的知识综合了一下!无论是整个程序的哪一个环节,单独拿出来让我们设计都不难,但是一综合起来,对于我们这些初学者来说难度就加大了。因为程序要综合起来考虑很多要点,如果只单单完成一种功能我们还可以慢慢捋清思路,一旦综合性加强,马上就会漏洞百出。以LED灯为例,我们必须考虑到驱动程序,最后要经过二进制变为BCD码显示在LED上。而且在不同的按键下,实现不同的按键功能。我们在平时学习的时候是清楚这一点的,但是遇到综合课题的时候,竟然完全忘记了还有这个重要的环节,这说明有思路和能完成是两个完全不同的水平层次,更说明我们仍需要进一步的学习,否则以现在处理问题的能力来应对将来的工作是绝对不行的。

最后还是要感谢我们的指导李老师,在我们遇到困难时,向李老师求教时,她总是很有耐心的给我做着简答。我们总是要经历这样一个过程,有想法,但是就是差那么一点!这个就是我们缺少太多的实践经验。书本知识固然要学,但是必定的课程设计还是很有必要的。实践能帮助我们积累经验,上面的例子也可以说明我们动手操作的环节还有些薄弱,经验十分欠缺,不能条件反射的想起一些常识性的问题就是我们动手不够的表现。

所以,加紧学习,动手多练是提高我们水平的好方法,我们要达到的水平应该是想得到,做得到。

第7章参考文献

1、刘国荣.单片微型计算机技术.机械工业出版社,1996

2、张迎新.单片微型计算机原理、应用及接口技术.国防工业版社,1993

3、房小翠.编单片机实用系统设计技术.国防工业出版社,1999

4、何立民.编单片机应用系统设计.北航出版社,2005

5、曹琳琳.编单片机原理及接口技术.国防科技大学出版社,2000

6、王迎旭.单片机原理与应用.北京:机械工业出版社,2004

7、楼然苗编.51系列单片机设计实例.北京航空航天大学出版社,2001

8、黄勤.计算机硬件技术基础实验教程.重庆大学出版社,1999

9、刘乐善.微型计算机接口技术及应用.华中科技大学出版社,2003

10、陈光东.单片微型计算机原理及接口技术.华中科技大学出版社,2004

附录A 总电路图

附录B

程序清单

ORG 0000H

SJMP MAIN

ORG 000BH ;定时器0中断

LJMP DVT0

ORG 001BH ;定时器1中断

LJMP DVT1

ORG 003BH

MAIN: MOV SP,#50H

CLR P1.0

MOV 31H,#0 ;存计数值单元

MOV 30H,#0

MOV 7AH,#00H ;显示0000

MOV 7BH,#00H

MOV 7CH,#00H

MOV 7DH,#00H

MOV 01H,#14H

MOV TMOD,#51H ;定时计数器工作方式 MOV TH0,#9EH ;定时器初值

MOV TL0,#58H

MOV TH1,#0

MOV TL1,#0

LOP1: LCALL DISPLAY ;调显示子程序

LCALL KEY ;调键盘扫描子程序

CJNE A,#58H,LOP2

JNC LOP1 ;没键按下跳LOP1

LOP2:CJNE A,#00H,LOP3 ;开始建没按下转LOP3 SETB ET0 ;开放中断,启动定时计数器

SETB TR0

SETB EA

SETB TR1

SETB LOP1 ;转LOP1

LOP3: CJNE A,#01H,LOP4 ;停止键没按下转LOP4 CLR TR1 ;关中断

CLR TR0

CLR ET0

CLR ET1

CLR EA

LJMP LOP1

LOP4: CJNE A,#02H,LOP1 ;复位键没按下转LOP1 LJMP MAIN ;复位键按下转初始化

LOP5: LJMP LOP1 ;其他键按下转LOP1

DVT0: PUSH PSW

PUSH ACC

MOV TH0,#0D8H

MOV TL0,#0F0H

lcall display

DJNZ 01H,RTN0

MOV 01H,#14H

CLR ET0

CLR TR1

CLR EA

CLR TR0

MOV 31H,TH1 MOV 30H,TL1

LCALL HEX2BCD LCALL DISPLAY MOV TH1,#0

MOV TL1,#0

SETB ET0

SETB TR1

SETB EA

SETB TR0

SETB ET1

CPL P1.0

RTN0: POP ACC

POP PSW

RET

DVT1: PUSH PSW

PUSH ACC

MOV A,TH1

CLR C

SUBB A,#01H

JNC LIMIT

MOV A,TH1

CLR C

SUBB A,#1FH

JC LIMIT

MOV TH1,#0

MOV TL1,#0

LIMIT:SETB P1.0

CLR P1.7

MOV 7AH,#11H MOV 7BH,#11H MOV 7CH,#11H MOV 7DH,#11H ACALL DISPLAY ACALL DISPLAY FFA: CPL P1.7

ACALL DISPLAY ACALL DISPLAY DJNZ R4,FFA EXIT1:RET

HEX2BCD:

PUSH PSW

SETB RS0

SETB RS1

MOV A,30H

MOV B,60

MUL AB

MOV 31H,B

MOV 30H,A

LCALL CHANGE MOV A,33H

ANL A,#0FH

MOV 7BH,A

MOV A,33H

SWAP A

ANL A,#0FH

MOV 7AH,A

MOV A,32H

ANL A,#0FH

MOV A,7BH

ANL A,#07H

MOV 7DH,A

MOV A,32H

SWAP A

ANL A,#0FH

MOV 7CH,A

CLR RS0

CLR RS1

POP PSW

RET CHANGE: CLR A

MOV 40H,A

MOV 41H,A

MOV 42H,A

MOV R7,#16

LP4: MOV R0,#30H MOV R6,#02

CLR C

LP2: MOV A,@R0 RLC A

MOV @R0,A

INC R0

DJNZ R6,LP2 MOV R1,#42H MOV R5,03H LP3: MOV A,@R1 ADDC A,@R1 DA A

MOV @R1,A DEC R1

DJNZ R5,LP3 DJNZ R7,LP4 MOV 33H,41H MOV 32H,42H RET

KEY: PUSH PSW SETB RS0

CLR RS1

JB P3.0,X1

MOV A,#0

SJMP X4

X1: JB P3.1,X2

MOV A,#1

SJMP X4

X2: JB P3.2,X3

MOV A,#2

SJMP X4

X3: MOV A,#0FH X4: CLR RS0

POP PSW

RET

DISPLAY: PUSH A

PUSH DPH

PUSH DPL

PUSH PSW

SETB RS1

SETB RS0

MOV DPTR,#0CFA0H

MOV R7,#04H

MOV R6,0FEH

MOV R0,#7AH

LP1: MOV A,@R0

ADD A,#21

MOVC A,@A+PC

MOVX @DPTR,A

MOV P1,R6

LCALL DELAY

MOV A,R6

RL A

MOV R6,A

INC R0

DJNZ R7,LP1

POP PSW

POP DPL

POP A

RET

TAB:DB

3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,7

9H,71H,00H,08H,40H DELAY: MOV R5,#10 DL1: MOV R4,#24

DL2: NOP

NOP

DJNZ R4,DL2

DJNZ R5,DL1

RET

END

相关文档