ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:96.25KB ,
资源ID:7806815      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7806815.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于51单片机的秒表设计1可编辑修改word版.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于51单片机的秒表设计1可编辑修改word版.docx

1、基于51单片机的秒表设计1可编辑修改word版实训报告题 目 秒表系统的设计 年 级 专 业 班 级 学 号 姓 名 地 点 日 期 一,设计目标 3二,系统硬件设计 4三,系统软件设计 7四,系统调试与设计结果 12五,单片机实训小结 13设计目标近年来随着科学技术的发展,单片机的应用范围越来越广,也成为很多专业的必修课。本文简单阐述了基于单片机的秒表设计。本设计的主要特点是计时精度达到 0.01 秒,可以用来为各种体育竞赛计时等。本设计的数字秒表采用 AT89 才 51 单片机为主要器件,利用其定时器的原理, 结 LED 数码管以及外部中断电路来设计计时器。将软硬件结合起来,使得系统能实现

2、 099.99 秒的计时,计时精度位 0.01 秒。当按下一个键 1 时,开始显示数字, 即计时开始,再按下键 2 时,暂停计时并显示刚才的结果,这个时候如果再按键 1, 则继续计时,也就是显示的数字包括刚才的数据。按下键 3 时,数据清零。系统硬件设计1、1 总体方案的设计数字秒表具有显示直观、读取方便、精度高等优点,在计时中广泛应用。本设计中用单片机和数码管组成数字秒,力求结构简单。设计中包括硬件电路的设计和系统程序的设计。硬件电路主要有主控制器、控制按钮与显示电路组成。主控制器采用单片机 AT89 才 51,显示电路采用四位共阴极数码管显示计时时间。本设计利用 AT89 才 51 单片机

3、的定时器,使其能精确计时。利用键盘上的独立按键实现开始计时和暂停以及清零。P0 口输出段码数据,P2.0P2.2 连上译码器作为位选。设计的基本要求是正确性。计时器采用 T0 中断实现,定时溢出中断周期为 1ms,当溢出中断后向 CPU 发出溢出中断请求,每发出 10 次中断请求就对 10ms 位(即最后一位)加一,达到 100 次就对 100ms 位加一,以此类推,直到 99.99s 为止。1.2单片机的选择本设计在选取单片机时,充分借鉴了许多成型产品使用单片机的经验。并根据自己的实际情况,选用了 ATMEL 公司的 AT89 才 51。ATMEL 公司的 89 系列单片机以其卓越的性能、完

4、善的兼容性、快捷便利的电擦写操作、低廉的价格完全替代了 87C51/62 和 8751/52,低电压、低功耗, 有 DIP、PLCC、QFP 封装,是目前性能最好、价格最低、最受欢迎的单片机之一。AT89 才 51 为 40 脚双列直插封装的 8 位通用微处理器,采用工业标准的 C51 内核,在内部功能及管脚排布上与通用的 8XC52 相同,其主要用于汇聚调整时的功能控制。功能包括对汇聚主 IC 内部寄存器、数据 RAM 及外部接口等功能部件的初始化,汇聚调整控制,汇聚测试图控制等。单片机外部结构(1)主电源引脚 Vss 和 Vcc:Vss 接地,Vcc 正常操作时为+5V 接地。外接晶振引脚

5、 XTAL1 和 XTAL2a、XTAL1 内部振荡电路反相放大器的输出端,是外接晶体的一个引脚。当采用外部振荡时,此引脚接地。b、XTAL2 内部振荡电路反相放大器的输出端,是外接晶体的的另一端。当采用外部振荡时,此引脚接外部振荡源。(2)控制或与其他电源复用引脚a、RST/VPD 当振荡器运行是,在此引脚上出现两个机器周期的高电平(由低到高跳变),将使单片机复位在 Vcc 掉电期间,此引脚可接上备用电源,由 VPD向内部提供备用电源,以保持内部 RAM 中的数据。b、ALE/PROG 正常操作时为 ALE 功能(允许地址锁存)提供把地址的低字节锁存到外部存储器,ALE 引脚以不变的频率(振

6、荡器频率的 1/6)周期性的发出正脉冲信号。因此,它可以用作对外输出的时钟,或用于定时目的。c、PSEN 外部程序存储器读选通信号输出端,在从外部程序存储取指令(或数据)期间,PSEN 在每个机器周期内两次有效。d、EA/Vpp 内部程序存储器和外部程序存储器选择端。当 EA/Vpp 位高电平时, 访问内部程序存储器,当 EA/Vpp 为低电平时,则访问外部程序存储器。对于 EPROM 编程期间,此引脚上加 21VEPROM 编程电源(Vpp)。(3)a、P0 口(P0.0P0.7)是一个 8 位漏极开路型双向 I/O 口,在访问外部存储器时,它是分时传送的低字节地址和数据总线,P0 口能以吸

7、收电流的方式驱动八个 LSTTL 负载。b、P1,P3 口(P1.0P1.7)是一个带有内部上拉电阻的 8 位准双向 I/O 口。能驱动四个 LSTTL 负载。c、P2 口(P2.0P2.7)是一个带有内部上拉电阻的 8 位准双向 I/O 口,在访问外部存储器时,它输出高 8 位地址。P2 口可以驱动四个 LSTTL 负载。1.3显示电路的选择与设计对于数字显示电路,通常采用液晶显示或数码管显示。对于一般的段式液晶屏,需要专门的驱动电路,而且液晶显示作为一种被动显示,可视性差,不适合远距离观看;对于具有驱动电路和单片机接口的液晶显示模块,一般多采用并行接口,对单片机的接口要求较高,占用资源多;

8、另外,AT89S52 单片机本身没有专门的液晶驱动接口。而数码管作为一种主动显示器件,具有亮度高、响应速度快、价格便宜、易于购买等优点,而且有远距离视觉效果,很适合夜间或者远距离操作。因此在本设计中,我们采用 7 段数码管作为显示介质。数码管显示可以分为静态显示和动态显示两种。由于本设计需要采用四位数码管显示时间,如果静态显示则占用的口线多,硬件电路复杂,所以采用动态显示。动态显示是一位一位地轮流点亮各位数码管,这种逐位点亮显示器的方式称为位扫描。通常各位数码管的段选线相应并联在一起,由一个 8 位的 I/O 口控制; 各位的公共阴极位选线由另外的 I/O 口线控制。动态方式显示时,各数码管轮

9、流选通,要使其稳定显示必须采用扫描方式,即在某一时刻只选通一位数码管并送出相应的段码,在另一时刻选通另一数码管,并送出相应的段码,依次规律循环, 即可以使各位数码管显示将要显示的字符,虽然这些字符是在不同时刻分别显示,但由于人眼存在视觉暂留效应,只要每位显示间隔足够短就可以给人同时显示的感觉。1.4系统总体电路的设计系统总体电路如下图所示AT89 才 51 单片机为主电路的核心部分,各个电路均与单片机相连,由单片机统筹协调各个电路的运行工作。显示电路由四位数码管组成,采用动态显示方式,因此有 8 位段控制和 4 位位控制,8 位段接控制接 P0 口,P0.0P0.7 分别控制数码管的 a b

10、c d e f g dp 显示 。系统软件设计2.1主程序设计本系统程序主要模块由主程序、定时中断服务程序、程序组成。主程序主要是对定时器赋初值,开总中断、定时器溢出中断。2.2定时器 T0 中断服务程序当 T0 一处后,向 CPU 发出中断请求信号。CPU 跳转到定时中断程序执行,当中断次数为 2 时为 10ms。具体流程如下:定时器中断入口 重置计数初值 中断次数加 1 中断次数等于2? 中断次数清零,0.01 秒位加 1 0.01 秒位到 10? 0.01 秒位清零,0.1 秒位加 1 0.1 秒位到 10? 0.1 秒位清零,1 秒位加 1 1 秒位到 10? 1 秒位清零,10 秒位

11、加 1 10 秒位到 10? 10秒位清零 中断返回。2.3程序清单#include#define uint unsigned int #define uchar unsigned char void delay(uint); /延时程序sbit k1=P34; /定义开始键sbit k2=P35; /定义暂停键sbit k3=P36; /定义清零键sbit dula=P26;sbit wela=P27; uchar code table= 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f;uchar tt,i,j,k,l;void dis

12、play(uchar i,uchar j,uchar k,uchar l); /数码管显示数void main()tt=0; i=0; j=0; k=0;l=0; /数码管显示 0TMOD=0x01; /设置定时器为模式 1TH0=(65536-5000)/256; /给定时器赋定时初值TL0=(65536-5000)%256;EA=1; /开总中断ET0=1;TR0=0;while(1)if(k1=0) /判断是否按下开始键delay(10); /消抖if(k1=0)TR0=1;if(k2=0) /判断是否按下暂停键delay(10); /消抖if(k2=0)TR0=0;if(k3=0) /

13、判断是否按下清零键delay(10);if(k3=0)i=0;j=0;k=0;l=0;TR0=0; /清零display(i,j,k,l); /数码管显示void delay(uint z)uint x,y; for(x=100;x0;x-)for(y=z;y0;y-); /延时void exter0() interrupt 1 /定时器溢出中断TH0=(65536-5000)/256; /重装计时初值TL0=(65536-5000)%256;tt+; if(tt=2)tt=0;i+; /溢出两次,0.01 秒位加 1 if(i=10)i=0;j+; /0.01 秒位到 10,0.1 位加 1

14、if(j=10)j=0;k+; /0.1 秒位到 10,1 秒位加 1if(k=10)k=0;l+; /1 秒位到 10,10 秒位加 1if(l=10)l=0; /10 秒位到 10,清零void display(uchar i,uchar j,uchar k,uchar l)dula=1;P0=tablei; /显示数值dula=0;wela=1;P0=0xf7; /0.01 秒位显示wela=0;delay(1);dula=1; /数值显示P0=tablej;dula=0; wela=1;P0=0xfb; /0.1 秒位显示wela=0;delay(1);dula=1; /数值显示P0=

15、tablek|0x80; /始终在 1 秒位后面显示小数点dula=0;wela=1;P0=0xfd; /1 秒位显示wela=0;delay(1); dula=1;P0=tablel; /数值显示dula=0;wela=1;P0=0xfe; /10 秒位显示wela=0;delay(1);系统调试与设计结果利用开发板显示结果:通过 STC-ISP V29 Beta5,将程序与开发板连接起来,此时,数码管前 4 位均显示 0.按下键盘上独立键中的 P34 键,开始计时。按下 P35 键,即暂停计时。此时若继续按下 P34 键,则继续计时,在此前数据基础上计时。按下 P36 键, 则表示清零,数

16、码管前四位均显示 0。当计数值到 99.99 时,接下来数码管又会回到开始那样,从 0 累加并显示。单片机实训小结不知不觉,十天的单片机实训又结束了,不得不感慨,有事做了,时间也过的超快。此前的 labview 实训,由于学的不那么难,就导致我不是很重视,上课的时候就盼着下课。而这个单片机实训,一直在忙活,竟然就这样结束了。很久以前就听说过单片机,也尝试过去图书馆借阅,可是借回来后,一直放到超期都没动过,后来翻了一下正文第一页,根本不知道说的什么,从那以后, 就一直认为单片机是个很难很难的东西。有了那个想法后,就一直排斥单片机, 觉得自己肯定学不会。所以,在 8 月 12 号到 14 号实训期

17、间,我什么都没干,老师讲课没听,别人在看视频我在玩。当我开始看视频的时候,别人已经开始编程, 然后用 protues 仿真了,这个时候我就意识到自己的问题大了。于是,开始狂追, 我看的是郭天祥的 51 单片机视频教程,也没看书,没看其他东西,就只依靠他的视频,好在他讲课的内容也是一步一步从基本讲起,在我的接受范围之内。刚看的时候,觉得自己当初的排斥太错误了,所以有点怠慢,越到后期越觉得,学单片机真耗时间,不能小觑。后来便开始认真对待。因此,到现在为止,也学到了很多东西。单板机也就是将 CPU 芯片、存储器芯片、I/O 接口芯片和简单的 I/O 设备(小键盘、LED 显示器)等装配在一块印刷电路

18、板上,再配上监控程序(固化在 ROM 中),就构成了一台单板微型计算机(简称单板机)。单片机的用途非常广泛,主要有:一,实物展示、用到单片机的项目经验介绍、手持粮库温度寻检设备、毕页设计答辩打分器、电话台灯、自动感应水龙头等等。二,工业自动化:数据采集、测控技术。三,智能仪器仪表:数字示波器、数字信号源、数字万用表、感应电流表等。四,消费类电子产品:洗衣机、电冰箱、空调机、电视机、微波炉、手机、IC卡、汽车电子设备等。五,通讯方面:调制解调器、程控交换技术、手机、小灵通等。六,武器装备:飞机、军舰、坦克、导弹、航天飞机、鱼雷制导、智能武器等。凡是与控制或简单计算有关的电子设备都可以用单片机来实

19、现,可见单片机对科技发展的作用之大。学单片机需要的基础:与以前所学的知识关联很少,只需要掌握很基本的数电模电知识,如二进制、十进制、十六进制之间的转换,与、或、非逻辑关系等, 对各种器件的概念基本上是从 0 开始,如果要用 C 语言编程,需具备简单的 C 语言基础。而我们之前都学过 C 语言,这也让我们对单片机的学习稍微简化了一点, 这样几乎所有人都站在了同一起跑线上。其实到现在,我也只学到了键盘那里,看了接近 5 集视频,平均每集都差不多 3 个小时,而且在看的过程中还要停下来,自己编程,再仿真。眼睛一直对着电脑,看的眼都花了,而且有些程序即使编对了,在 protues 仿真时也可能出错。后

20、来买了开发板,就顿时觉得兴趣上来了,可以准确的看到自己的程序的效果, 自豪感油然而生。,每天对着电脑,但是有所收获,虽然身体受伤害,精神上却非常开心。这也极大的提高了我对单片机的兴趣。后来老师布置了作业,题目是基于 51 单片机的秒表设计,当时听到这个题目,凭想像再加上想到之前的 labview 就觉得这个设计应该不难,因此,开始没想着做题,还是依旧慢吞吞的看我的视频,直到前天我企图编程序的时候才发现, 我压根不知道要用到哪些程序,或者说不知道如何把我的想法,用正确的程序编出来,也因为毕竟 keil 跟 C 语言不是完全一样的,所不清楚 keil 对程序的硬性要求有哪些,因此编了很久,也编的乱七八糟,还总是显示错误,又由于程序有点长,也不容易找出错误。还有,有些语句之间的位置倒了就导致整个程序运行不出自己想要的结果,最后弄的我心力交瘁。这个时候才发现,现实与理想之间的差别太大了。今天是最后一天了,这十天累并快乐着,学到了很多东西。真心感谢学校可以给我们提供这样的平台和机会,也很感谢老师们不辞劳苦的给我们上课,也希望以后还能有这样的机会,即使没有,我也会自己摸索。我想,我们整个班的同学都不会浪费这个机会,我们都在好好学!

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

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