篮球竞赛30秒计时器毕业设计

更新时间:2024-06-26 13:03:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

哈尔滨学院工学院电子信息工程课程设计报告

电子课程设计报告

题 目: 篮球竞赛30秒计时器

系 别 : 工学院1

专 业 :班 级 :姓 名 :学 号 :指导教师:

2014. 12. 29

电子信息工程 1 电子三班 付莹 12043326 林泽鸿 1

哈尔滨学院工学院电子信息工程课程设计报告

摘 要

本课程设计是脉冲数字电路的简单应用,设计了篮球竞赛30秒计时器。此计时器功能齐全,可以直接清零、启动、暂停和连续以及具有光电报警功能,同时应用了七段数码管来显示时间。此计时器有了启动、暂停和连续功能,可以方便地实现断点计时功能,当计时器递减到零时,会发出光电报警信号。本设计完成的中途计时功能,实现了在许多的特定场合进行时间追踪的功能,在社会生活中也具有广泛的应用价值。

此计时器的设计采用模块化结构,主要由以下3个组成,即计时模块、控制模块、以及译码显示模块。在设计此计时器时,采用模块化的设计思想,使设计起来更加简单、方便、快捷。此电路是以时钟产生,触发,倒计时计数,译码显示为主要功能,在此结构的基础上,构造主体电路和辅助电路两个部分。

关键词 计时器 ; 光电报警 ; 模块化.

2

哈尔滨学院工学院电子信息工程课程设计报告

第一章 计 时 器 概 述

1.1 计时器的特点及应用

随着社会文明的进步和科学技术的发展,先进的电子技术在各个学科和技术领域占有不可或缺地位。在我国现代化建设的发展进程中,数字电子技术的应用也越来越广泛。而计时器恰恰是数字电子技术的一个重要组成部分,计时器是一个用来实现计数功能的时序部件,它不仅可以用来计脉冲个数,还常用来做数字系统的定时、分频,执行数字运算,以及其他特定的逻辑功能等等。

1.2 设计任务及要求

1.2.1基本要求:

(1) 具有显示30秒计时功能;

(2) 系统设置外部操作开关,控制计时器的直接清零、启动和暂停/连续功能; (3) 在直接清零时,要求数码管显示器灭灯;

(4) 计时器为30秒递减计时,其计时间隔为1秒; (5) 计时器递减计时到零时,数码显示器不能灭灯,同时发出光电报警信号。 1.2.2 设计任务及目标: (1) 根据原理图分析各单元电路的功能;

(2) 熟悉电路中所用到的各集成块的管脚及其功能;

(3) 进行电路的装接、调试,直到电路能达到规定的设计要求;

3

哈尔滨学院工学院电子信息工程课程设计报告

2.1、设计任务目的

1.根据单片机课程所学内容,结合其他相关课程知识,设计电子秒表,以加深对单片机知识的理解,锻炼实践动手能力,为以后的毕业设计和工作打下坚实基础;

2. 熟悉汇编语言或C语言的程序设计方法,熟悉51系列单片机的使用; 3. 掌握单片机的内部功能模块的应用,如定时器/计数器、中断、I/O口、串行口通讯等功能;

4. 掌握单片机应用系统的软硬件设计过程、方法及实现

2.2 设计方案

使用STC89C51单片机作为核心控制部件,采用12M晶体振荡器及30PF微小电容构成振荡电路;用1个四位一体共阴极数码显示管作为显示部分,构成数字式秒表的主体结构,配合独立式键盘和复位电路完成此秒表的计时、清零、停止、增减初始时间等各项功能

2.3.1 8421BCD码递减计数器模块

计数器选用汇总规模集成电路74LS192进行设计较为简便,74LS192是十进制可编程同步加锁计数器,它采用8421码二-十进制编码,并具有直接清零、置数、加锁计数功能。

图2-3是74LS192外引脚及时序波形图。图中CPU、CPD分别是加计数、减计数的时钟脉冲输入端(上升沿有效)。

LD是异步并行置数控制端(低电平有效), CO、BO分别是进位、借位输

出端(低电平有效),CR是异步清零端,D3-D0是并行数据输入殿,Q3-Q0是输出端。

74192的功能表见下表2-1所示。其工作原理是:当LD=1,CR=0时,若时钟脉冲加到CPU端,且CPD=1

4

哈尔滨学院工学院电子信息工程课程设计报告

2.4 电路设计

2.41 单片机最小系统设计

1. 时钟电路

在XTAL1、XTAL2 的引脚上外接定时元件(一个石英晶体和两个电容),内部振荡器便能产生自激振荡。在本设计中采用的12M 的石英晶振。和晶振并联的两个电容的大小对振荡频率有微小影响,可以起到频率微调作用。当采用石英晶振时,电容可以在20 ~ 40pF 之间选择。 2. 复位电路

复位操作通常有两种基本形式:上电自动复位和开关复位。上电瞬间,电容两端电压不能突变,此时电容的负极和RESET 相连,电压全部加在了电阻上, RESET 的输入为高,芯片被复位。随之+5V电源给电容充电,电阻上的电压逐渐减小,最后约等于0,芯片正常工作。并联在电容的两端为复位按键,当复位按键没有被按下的时候电路实现上电复位,在芯片正常工作后,通过按下按键使RST管脚出现高电平达到手动复位的效果。 3. EA/VPP(31 脚) 的功能和接法

51 单片机的EA/VPP(31 脚) 是内部和外部程序存储器的选择管脚。当EA 保持高电平时,单片机访问内部程序存储器; 对于现今的绝大部分单片机来说,

5

哈尔滨学院工学院电子信息工程课程设计报告

其内部的程序存储器(一般为flash)容量都很大,因此基本上不需要外接程序存储器,而是直接使用内部的存储器。 4. P0 口外接上拉电阻

51 单片机的P0 端口为开漏输出,内部无上拉电阻。所以在当做普通I/O 输出数据时,由于V2 截止,输出级是漏极开路电路,要使“1”信号(即高电平)正常输出,必须外接上拉电阻。

2.4.1程序如下

unsigned

char

Tab1[ ]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; // 段码表 unsigned

char

Tab2[ ]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef}; // 个位段码表 unsigned int x; unsigned char k; sbit int0=P3^2; sbit int1=P3^3; sbit SUB60=P1^1; sbit S60=P1^2; sbit K5=P1^3; sbit K6=P1^4; sbit K7=P1^5; sbit K8=P1^6; /*************************** 延 时 1ms 基 准 ******************************************/ void delay1ms(unsigned int i) { unsigned char j; while(i--) { for(j=0;j<125;j++) //1ms 基准延时程序

12MHZ

{

;

}

}

}

/******************************************************************** ************ ****************** 数 码 管 显 示 程 序 ***********************************************/ void Display(unsigned int x) { P2=0xfe; //P2.0 引脚输出低电平,DS6 点亮 P0=Tab1[x/1000]; //显示百位 delay1ms(6); P2=0xfd; //P2.1 引脚输出低电平,DS6 点亮 P0=Tab1[x00/100]; //显示十位delay1ms(6); P2=0xfb; //P2.2 引脚输出

6

哈尔滨学院工学院电子信息工程课程设计报告

低电平,DS6 点亮 P0=Tab2[x0/10]; //显示个位 delay1ms(6); P2=0xf7; //P2.3 引脚输出低电平,DS7 点亮 P0=Tab1[x]; //显示 0.1 位 delay1ms(6); P2=0xff; } /******************************************* 函数功能:主函数 ******************************************/ void main(void) { x=0; TMOD=0x01; // TMOD=0000 0001B,使用计数器 T0 的工作方式 1 EA=1; //开起总中断 ET0=1; //允许定时器 T0 的中断 EX0=1; //允许外中断 INT0 IT0=1; //INT0 为下负脉冲触发方式

TH0=(65536-50000)/256; //计数器 T0 高 8 位赋初值 TL0=(65536-50000)%6; //计数器 T0 低 8 位赋初值 TF0=0; //溢出标志位清零{

while(1)

/************************************************************

P1.3

1

****************K5

S1***************************/ if(K5==0) { delay1ms(20); if(K5==0) { x=x+10; } while(!K5); //摁键关断 摁一次触发一次 } /***********************************************************************K6 P1.4 按一次减 1 开关 S2**************************/ if(K6==0) { delay1ms(20); if(K6==0) { if(x==0) { x=10; //在 00.0 的时候停止 } x=x-10; } while(!K6); //摁键关断 摁一次触发一次 } /******************************************************************** * ******************K7 P1.5 初 始 值 赋 值 为 60.0 秒 开 关 S5********************/ if(K7==0) { delay1ms(20); if(K7==0) { x=600; //赋初值 60.0 秒 } while(!K7); //摁键关断 摁一次触发一次 } /********************************************************************

7

哈尔滨学院工学院电子信息工程课程设计报告

* ******************S60 控 制 60S 停 止 开 关 P1.2****************************/ if(x==600) { if(S60==0) //如果 P1.2 口是低电平,秒表变化范围 00.0~60.0 { TR0=0; } } /******************************************************************** ******************K8

P1.6

clear0

S3************************/ if(K8==0) { delay1ms(20); //延时消震 if(K8==0) { x=0; TR0=0; }

//数据清 0 数码管显示 000.0 //溢出标志位清 0

} /************数码管显示***************************************/ Display(x); } } /**********INT0 中断函数 用于开始或暂停开关 S4******************

**************************************************************/ void begin_stop() interrupt 0 { if(int0==0) { delay1ms(30); //延时消震 if(int0==0) { TR0=~TR0; //按键摁一次 读秒开始或暂停 if(x==0&&SUB60==0) {

TR0=0;

}

}

}

}

******T0

/*********************************************************

计数器中断 控制每隔加 0.1 秒***********************/ void add_one0() interrupt 1 { k++; if(k==2) { k=0; TF0=0; if(SUB60==1) //当 P1.1 口是高电平时秒表加 0.1s //当 P1.1 口是低电平时秒表减 0.1s { x=x+1; //秒表加 0.1s } else { x=x-1; //秒表减 0.1s }

8

哈尔滨学院工学院电子信息工程课程设计报告

if(x==0) { TR0=0; } if(x==9999) { TR0=0; } } TH0=(65536-50000)/256; TL0=(65536-50000)%6; } //计数器 T0 高 8 位赋初值 //计数器 T0 低 8 位赋初值

2.4.2 数码管显示模块设计

显示部分采用动态显示。数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划\的同名端连在一起,另外为每个数码管的共阴极增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的位选通端,就使各个数码管轮流受控显示,这就是动态驱动。动态显示是利用人眼视觉暂留特性来实现显示的。事实上,显示器上任何时刻只有一个数码管有显示。由于各数码管轮流显示的时间间隔短、节奏快,人的眼睛反应不过来,因此看到的是连续显示的现象。为防止闪烁延时的时间在1ms左右,不能太长,也不能太短。

2.3.3 辅助时序控制模块

为了保证系统的设计要求 , 在设计控制电路时 , 应正确处理各个信号之间的时序关系。从系统的设计要求可知 , 控制电路要完成以下四项功能 :

①操作 “直接清零”开关时 , 要求计数器灭灯。

②闭合 “启动” 开关时 , 计数器应完成置数功能 , 显示器显示 30 秒字

样 ; 断开“启动”开关时 , 计数器开始进行递减计数。

③当 “暂停 / 连续”开关处于 “暂停”位置时 , 控制电路封锁时钟脉冲信号 CP , 计数器暂停计数 , 显示器上保持原来的数不变 ,“暂停 / 连续” 开

9

哈尔滨学院工学院电子信息工程课程设计报告

关处于“连续”位置时 , 计数器继续累计计数。

④当计数器递减计数到零 ( 即定时时间到 ) 时 , 控制电路应发出报警信号 , 使计数器保持零状态不变 , 同时报警电路工作。如图2-7所示.

当计数到零时,两计数器借位端输出多为低(0),故本设计将高位片借位BO2反馈到二极管负极性端,此时+5V电源经1k电阻使发光二极管发出光电报警信号,完成报警功能,而在递减计数时,BO2端输出为高(1),二极管不报警.

图2-9 74LS48管脚图

2.共阴极七段LED显示器是较常用的显示数码管,但在使用时要注意的是:

1.看清楚自己用的数码管是共阴极还是共阳极的,最好在焊之前用万电用表测一下它的极性,其管脚图如下图2-10所示,如果为共阴极的,其管脚COM端接地;如果为共阳极的,起管脚COM段要接高电平。

2.还要注意在数码管电路上加上一保护电阻,起限电流的作用。

10

哈尔滨学院工学院电子信息工程课程设计报告

图2-10 共阴极七段LED显示器管脚图

第三章 安装与测试

3.1 电路的安装

电路安装要注意几个原则:

1.先装矮后装高、先装小后装大、先装耐焊的等;

2. 布线尽量使电源线和地线靠近实验电路板的周边,以起一定的屏蔽

作用;

3. 最好分模块安装等等。

此外焊接时不能出现虚焊、假焊、漏焊,更不能出现过焊,因为有些器件,不能耐高温,比如焊接三极管时,电烙铁绝对不能停留太久。

3.2 电路的调试

调试时应小心谨慎,电路安装完毕后,首先应检查电路各部分的接线是否正确,检查电源、地线、信号线、元器件的引脚之间有无短路,器件有无接错。再接入电路所要求的电源电压,观察电路中各部分器件有无异常现象。如果出现异常现象,应立即关断电源,待排除故障后方可重新通电。

11

哈尔滨学院工学院电子信息工程课程设计报告

第四章 设计体会

这次的实现设计,是我感受最深收获最大的一次。最为一个电子系的学生,设计肯定是我们以后的发展方向。这正好是一次最好的理论结合实践。

从通过理论设计,到仿真软件仿真,再到确定具体方案,再到安装实际电路,最后到调试电路、成型。整个过程都需要我充分利用所学的知识进行思考、借鉴。这次的设计可以说是对目前学习知识最全面的检验设计过程很复杂很累,但是更觉得充实。

在设计过程中,构想思路很重要,稍微一个小错误就会导致后面一大不饿错

误,因此在这之前我查阅了很多相关的资料书籍。

在设计过程中最难得要属安装、焊接过程了,这是是一个考验人耐心的过程,对电路的安装、焊接、分析、调试要循序渐进,不能急躁。因为在仿真软件上较理论上还是存在一定的差距,仿真能出来结果的在实际电路不一定就能出来,这就需要我们有耐心,寻找一个比较正确的调试方法。

要做好本次的课程设计,熟练掌握课本理论知识是前提。这样才能对试验中出现的问题进行一定的分析和解决。能完成本次设计,离不开老师辛勤地指导帮助,老师能在百忙中来指导我,使我能更好地完成设计。总之,感谢老师的指导!!!

12

哈尔滨学院工学院电子信息工程课程设计报告

结 论

本设计主要通过模块化思想,逐步实现设计所需达到的功能要求: 时钟模块为递减计数提供一个频率为1Hz的脉冲信号,从而实现计数器计数间隔为1秒钟;

计数、译码显示模块主要是为了达到能显示递减计数功能; 报警模块是为了实现当减计数到零时发出光电报警信号;

控制模块主要是为了实现计时器的启动、直接清零和暂停/连续功能,其中在直接清零时,由外控制开关控制译码器消隐端,从而可以实现显示译码器灭灯;通过暂停/连续开关从而实现断点计时功能。

至此,本设计能完成所有任务及要求。

13

本文来源:https://www.bwwdw.com/article/2hb3.html

Top