基于51单片机的数字秒表课程设计毕业设计论文Word格式文档下载.docx

上传人:b****6 文档编号:19573394 上传时间:2023-01-07 格式:DOCX 页数:18 大小:404.76KB
下载 相关 举报
基于51单片机的数字秒表课程设计毕业设计论文Word格式文档下载.docx_第1页
第1页 / 共18页
基于51单片机的数字秒表课程设计毕业设计论文Word格式文档下载.docx_第2页
第2页 / 共18页
基于51单片机的数字秒表课程设计毕业设计论文Word格式文档下载.docx_第3页
第3页 / 共18页
基于51单片机的数字秒表课程设计毕业设计论文Word格式文档下载.docx_第4页
第4页 / 共18页
基于51单片机的数字秒表课程设计毕业设计论文Word格式文档下载.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

基于51单片机的数字秒表课程设计毕业设计论文Word格式文档下载.docx

《基于51单片机的数字秒表课程设计毕业设计论文Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于51单片机的数字秒表课程设计毕业设计论文Word格式文档下载.docx(18页珍藏版)》请在冰豆网上搜索。

基于51单片机的数字秒表课程设计毕业设计论文Word格式文档下载.docx

2、设计要求

一、计时范围:

0~59分59.59秒,整数四位数和小数两位数显示;

二、计时精度10毫秒;

3、复位按钮,计时器清零,并做好下次及时预备;

4、能够对三个对象(A、B)计时,具有启/停操纵;

5、设开始、停止A、停止B、显示A、显示B、复位按钮。

四、任务分析、设计方案

1、任务分析

数字电子秒表具有显示直观、读取方便、精度高等优势,在计时中普遍利用。

本设计用单片机组成数字电子秒表,力求结构简单、精度高为目标。

设计中包括硬件电路的设计和系统程序的设计。

其硬件电路要紧有主操纵器,计时与显示电路和回零、启动和停表电路等。

主操纵器采纳单片机89C52显示电路采纳共阳极LED数码管显示计不时刻。

本设计利用89C52单片机的按时器/计数器按时和记数的原理,使其能精准计时。

利用中断系统使其能实现开始暂停的功能。

P0口输出段码数据,P2.0-P2.4口作列扫描输出,

P1.一、P3.二、P3.3、P2.5口接四个按钮开关,别离实现开始、暂停、清零和查看上次计不时刻功能。

电路原理图设计最大体的要求是正确性,第二是布局合理,最后在正确性和布局合理的前提下力求美观。

硬件电路图依照图1.1进行设计。

图1.1数字秒表硬件电路大体原理图

计时采纳按时器T0中断完成,按时溢出中断周期为1ms,当一处中断后向CPU发出溢出中断请求,每发出一次中断请求就对毫秒计数单元进行加一,达到10次就对十毫秒位进行加一,依次类推,直到99.99秒从头复位。

再看按键的处置。

这四个键能够采纳中断的方式,也能够采纳扫描的方式来识别。

复位键和查看要紧功能在于数值复位和查询上次计不时刻,关于时刻的要求不是很严格。

而开始和停止键那么是用于对时刻的锁定,需要比较准确的操纵。

因此能够对复位和查看按键采取扫描的方式。

而对开始和停止键采纳外部中断的方式。

其硬件电路要紧有主操纵器,显示电路和回零、启动、查看、计次电路等。

主操纵器采纳单片机89C52,显示电路采纳共阳极LED数码管显示计不时刻,四个按键均采纳触点式按键。

二、单片机的选择

本课题在选取单片机时,充分借鉴了许多成形产品利用单片机的体会,并依照自己的实际情形,选择了stc公司的89C52。

89C52单片机采纳40引脚的双列直插封装方式。

图1.2为引脚排列图,40条引脚说明如下:

主电源引脚Vss和Vcc

①Vss接地

②Vcc正常操作时为+5伏电源

外接晶振引脚XTAL1和XTAL2

①XTAL1内部振荡电路反相放大器的输入端,是外接晶体的一个引脚。

当采纳外部振荡器时,此引脚接地。

XTAL2内部振荡电路反相放大器的输出端。

是外接晶体的另一端。

当采纳外部振荡器时,此引脚接外部振荡源。

图1.28051单片机引脚图

操纵或与其它电源复用引脚RST/VPD,ALE/

/Vpp

输入/输出引脚P0.0-P0.7,P1.0-P1.7,P2.0-P2.7,P3.0-P3.7。

①P0口(P0.0-P0.7)是一个8位漏极开路型双向I/O口,在访问外部存储器时,它是分时传送的低字节地址和数据总线,P0口能以吸收电流的方式驱动八个LSTTL负载。

②P1口(P1.0-P1.7)是一个带有内部提升电阻的8位准双向I/O口。

能驱动(吸收或输出电流)四个LSTTL负载。

③P2口(P2.0-P2.7)是一个带有内部提升电阻的8位准双向I/O口,在访问外部存储器时,它输出高8位地址。

P2口能够驱动(吸收或输出电流)四个LSTTL负载。

④P3口(P3.0-P3.7)是一个带有内部提升电阻的8位准双向I/O口。

(1)运算器

运算器的功能是进行算术运算和逻辑运算。

能够对半字节(4位)、单字节等数据进行操作。

(2)程序计数器PC

程序计数器PC用来寄存即将要执行的指令地址,共16位,可对64K程序存储器直接寻址。

执行指令时,PC内容的低8位经P0口输出,高8位经P2口输出。

(3)令寄放器

指令寄放器中寄存指令代码。

CPU执行指令时,由程序存储器中读取的指令代码送入指令寄放器,经译码后由按时与操纵电路发出相应的操纵信号,完成指令功能。

3、显示电路的选择与设计

关于数字显示电路,通常采纳液晶显示或数码管显示。

本设计的显示电路采纳7段数码管作为显示介质。

数码管显示能够分为静态显示和动态显示两种。

由于本设计需要采纳五位数码管显示时刻,若是静态显示那么占用的口线多,硬件电路复杂。

因此采纳动态显示。

图1.3显示电路大体原理图

动态显示是一名一名地连番点亮列位,这种逐位点亮显示器的方式称为位扫描。

通常列位的段选线相应并联在一路,由一个8位的I/O口操纵;

列位的公共阴极位选线由另外的I/O口线操纵。

动态方式显示时,各分时连番选通,要使其稳固显示必需采纳扫描方式,即在某一时刻只选通一名,并送出相应的段码,在另一时刻选通另一名,并送出相应的段码,依此规律循环,即可使列位显示将要显示的字符,尽管这些字符是在不同的时刻别离显示,但由于人眼存在视觉暂留效应,只要每位显示距离足够短就能够够给人同时显示的感觉。

数码显示管分为共阳数码管和共阴数码管两种

共阳极数码管的8个发光二极管的阳极(二极管正端)连接在一路,如图1.4(b),通常,公共阳极接高电平(一样接电源),其它管脚接段驱动电路输出端。

当某段驱动电路的输出端为低电平常,那么该端所连接的字段导通并点亮,依照发光字段的不同组合可显示出各类数字或字符。

现在,要求段驱动电路能吸收额定的段导通电流,还需依照外接电源及额定段导通电流来确信相应的限流电阻。

图1.4(a)数码管引脚图(b)共阳极内部结构图(c)共阴极内部结构图

最大

4、按键电路的选择与设计

本设计中有四个按键,别离实现开始、暂停、复位和计次功能。

这四个键能够采纳中断的方式,也能够采纳查询的方式来识别。

关于复位键和查看键,要紧功能在于数值复位和对上次计不时刻的查看,关于时刻的要求不是很严格,而开始和暂停键要紧用于时刻的锁定,需要比较准确的操纵。

因此能够考虑,对复位键和查看键采纳查询的方式,而关于开始和暂停键采纳外部中断。

四个按键均采纳低电平有效,具体电路连接图如图1.5所示。

5、时钟电路的选择与设计

单片机的时钟信号用来提供单片机内各类微操作的时刻基准,8051片内设有一个由反向放大器所组成的振荡电路,XTAL1和XTAL2别离为振荡电路的输入和输出端,8051单片机的时钟信号通经常使用两种电路形式取得:

内部振荡方式与外部振荡方式。

外部方式的时钟很少用,假设要历时,只要将XTAL1接地,XTAL2接外部振荡器就行。

对外部振荡信号无特殊要求,只要保证脉冲宽度,一样采纳频率低于11.05926MHz的方波信号。

图中,电容器C1 

、C2起稳固振荡频率、快速起振的作用,电容值一样为5~33pF。

但在时钟电路的实际应用中必然要注意正确选择其大小,并保证电路的对称性,尽可能匹配,选用正牌的瓷片或云母电容,若是可能的话,温度系数尽可能低。

本设计中采纳大小为30pF的电容和11.05926MHz的晶振。

图1.6内部振荡电路

6、复位电路的选择与设计

当8051单片机的复位引脚RST(全称RESET)显现2个机械周期以上的高电平常,单片机就完成了复位操作。

若是RST持续为高电平,单片机就处于循环复位状态,而无法执行程序。

因此要求单片机复位后能离开复位状态。

而本系统选用的是11.05926MHz的晶振,因此一个机械周期为1.09μs,那么复位脉冲宽度最小应为2.18μs。

在实际应用系统中,考虑到电源的稳固时刻,参数漂移,晶振稳固时刻和复位的靠得住性等因素,必需有足够的余量。

依照应用的要求,复位操作通常有两种大体形式:

上电复位、手动复位。

图1.10单片机复位电路

7、系统总电路的设计

系统总电路由以上设计的显示电路,时钟电路,按键电路和复位电路组成,只要将单片机与以上各部份电路合理的连接就组成了系统总电路。

系统总电路图附录B所示。

8051单片机为主电路的核心部份,各个电路均和单片机相连接,由单片机统筹和和谐各个电路的运行工作。

8051单片机提供了XTAL1和XTAL2两个专用引脚接晶振电路,因此只要将晶振电路接到两个专用引脚即可为单片机提供时钟脉冲,但在焊接晶振电路时要尽可能使晶振电路靠近单片机,如此能够为单片机提供稳固的始终脉冲。

复位电路同晶振电路,单片机设有一个专用的硬件复位接口,并设置为高电平有效。

按键电路与单片机的端口连接能够由用户自己设定,本设计中软件复位键和查看键别离接单片机的P1.1和P2.5,均设为低电平有效。

而另外的开始键和暂停键两键利用了外部中断,因此需要连接到单片机的特殊接口P3.3和P3.2,这两个I/O口的第二功能别离为单片机的外部中断1端口和外部中断0端口。

一样设置为位低电平有效。

显示电路由五位数码管组成,采纳动态显示方式,因此有8位段操纵端和5位位操纵端,八位段操纵接P0口,P0.0~P0.7别离操纵数码显示管的a、b、c、d、e、f、g、dp显示,8051的P0口没有集成上拉电阻,高电平的驱动能力很弱,因此需要接上拉电阻来提高P0的高电平驱动能力。

五位位操纵那么由低位到高位别离接到P2.0~P2.4口,NPN三极管9013做为位操纵端的开关,当P2.0~P2.4端口任意一个端口为高电平常,与其相对应的三极管就导通,对应的数码管导通显示。

通过以上设计已经将各部份电路与单片机有机的结合到一路,硬件部份的设计以大功告成,剩下的部份确实是对单片机的编程,使单片机按程序运行,实现数字电子秒表的全数功能。

五、具体实现进程

一、对数字秒表设计进行分析,敲定几组方案;

2、在PROTUES软件中,画电路图,进行仿真、调试;

3、对自己想要实现的秒表现象进行编程,运用KEIL软件;

并于Proteus联调。

4、调试进程中要不断改良自己的方案;

六、测试各个所需元件,STC89C52RC,数码管。

7、将方案敲定以后,对LED数字秒表进行焊接其中最要紧的是对最小系统的焊接时超级关键的,在进行焊接数码管时,很关键。

八、将最小系统焊接好以后要用数字万用表进行测试,第一要测试有无短接、断接的地址,再将焊好的板子放在电源上进行加电,看电路板子是不是正常工作。

九、将最小系统板子与数码管板子连在一个,通过USB口与电脑相连,打开串口助手,将KEIL软件中的程序下载到单片机中,进行验证。

10、具体程序

/********************************************************

*文件名:

秒表.c

*描述:

基于51单片机的数码管数字秒表;

带有指示灯,蜂鸣器,按键(启动、清零、计次)

*创建人:

罗宏

*单位:

佳木斯大学信息电子技术学院电子协会

*日期:

2014.6.26

*开发环境:

Keil4

*邮箱:

744544126@

*晶振:

11.05926MHZ

*版本号:

*********************************************************/

#include<

reg52.h>

#defineuintunsignedint//宏定义无符号整型

#defineucharunsignedchar//宏定义无符号字符型

#defineDUAN(P0)//宏定义数码管段代码

#defineWEI(P2)//宏定义数码管位代码

sbitkeystart_stop=P3^2;

//定义启动/停止按键

sbitkeyrest=P3^3;

//定义复位/清零按键

sbitkeyrecord=P3^4;

//定义计数/存储按键

sbitkeydispaly=P3^5;

//定义计数/显示按键

sbitbeep=P3^6;

//定义蜂鸣器

sbitled=P3^7;

//定义

ucharx,msec5,msec10,second,minute;

//时间变量

ucharmsec,sec,min;

//显示变量

ucharcodetable1[]={0xc0,0xf9,0xa4,0xb0,

0x99,0x92,0x82,0xf8,0x80,0x90};

//共阳数码管数组不带点显示

ucharcodetable2[]={0x40,0x79,0x24,0x30,

0x19,0x12,0x02,0x58,0x00,0x10};

//共阳数码管带点显示

/********************************

函数名称:

延时函数delay

功能:

延时指定毫秒

参数:

ucharx

返回值:

********************************/

voiddelay(ucharx)

{

uintb,c;

for(b=x;

b>

0;

b--)

for(c=110;

c>

c--);

}

按时器初始化函数time_init(void)

按时器初始化

*********************************/

voidtime_init(void)

msec5=0;

TMOD=0x01;

TH0=(65536-9174)/256;

TL0=(65536-9174)%256;

ET0=1;

TR0=1;

EA=1;

显示函数display()

数码管显示

ucharmsec,ucharsec,ucharmin

voiddisplay(ucharmsec,ucharsec,ucharmin)

DUAN=table1[(msec%10)%10];

//0.01秒5.64%10=64%10=0.04

WEI=0x01;

delay

(2);

WEI=0x00;

DUAN=table1[(msec/10)%10];

//0.1秒5.64/10=56%10=0.6

WEI=0x02;

DUAN=table2[(sec%10)];

//1秒564%10=6

WEI=0x04;

DUAN=table1[(sec/10)];

//10秒564/10=56%10=6

WEI=0x08;

DUAN=table1[(min%10)];

//1分564/10=56%10=6

WEI=0x10;

DUAN=table1[(min/10)];

//10分564/10=56%10=6

WEI=0x20;

}

蜂鸣器函数

蜂鸣器发声

voidbeep_led()

beep=0;

delay(600);

beep=1;

led=0;

led=1;

按键函数

调试按键的函数

voidkeys()

if(keystart_stop==0)

{

delay(5);

if(keystart_stop==0)

TR0=~TR0;

beep_led();

while(!

keystart_stop);

}

if(keyrest==0)

{

delay(5);

if(keyrest==0)

TR0=0;

msec5=0;

msec10=0,

second=0;

minute=0;

beep_led();

while(!

keyrest);

主函数

voidmain()

ucharjishu=0;

ucharflag=0;

ucharmsec1=0,sec1=0,min1=0;

ucharmsec2=0,sec2=0,min2=0;

time_init();

while

(1)

keys();

//键盘的扫描函数一定要放在while循环里边

msec=msec10;

sec=second;

min=minute;

if(flag==1)

{

display(msec1,sec1,min1);

}

elseif(flag==0)

{

display(msec,sec,min);

else

display(msec2,sec2,min2);

if(keyrecord==0)

{

if(keyrecord==0)

{

beep_led();

jishu++;

if(jishu>

2)

{

jishu=0;

}

elseif(jishu==1)

msec1=msec10;

sec1=second;

min1=minute;

}

elseif(jishu==2)

msec2=msec10;

sec2=second;

min2=minute;

}

while(!

keyrecord);

if(keydispaly==0)

{

delay(5);

if(keydispaly==0)

beep_led();

flag++;

if(flag>

flag=0;

}

while(!

keydispaly);

}

}

/**********************************

中断函数

***********************************/

voidtimer0()interrupt1

msec10++;

//msec10加一次等于10ms

if(msec10==100)//j=100为1s

msec10=0;

second++;

if(second==60)//second=60为1minute

second=0;

minute++;

if(minute==60)//minute=60为1hour

minute=0;

}

六、仿真、实验验证进程及实现结果、现象

七、结论

本设计的数字电子秒表系统采纳89C52单片机为中心器件,利用其按时器/计数器按时和记数的原理,结合显示电路、LED数码管和外部中断电路来设计计时器。

将软、硬件有机地结合起来,使得系统能够实现八位LED显示,显示时刻为0~59分59.59秒,计时精度为0.01秒,能正确地进行计时,同时能记录两次时刻,并在计时后对上一次计

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1