- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
深圳大学考试答题纸
(以论文、报告等形式考核专用 )
二○一四~二○一五学年度第 一 学期
课程编号
学 号
教师评语:
课程名称
姓名
单片机应用与设计
专业年级
主讲教师 评分
集成电路设计与集成系统 大三
题目:
基于 AT89S52的篮球足球比赛计时计分器仿真及实物
制作
答题:
第 1 页 共 4 页
一、设计任务概述:
采用 AT89S52单片机为核心设计的一个用于赛场的篮球足球比赛的计时计分器并制作出实物。
为三个模块:显示模块,计时模块和按键模块。计时模块采用定时器 T0 中断计时,并通过
本设计分
P3 口的外部
中断 0 和外部中断 1 实现比赛时间的修改。 显示模块分为计时和计分两部分, 采用一个四位共阴七段数
码管和两个共阴七段数码管显示,采用动态扫描方式显示,段选采用 P0 口实现,位选通过 P2 口实现。
按键模块通过 P1 口输入数据。总体实现功能如下:
( 1)能为比赛提供计时功能,并能任意修改所要计量的时间,以此来满足足球篮球比赛的不同赛制。
(2)能为比赛提供记录比分功能,随时刷新甲、乙两队在整个比赛过程中的比分,出现错误也能重新 修改比分。
( 3)比赛结束时,能发出报警声,并能随时关闭报警声。
(4)比赛期间可随时接受暂停请求,计时停止 。
二、系统硬件模块设计:
(1)设计框图及原理图
第 2 页 共 4 页
(2)单片机芯片 AT89S52模块
AT89S52的主要特性如下:
·与 AT89C51, C52, STC89RC52兼容
· 8K 字节可编程闪烁存储器
· 128*8 位内部 RAM
· 32 可编程 I/O 线
·三个 16 位定时器 / 计数器
· 6 个中断源
·可编程串行通道
·片内振荡器和时钟电路
(3)时钟模块
采用 12MHZ的晶振,另有两个 30pF 的瓷片电容
(4)复位电路
5
(5)报警电路
采用蜂鸣器加 100 Ω 的限流电阻接 P1 口
第 3 页 共 4 页
(6)按键控制模块
共有 9 个设置按键, P1 口有 7 个: add1、 add2 是加分键( add1 按一次加一分 ,add2
minus1 是减分键(按一下减一分),, bstop 是关蜂鸣器键, start 是开始计时键,
暂停键, turn 是切换键 (用于加分方的切换) ,P3口有 2 个中断: timeadd1 是时间计时加
是时间计时加 10 分钟。
(7)时间显示模块
按一次加二分),
stopagain 是时间
1 分钟, timeadd10
采用一个四位共阴七段数码管显示分秒。段选口接 P0 口, P0 口接一个 1kΩ 的排阻,起上拉电平作用。
位选口接 P2,采用动态扫描。
(8)比分显示模块
采用两个两位共阴七段数码管显示甲队乙队分数。 段选口接 P0 口, P0 口接一个 1k Ω的排阻, 起上拉电
平作用。位选口接 P2,采用动态扫描。
第 4 页 共 4 页
三、系统软件模块设计
(1) C 语言程序流程图
开始
初始化显示
N 中断函数按
否
修 改 计 时 时
间
N
start 按否
显示函数
计时函数
按键函数
N
时间是否为
0
报警函数
复位函数
第 5 页 共 4 页
(2)源程序代码:
#includereg52.h
#include intrins.h
#define uint unsigned int
#define uchar unsigned char
uchar code table1[]={
0xbf,0x86,0xdb,0xcf,
0xe6,0xed,0xfd,0x87,
0xff,0xef};
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f};
uchar disbuffer[8]={0};
uchar minute=0,second=0;
uchar Ascore=0,Bscore=0,temp=0;
uchar flage1=0;
uchar flage=0;
uint count,z;
sb
文档评论(0)