51单片机秒表计时..doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
51单片机秒表计时.

实验设计报告 设计题目: 51单片机外扩8155秒表计时 班 级:______计算机091班 姓 名: 学 号: 指导老师: 日 期: 51单片机秒表计时 一、设计目的 (1)利用单片机定时器中断和定时器计数方式实现秒定时。 (2)通过LED显示程序的调整,熟悉单片机与LED的接口技术,熟悉LED动态显示的控制过程。 (3)掌握8155芯片的用法及口地址的计算方法。 (3)通过阅读和调试简易秒表整体程序,学会如何编制含LED动态显示和定时器中断等多种功能的综合程序。 (4)进一步学习单片机开发系统的整个流程。 二、设计任务 首先以89C51单片机的原理图为背景,利用51单片机的P0、P2口外扩一片8155芯片。将6个共阳极数码管的断码用8155的B口控制,位码用8155的A口控制。其次,用51单片机的P30、P31接两个独立的按键。最后用keil C编写软件,驱动各个外围设备。 三、设计需求 利用STC-89C52单片机作为系统核心控制部分,用外围6个数码管、两个独立按键实习秒表计时的功能。当接P30的按键按下时,秒表开始计时,当接P30的按键打开时暂停,当接P31的按键按下时数码管清零。 四、设计材料 序号 器件 数量 功能 1 STC-89C52单片机最小系统板 1 核心 2 8155芯片 1 外扩I/O口 3 共阳极数码管 6 计时 4 开关 2 控制数码管的计 时与暂停 内容要求 一、题目分析,功能要求。 (1)要求:利用实训电路板,用6个共阳极数码管实现秒表计时显示。以一个按键开关实现启动、停止,另一个实现清零功能。 (2)方法:用单片机定时器T0中断方式,实现100毫秒定时;利用单片机定时器0方式1计数。 (3)实验线路分析:采用实训电路板,其原理图参见附录。6个7段LED数码管分别由8155的A口和B口控制,使数码管显示00-00-00的字样。用一个开关控制数码管的启动与停止,另外一个实现清零。另外再加上一个晶振电路就够成了整个秒表的电路。 (4)软件设计:软件整体设计思路是主程序进行初始化,以开关的闭合与打开判断秒表是否开始计时,LED通过定时计算器中断的方式进行显示。当开关闭合,定时器开始计时,并在数码管上显示。当开关打开,定时器停止工作并在数码管上继续显示前一时刻的时间。 当另外一个开关闭合时,数码管清零。 二、总体方案设计 三、硬件设计 电路图如下所示 Protues仿真: 四、软件设计 #includereg52.h #includeabsacc.h #define A8155 XBYTE[0XFE21] #define B8155 XBYTE[0XFE22] #define C8155 XBYTE[0XFE23] #define K8155 XBYTE[0XFE20] sbit p30=P3^0; sbit p31=P3^1; char code show[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82, 0xf8,0x80,0x90}; char showdata[6]={0xC0,0xbf,0xC0,0xC0,0xbf,0xC0}; char showdata_0[6]={0xC0,0xbf,0xC0,0xC0,0xbf,0xC0}; int cnt,i,j; int flag=0,count=0,fen=0; void delay(int ms); void start(); void pasue(); void clear(); void main() { TMOD=0x01; TL0=(65536-50000)%256; TH0=(65536-50000)/256; EA=1; ET0=1; TR0=1; P=0xff; K8155=0x03; while(p31==1) { A8155=0x01; if(p30==0 p31==1) { start(); } else if(p30==1 p31==1) { pasue(); } else if(p30==1 p31==0) { clear(); } } } void pasue() { for(i=0;i

文档评论(0)

gangshou + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档