89C51单片机课程设计之秒表设计实验报告.doc

上传人:h**** 文档编号:100515 上传时间:2018-07-06 格式:DOC 页数:17 大小:3.53MB
下载 相关 举报
89C51单片机课程设计之秒表设计实验报告.doc_第1页
第1页 / 共17页
89C51单片机课程设计之秒表设计实验报告.doc_第2页
第2页 / 共17页
89C51单片机课程设计之秒表设计实验报告.doc_第3页
第3页 / 共17页
89C51单片机课程设计之秒表设计实验报告.doc_第4页
第4页 / 共17页
89C51单片机课程设计之秒表设计实验报告.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

1、 这里可以加学校 LOGAL 单片机课程设计报告 院系 : xxxxxxxxxx 班别: xxxxxxxxxx 课程名称: 秒表设计 姓名: xxx 学号: xxxxxxx 指导老师 : xxxxxxx 2011.12.23 目录 1 课程 设计的目的和任务 1.1 单片机秒表课程设计的概述 1.2 课程 设计思路及描述 1.3 课程设计任务和要求 2 硬件与软件 的 设计 流程 2.1 系统硬件方案设计 2.2 软件方案设计 3 程序编写流程 及课程设计效果 3.1 源程序及注释 3.2 原理图分析 3.3 课程设计效果 4 心得体会 5 相关查阅资料 1. 课程 设计的目的和任务 1.1

2、单片机秒表 课程设计 的概述 一、 课程设计题目 秒表系统设计 用 STC89C52RC 设计一个 4 位 LED 数码显示“秒表”,显示时间为00.0099.99 秒,每 10 毫秒自动加一,每 1000 毫秒自动加一秒。 二、增加功能 增加一个“复位”按键(即清零),一个“暂停”和“开始”按键。 三、课程设计的难点 单片机电子秒表需要解决三个主要问题, 一是有关单片机定时器的使用;二是如何实现 LED的动态扫描显示;三是如何对键盘输入进行编程。 四、课程设计内容提要 本课程利用单片机的定时器 /计数器定时和记数的原理,结合集成电路芯片 8051、 LED 数码管以及课程箱上的按键来设计计时

3、器。将软、硬件有机地结合起来,使得系统能够正确地进行计时,数码管能够正确地显示时间。其中本课程设计有两个开关按键:其中 key1 按键按下去时开始计时,即秒表开始键 (同时也用作暂停键 ), key2 按键按下去时数码管清零,复位为“ 00.00” . 五 、 课程设计 的意义 1) 通过本次课程设计加深对单 片机课程的全面认识复习和掌握,对单片机课程的应用进一步的了解。 2) 掌握定时器、外部中断的设置和编程原理。 3) 通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。 4) 该课程通过单片机的定时器 /计数器定时和计数原理,设计简单的计时器系统,拥有正确的计时、暂停、清零

4、,并同时可以用数码管显示,在现实生活中应用广泛,具有现实意义 六 、 课程 设计 仪器 a) 集成电路芯片 8051,七段数码管, 89C51 单片机开发板 b) MCS-51 系列单片机微机仿真课程系统中的软件( Keil uvision2) 。 1.2课程 设计 思路及描述 该课程 设计 要求进行计时并在数码管上显示时间,则可利用 MCS-51 系列单片机的芯片AT89C52 的 P3.2,P3.5 作为按键的入口 ;定时器 T1 作为 每 0.01 秒加一 的定时器。其中 “开始 ”按键当开关由上向下拨时开始计时 , 此时若再拨 “开始 ”按键则 数码管暂停 ; “清零 ”按键当开关由上

5、向下拨时数码管清零,此时若再拨 “开始 ”按键则又可重新开始计时。 方框图如下图 1: 图 1 数字秒表设计导向 1.3 课程 设计任务和要求 1.3.1 设计指标 。 了解 8051 芯片的的工作原理和工作方式 ,使用该芯片对 LED 数码管进行显示控制,实现用单片机的端口控制数码管,显示分、秒,并能用按钮实现秒表起动、停止、 99 秒、清零等功能,精确到 0.01 秒。 要求选用定时器的工作方式,画出使用单片机控制 LED 数码管显示的电路图,并实现其硬件电路,并编程完成软件部分,最后调试秒表起动、停止、清零等功能。 1.3.2 设计要求 画出电路原理图(或仿真电路图); 软件编程与调试;

6、 电路仿真与调试; 2软件与硬件设计 开关 MCS-51 AT89C52RC LED 显示 2.1 系统硬件方案设计 单片机应用系统由硬件系统和软件系统两部分 组成。硬件系统是指单片机以及扩展的存储器、 IO 接口、外围扩展的功能芯片以及接口电路。软件系统包括监控程序和各种应用程序。 在单片机应用系统中,单片机是整个系统的核心,对整个系统的信息输入、处理、信息输出进行控制。与单片机配套的有相应的复位电路、时钟电路以及扩展的存储器和 IO 接口,使单片机应用系统能够运行。 在一个单片机应用系统中,往往都会输入信息和显示信息,这就涉及键盘和显示器。在单片机应用系统中,一般都根据系统的要求配置相应的

7、键盘和显示器。配置键盘和显示器一般都没有统一的规定,有的系统功能复杂,需输 入的信息和显示的信息量大,配置的键盘和显示器功能相对强大,而有些系统输入 /输出的信息少,这时可能用几个按键和几个 LED 指示灯就可以进行处理了。在单片机应用系统在中配置的键盘可以是独立键盘,也可能是矩阵键盘。 图 2 系统硬件结构框 11.0592MHz 晶振 2 个独立式的按键 电源指示灯 电源开关 4 个数码管显示 STC89C52RC 2.2软件方案设计 此次选用 C51 来编程,首先要有初始化程序,通过初始化程序,将对主程序所用到的变量、常量以及各个参数和所调用的子函数定义。其次还有显示程序、按键扫描及处理

8、程序、时钟程序和倒计时程序, 系统软件流程图图如图 3 所示: 3 程序编写的流程 及课程设计效果 3.1 源程序 及注释 /*- 名称:数码管显示,按键控制秒表 论坛: 编写: shifang 日期: 2009.5 修改:无 开始 系统初始化 While (1) 数码管显示 选择 按键的扫描及处理 图 3 内容:中断按键控制,数码管显示 ,中断 0控制计时和停止,中断 1 清零 -*/ #include /包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 unsigned int msecond,second;/定义全局变量 bit GoFlag;/定义停止,计时标志 #de

9、fine DataPort P0 /定义数据端口 程序中遇到 DataPort 则用 P0 替换 sbit LATCH1=P22;/定义锁存使能端口 段锁存 sbit LATCH2=P23;/ 位锁存 sbit KEY=P32; unsigned char code dofly_DuanMa10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/ 显示段码值 09 unsigned char code dofly_WeiMa=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;/分别对应相应的数码管点亮 ,即位码

10、unsigned char TempData8; /存储显示值的全局变 量 void DelayUs2x(unsigned char t);/函数声明 void DelayMs(unsigned char t); void Display(unsigned char FirstBit,unsigned char Num); void Init_Timer0(void); void CLR(void); /*- 主函数 -*/ void main (void) unsigned char num=0; EX0=1; /外部中断 0开 IT0=1; /IT1=0 表示边沿触发 EX1=1; /外部

11、中断 1开 IT1=1; /IT1=1 表示边沿触发 Init_Timer0(); while (1) /主循环 TempData0=dofly_DuanMasecond/10;/分解显示信息,如要显示 68,则68/10=6 68%10=8 TempData1=dofly_DuanMasecond%10; TempData2=0x40;/ “-“ TempData3=dofly_DuanMamsecond/10;/分解显示信息,如要显示 68,则68/10=6 68%10=8 TempData4=dofly_DuanMamsecond%10; /主循环中添加其他需要一直工作的程序 /*- 显

12、示函数,用于动态扫描数码管 输入参数 FirstBit 表示需要显示的第一位,如赋值 2 表示从第三个数码管开始显示 如输入 0表示从第一个显示。 Num 表示需要显示的位数,如需要显示 99 两位数值则该值输入 2 -*/ void Display(unsigned char FirstBit,unsigned char Num) static unsigned char i=0; DataPort=0; /清空数据,防止有交替重影 LATCH1=1; /段锁存 LATCH1=0; DataPort=dofly_WeiMai+FirstBit; /取位码 LATCH2=1; /位锁存 LAT

13、CH2=0; DataPort=TempDatai; /取显示数据,段码 LATCH1=1; /段锁存 LATCH1=0; i+; if(i=Num) i=0; /*- 定时器初始化子程序 -*/ void Init_Timer0(void) TMOD |= 0x01; /使用模式 1, 16 位定时器,使用 “|“符号可以在使用多个定时器时不受影响 /TH0=0x00; /给定初值 /TL0=0x00; EA=1; /总中断打开 (总中断控制开关) ET0=1; /定时器中断打开 (允许中断 0的发生) TR0=1; /定时器开关打开 (定时器 T0 开始工作) /*- 定时器中断子程序 -*/ void Timer0_isr(void) interrupt 1 static unsigned char num; TH0=(65536-2000)/256; /重新赋值 2ms TL0=(65536-2000)%256; Display(0,8); if(GoFlag) num+; if(num=5) num=0; msecond+; if (msecond=100)/100 进 1

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。