单片机课程设计--篮球记分牌

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机课程设计报告

题目篮球记分牌

学院自动化与电气工程学院专业自动化

班级自动化103

学号

学生姓名

指导教师

完成日期2012年12月15日

篮球记分牌

一.设计要求:

1、比赛开始,比分能够全部清零,数码管前2位、末2位做记分用,当中2位做24秒倒计时用。

2、24秒倒计时时间到,蜂鸣器响、指示灯亮,重新开始倒计时,蜂鸣器停止鸣叫、指示灯灭。

3、比分进行增加后,倒计时从24秒重新开始倒计时。任意时刻24秒可以重新开始倒计时。必要时候能够关闭倒计时。

4、利用AT24C02或者单片机内部资源保存比分,支持复位保存,掉电保存功能。

5、其他附加功能。

二.原理图:

三.实验流程图:

四.实验程序:

Main.c文件:

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

函数名:篮球记分牌

说明:比赛开始,比分能够全部清零,数码管前2位、末2位做记分用,当中2位做24秒倒计时用。

24秒倒计时时间到,蜂鸣器响、指示灯亮,重新开始倒计时,蜂鸣器停止鸣叫、

指示灯灭。

比分进行增加后,倒计时从24秒重新开始倒计时。任意时刻24秒可以重新开始倒计时。必要时候能够关闭倒计时。

作者:

完成日期:2012.12.2

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

#include

#include

#include"eeprom.h"

#define uchar unsigned char

#define uint unsigned int

/***********端口定义*************/

/*数码管段选用P0口,位选用P2口*/

/******指示灯******/

sbit LED=P3^4;

/********蜂鸣器*********/

sbit FMQ=P3^5;

/******数组定义*******/

uchar code

table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x07f,0x6f};//0,1,2,3,4,5,6,7, 8,9

uchar password[6]; //掉电保存6位数组

/***********变量定义*************/

uchar fen1; //甲队初始得分

uchar fen2; //乙队初始得分

uchar fen3; //甲乙两队上下半场换分

uchar SJ; //时间变量值

uchar cxjs=1; //重新计时标志位

uchar key; //矩阵键盘按键值

uchar temp; //矩阵键盘P1口寄存变量

uchar time; //中断计数器

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

函数名称:delay

函数功能:基本延时程序

入口参数:无

出口参数:无

备注:无

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

void delay(uchar x)

{ uchar j;

while((x--)!=0)

{ for(j=0;j<125;j++)

{;}

}

}

/*********************************************************** 函数名称:display

函数功能:数码管显示程序

入口参数:fen1,fen2,SJ

出口参数:无

备注:无

***********************************************************/ void display(void)

{

uchar m;

for(m=6;m>0;m--)

{

delay(2);

if(m==6)

{P2 = 0XFE;

P0 = table[fen1/10];}

if(m==5)

{P2 = 0XFD;

P0 = table[fen1%10];}

if(m==4)

{P2 = 0XFB;

P0 = table[SJ/10];}

if(m==3)

{P2 = 0XF7;

P0 = table[SJ%10];}

if(m==2)

{P2 = 0XEF;

P0 = table[fen2/10];}

if(m==1)

{P2 = 0XDF;

P0 = table[fen2%10];}

}

}

/*********************************************************** 函数名称:keyscan

函数功能:4X4矩阵键盘扫描程序

入口参数:无

出口参数:无

备注:读取的键值赋给了key

相关文档
最新文档