用定时器计数器设计一个简单的秒表Word格式.docx

上传人:b****6 文档编号:21991009 上传时间:2023-02-02 格式:DOCX 页数:13 大小:496.99KB
下载 相关 举报
用定时器计数器设计一个简单的秒表Word格式.docx_第1页
第1页 / 共13页
用定时器计数器设计一个简单的秒表Word格式.docx_第2页
第2页 / 共13页
用定时器计数器设计一个简单的秒表Word格式.docx_第3页
第3页 / 共13页
用定时器计数器设计一个简单的秒表Word格式.docx_第4页
第4页 / 共13页
用定时器计数器设计一个简单的秒表Word格式.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

用定时器计数器设计一个简单的秒表Word格式.docx

《用定时器计数器设计一个简单的秒表Word格式.docx》由会员分享,可在线阅读,更多相关《用定时器计数器设计一个简单的秒表Word格式.docx(13页珍藏版)》请在冰豆网上搜索。

用定时器计数器设计一个简单的秒表Word格式.docx

Proteus拥有丰富的资源,它表达在:

1.Proteus可提供的仿真元器件资源:

仿真数字和模拟、交流和直流等数千种元器件,有30多个元件库。

2.Proteus可提供的仿真仪表资源:

示波器、逻辑分析仪、虚拟终端、SPI调试器、I2C调试器、信号发生器、模式发生器、交直流电压表、交直流电流表。

理论上同一种仪器可以在一个电路中随意的调用。

3.除了现实存在的仪器外,Proteus还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似,但功能更多。

这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗。

这些都尽可能减少了仪器对测量结果的影响。

4.Proteus可提供的调试手段Proteus提供了比拟丰富的测试信号用于电路的测试。

这些测试信号包括模拟信号和数字信号。

Proteus不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。

前者可在相当程度上得到实物演示实验的效果,后者那么是实物演示实验难以到达的效果。

课程设计、毕业设计是学生走向就业的重要实践环节。

由于PROTEUS提供了实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相比的虚拟仪器、仪表,因而也提供了培养学生实践精神、创造精神的平台

随着科技的开展,“计算机仿真技术〞已成为许多设计部门重要的前期设计手段。

它具有设计灵活,结果、过程的统一的特点。

可使设计时间大为缩短、耗资大为减少,也可降低工程制造的风险。

相信在单片机开发应用中PROTEUS也能茯得愈来愈广泛的应用。

2主要相关硬件介绍

2.1AT89C52简介

AT89C52是一个低电压,高性能CMOS8位单片机,片含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器〔RAM〕,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。

AT89C52单片机参数如下:

1、兼容MCS51指令系统

2、8kB可反复擦写(大于1000次〕FlashROM;

3、32个双向I/O口;

4、256x8bit部RAM;

5、3个16位可编程定时/计数器中断;

6、时钟频率0-24MHz;

7、2个串行中断,可编程UART串行通道;

8、2个外部中断源,共8个中断源;

9、2个读写中断口线,3级加密位;

10、低功耗空闲和掉电模式,软件设置睡眠和唤醒功能;

11、有PDIP、PQFP、TQFP及PLCC等几种封装形式,以适应不同产品的需求。

AT89C52工作原理与AT89C51单片机工作原理类似,AT89C52为8位通用微处理器,采用工业标准的C51核,在部功能及管脚排布上与通用的8xc52一样,其主要用于会聚调整时的功能控制。

功能包括对会聚主IC部存放器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。

主要管脚有:

XTAL1〔19脚〕和XTAL2〔18脚〕为振荡器输入输出端口,外接12MHz晶振。

RST/Vpd〔9脚〕为复位输入端口,外接电阻电容组成的复位电路。

VCC〔40脚〕和VSS〔20脚〕为供电端口,分别接+5V电源的正负端。

P0~P3为可编程通用I/O脚,其功能用途由软件定义,在本设计中,P0端口〔32~39脚〕被定义为N1功能控制端口,分别与N1的相应功能管脚相连接,13脚定义为IR输入端,10脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS〔18脚〕和SCLS〔19脚〕端口,12脚、27脚及28脚定义为握手信号功能端口,连接主板CPU 

的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能,详细端口分布见图2-1

图2-1AT89C52端口图

2.2四位数码管

四位数码管可以分为共阳极与共阴极两种,共阳极就是把所有LED的阳极连接到共同接点,而每个LED的阴极分别为a、b、c、d、e、f、g及dp〔小数点〕;

共阴极那么是把所有LED的阴极连接到共同接点,而每个LED的阳极分别为a、b、c、d、e、f、g及dp〔小数点〕,如下列图2-2所示。

通过控制各个LED的亮灭来显示数字。

图2-2四位数码管

2.374LS139芯片介绍

74LS139为两个2线-4线译码器,共有54/74S139和54/74LS139两种线路构造型式,中选通端〔G1〕为低电平,可将地址端〔A、B〕的二进制编码在一个对应的输出端以低电平译出。

假设将选通端〔G1〕作为数据输入端时,139还可作数据分配器。

具体的端口图见图2-3

.

图2-374LS139引脚图

3设计原理

利用AT89S52单片机的定时器,使其能准确计时。

利用中断系统使其实现启动、暂停以及复位清零的功能,P0口输出段码数据,P2.0~P2.2连上译码器作为位选,P3.2和P3.3接口的两个按钮分别实现启动/暂停和复位功能。

计时器采用T0中断实现,定时溢出中断周期为1ms,当溢出中断后向CPU发出溢出中断请求,每发出10次中断请求就对10ms位〔即最后一位〕加一,到达100次就对100ms位加一,以此类推,直到99.99s为止。

再看按键的处理。

两个按键采用中断的方法,设置外部中断0和外部中断1位脉冲边沿触发方式,这样一来每当按键按下时便会触发中断,从而实现启动/暂停和复位。

开场键和暂停键使用了外部中断,所以需要连到单片机的P3.2和P3.3引脚上,这两个I/O口的第二功能是单片机的外部中断0端口和外部中断1端口。

显示电路由四位数码管组成,采用动态显示方式,因此有8位段控制和4位位控制,8位段接控制接P0口,P0.0~P0.7分别控制数码管的abcdefgdp显示,位控制接在P2.0和P2.1两个口,在通过一个2—4译码器实现位控制。

4电路设计

4.1电路框图设计

图4-1电路设计框图

4.2电路模块介绍

4.2.1控制电路

图4-2控制模块

本次课设设计了两个按钮,一个为开场和暂时按钮,另外一个为复位按钮,当按下按钮时,会根据程序中的相应中断程序来实现相关功能。

4.2.2译码电路

图4-32-4译码电路

2-4译码电路通过74LS139芯片来实现译码功能,其中A口接单片机P2.0口,B口接P2.1口,E口接地,Y0~Y3口接数码管的1234口,2-4译码电路实现了对数码的位选功能。

4.2.3数码管显示电路

图4-4数码管显示电路

本次显示使用的数码管为八段数码管,共有8八二极管显示单元,其中一个为小数点了,A、B、C、D、E、F、G、DP口接单片机上的P0.0~P0.7口,来进展段选,1~4口接上文的译码电路。

完成对秒表记时的显示。

4.3仿真电路图

图4-2仿真电路

5设计代码

#include<

reg52.h>

unsignedintdatatable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

//显示码值

unsignedinti,j,k,l,count;

charsw=0;

voiddelay(unisignedintz)//延时程序

{

unsignedintx,y;

for(x=z;

x!

=0;

x--)

for(y=110;

y!

y--);

}

voidmain()

TMOD=0x01;

//设置定时器为模式1

TH0=(65536-1000)/256;

//给定时器赋定时初值

TL0=(65536-1000)%256;

EA=1;

//开中断

EX0=1;

//翻开外部中断0中断

EX1=1;

//翻开外部中断1中断

ET0=1;

//翻开T0中断

IT0=1;

//设置外部中断位脉冲边沿触发方式

IT1=1;

//跳变沿触发方式INT1上电平从从高到低的负跳变有效

while

(1)//数码显示

{

P2=0x03;

P0=table[i];

delay

(1);

P2=0x02;

P0=table[j];

P2=0x01;

P0=(table[k]+0x80);

P2=0x00;

P0=table[l];

};

voidex0()interrupt0//外部中断0

sw=!

sw;

//设置复位

TR0=sw;

voidex1()interrupt2//外部中断0

l=k=j=i=0;

voidtimer0()interrupt1//定时器T0溢出中断

//重装计数初值

count++;

//溢出中断次数加一

if(count==10)

count=0;

i++;

//溢出10次,0.01s位加一

if(i==10)

{

i=0;

//0.01s位到10了,清零,0.1s位加一

j++;

if(j==10)

{

j=0;

//0.1s位到10了,清零,1s位加一

k++;

if(k==10)

{

k=0;

//1s位到10了,清零,10s位加一

l++;

}

}

}

}

6仿真图

图6-1开场记时

图6-2暂停记时

图6-3复位

7仿真结果分析

通过以上的分析,我们可知所设计的秒表计时器,可实现记时功能,既可以进展启动记时,也可以通过同一个按键来实现暂停,并能通过复位清零键来使秒表记时器复位,以实现重新记时,在记时到99秒时,秒表会自动清零,需要重新按开场键才可以。

8实物图

图8-1单片机实物图

9心得体会

本次课设要求我们定时器/计数器设计一个简单的秒表,能显示计时状态和结果。

要求进展电路实验或仿真,并使用C语言进展程序的开发。

能力拓展训练使得我们又一次熟悉了已学的C语言和先学的单片机的应用。

通过这次能力拓展使我们的动手能得到了提升,而且学会了独立完成一项任务。

在做这次设计之前,通过查找相关资料,我已经对本次课设有了一定的了解,在查询了大量资料和请教同学之后,我最终能成功的做出本次课设。

但是在做课设的过程中发现有很多知识点没有掌握,根底知识不可缺少,但是一些核心的高层次的知识点更是不可无视。

在完成课设的过程中没少向同学请教,由此我意识到,任何时候任何事情,闭门造车是不可取的,要一直坚持向周围的师长,同学求教,以取得新的思考途径。

通过这次强化训练根底课程知识的了解。

这次的能力拓展训练主要与C语言编程和单片机原理等方面的知识,充分锻炼了我运用所学知识解决实际问题的能力。

通过查阅资料,温习课本知识和学习笔记,我深刻领悟到各课程之间的联系,并初步掌握了综合运用课本知识分析问题的方法。

本次简单秒表的设计采用单片机与微机原理编程的方法,实现了秒表Proteus原理图的绘制和仿真,到达了预期目的,完成了设计的任务要求。

这次设计充分检验了我自学的能力。

这次的设计任务涉及到了许多软件方面的知识。

通过查阅资料,我不但稳固了所学的课本知识,而且学会了熟练使用许多软件。

通过这次拓展训练,我也意识到自己的缺乏,单片机方面的知识对我们工作和学习都非常重要,而我在这方面还存在很多缺乏,以后还是要多多学习相关知识,虚心请教他人才能取得长足的进步,是自己的专业知识技能更近一步,使自己在以后的学习工作有能力胜任相关的工作要求。

参考文献

[1]群芳,士军.单片微型计算机与接口技术.电子工业,2021.7.1

[2]毅刚.基于Proteus的单片机课程的根底实验与课程设计.人民邮电.2021.4

[3]薛晓书.单片微机原理及接口技术[M].石油大学2002.3

[4]朱清慧.Proteus教程.清华大学.2021.6

[5]郭天祥.新概念51单片机C语言教程.电子工业.2021.1.1

[6]JohnByrne,JohnBolton等编著.Proteus.Marvelics,2021.5

本科生课程设计成绩评定表

XX

性别

专业、班级

课程设计题目:

试用定时器/计数器设计一个简单的秒表,能显示计时状态和结果。

课程设计辩论或质疑记录:

成绩评定依据:

最终评定成绩〔以优、良、中、及格、不及格评定〕

指导教师签字:

年月日

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

当前位置:首页 > 解决方案 > 解决方案

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

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