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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

09郑樟杰项目二简易秒表.docx

1、09郑樟杰项目二 简易秒表项目二 简易秒表一、设计要求(1)1、使用单片机,设计秒表,能显示分分秒秒;2、使用三个按键停止,开始,复位,其中“开始”按键当开关由上向下拨时开始计时,此时若再拨“开始”按键则数码管暂停;“清零”按键当开关由上向下拨时数码管清零,此时若再拨“开始”按键则又可重新开始计时;3、使用液晶或数码管显示;4、使用外部中断:INT0开始,INT1停止(2)、设计思路: (1)整体程序主要分为3个部分:主程序、显示子程序和定时器中断程序。主程序主要是初始化部分和不断调用动态显示子程序部分。动态显示子程序完成4位LED的轮流位扫描,它被主程序不断调用,以保证稳定可靠的显示。显示时

2、间的刷新由定时器中断产生,定时器每100 ms中断一次,当中断10次后(即1 s后),对时间单元(秒计数单元、分计数单元)进行更新,然后通过拆字子程序将时间单元里面的十六进制数拆开为两个BCD码,并送到显示缓冲区。返回主程序后显示缓冲区的待显示数据被刷新一次,数码管相应的显示数值也就随之发生变化。 (2)用中断的编程思路使用定时器T0,定时器工作在定时方式,实现1秒定时,秒表计时显示用动态显示方式实现;通过键盘扫描方式取得KE0、KE1、KE2的键值,用键盘的中断处理程序实现秒表的启动、停止、清0等功能。4位LED显示的位码由单片机的P2口输出,段码由P0口输出,P2口线与LED之间接有200

3、限流电阻;LED为共阳极数码管,显示方式为动态显示方式;3个按键可以采用独立式键盘,其中两个按键分别连接到外部中断INT0、INT1,第3个按键连接到定时器1的T1端口,以中断方式实现键盘的扫描。二、硬件电路设计 1、单片机最小系统2、数码管的电路3、按键电路三、软件设计1、流程图2、说明解释:程序从主函数开始,初始化端口,定时器赋初值TH0=3CH,TL0=AFH,设置成允许定时器中断,开始定时,若定时时间到50ms,定时器溢出,执行中断函数;计数值timecount0加1,若timecount0加到100,timecount0就清为0之后,timecount加1,若timecount0等于

4、50,说明1s到了,timecount清空,秒计数器加1;把当前的时间送到P0,P2口在数码管上显示。判断TR0的值是否为0,若为0,这当前按键是开始,暂停或继续,若不为0,都要判断P3_4是否等于0,若等于0,计数值0,不等于0,退出中断,返回主函数,继续计数。三、系统测试(1).硬件调试硬件调试可分为脱机调试与联机调试两步进行。脱机调试是在用户系统未工作时的一种硬件检测。第一步:目测。检查外部的各种元件或者是电路是否有断点。目测结果:电路及各元件正常。第二步是通电检查。通电后发现各个交通灯均能发光,证明电路线路无误。联机调试:将编好的程序写入单片机后进行调试。(2).软件调试通过PROTE

5、US仿真,我们的程序能够实现想要所有功能,包括显示到记时、外部中断功能。在仿真时,应注意一下几个方面的问题:1. proteus仿真和用wave软件生成的hex文件应保存在同一个文件夹里,否则程序不能正常执行 2. 在运行proteus仿真图之前,必须先装载文件,要不然程序也无法正常运行。 3. 在proteus仿真过程中,硬件复位电路可能会不能实现复位功能,这对实际的硬件电路没有影响,需要复位时直接将proteus软件复位即可。 4. 由于我们的软件运行时在电脑上进行的,所以程序的精确度和电脑有关,在有些运行比较慢或者在电脑运行程序比较多的时候,计时会不准确,这种情况应当考虑。 5. 程序在

6、刚启动或者在暂停后继续运行的时候,反应比较慢,计时不准,不知道此问题在实际电路中会不会出现。(3)1.打开STC2.step1 步骤Selse MCU Type选择型号“STC12C5A60S2”,选择COM 端口 “COM3”3.打开程序文件“.HEX”文件4.点击Download/下载(4)时间的误差的调试过程若定时器为计数方式,操作方式为1,则计数器初值X0=216-t0fosc/12。式中fosc为振荡器的振荡频率。t0为需要定时的时间,也为中断的间隔时间。X0为定时器原计数初值。在对定时器溢出中断与CPU响应中断时间误差进行补偿时,定时器的新计数初值X1为:X1=216-t3 fos

7、c/12 t3=t0+t1+t2式中t0为中断间隔时间。t1为定时器停止计数时间,该时间为定时器停止计数到重新启动计数之间所有程序指令周期数的总和。t2为定时器溢出中断后,重新从OOH开始直至计数器停止时计的值。在误差补偿中,若将定时器计数初值X1取代X0,则可使定时器下次的溢出中断与CPU响应中断实现同步。附录 源程序清单#include #define uint unsigned int#define uchar unsigned charcode uchar duanma10=0xc0,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; sbit we1=P

8、10;sbit we2=P11;sbit we3=P12;sbit we4=P13;sbit Key=P23;sbit Key1=P33;void display();uchar i,num; void delay()uint i=0,j=0;for(;i188;i+) for(;j100;j+); void main() TMOD=0x01;TH0=0x3c;TL0=0xaf;ET0=1;EA=1; TR0=1;if(Key=0) while(1);void TO() TMOD=0x01 ; TH0=0xac; TRO=0x00 ; EX1=1; EA=1; while(1) void di

9、splay()we4=0;P0=duanmanum%10;delay();we4=1;we3=0 ;P0=duanma(num%100)/10;delay();we3=1;we2=0 ;P0=duanma(num%1000)/100;delay();we2=1;we1=0;P0=duanmanum/1000;delay();we1=1;void TOzhongduan(void) interrupt 1TH0=0x3c;TL0=0xaf; i+;if(i=20) i=0; num+; if (num=9999) num=0; if (Key=0) TR0=0; void int0_int() interrupt 0 TRO()

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

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