基于单片机的篮球记分牌.doc
《基于单片机的篮球记分牌.doc》由会员分享,可在线阅读,更多相关《基于单片机的篮球记分牌.doc(16页珍藏版)》请在沃文网上搜索。
1、目录篮球记分牌1一设计要求:1三实验流程图:2四实验程序:3Main.c文件:3Eeprom.c文件:10Eeprom.h文件:12五实验仿真:13六实验实物图:14七实验总结:15篮球记分牌一设计要求:1、比赛开始,比分能够全部清零,数码管前2位、末2位做记分用,当中2位做24秒倒计时用。2、24秒倒计时时间到,蜂鸣器响、指示灯亮,重新开始倒计时,蜂鸣器停止鸣叫、指示灯灭。3、比分进行增加后,倒计时从24秒重新开始倒计时。任意时刻24秒可以重新开始倒计时。必要时候能够关闭倒计时。4、利用AT24C02或者单片机内部资源保存比分,支持复位保存,掉电保存功能。5、其他附加功能。二原理图:三实验流
2、程图:开始 初始化倒计时显示N是否按键Y执行控制程序N是否到时Y蜂鸣器响,LED灯亮四实验程序:Main.c文件:/*函数名:篮球记分牌说 明:比赛开始,比分能够全部清零,数码管前2位、末2位做记分用,当中2位做24秒倒计时用。 24秒倒计时时间到,蜂鸣器响、指示灯亮,重新开始倒计时,蜂鸣器停止鸣叫、指示灯灭。比分进行增加后,倒计时从24秒重新开始倒计时。任意时刻24秒可以重新开始倒计时。必要时候能够关闭倒计时。 作 者: 完成日期:2012.12.2/*/ #include#include #includeeeprom.h#define uchar unsigned char #define
3、 uint unsigned int /*端口定义*/*数码管段选用P0口,位选用P2口*/*指示灯*/sbit LED=P34;/*蜂鸣器*/sbit FMQ=P35;/*数组定义*/uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x07f,0x6f;/0,1,2,3,4,5,6,7,8,9uchar password6; /掉电保存6位数组/*变量定义*/uchar fen1;/甲队初始得分uchar fen2;/乙队初始得分uchar fen3; /甲乙两队上下半场换分uchar SJ; /时间变量值uchar cxjs
4、=1;/重新计时标志位uchar key;/矩阵键盘按键值uchar temp;/矩阵键盘P1口寄存变量uchar time;/中断计数器/* 函数名称:delay 函数功能:基本延时程序入口参数:无 出口参数:无 备 注:无*/void delay(uchar x) uchar j; while(x-)!=0) for(j=0;j0;m-) delay(2); if(m=6) P2 = 0XFE;P0 = tablefen1/10; if(m=5)P2 = 0XFD; P0 = tablefen1%10;if(m=4)P2 = 0XFB; P0 = tableSJ/10; if(m=3)P2
5、 = 0XF7; P0 = tableSJ%10; if(m=2)P2 = 0XEF; P0 = tablefen2/10; if(m=1)P2 = 0XDF; P0 = tablefen2%10;/* 函数名称:keyscan 函数功能:4X4矩阵键盘扫描程序入口参数:无 出口参数:无 备 注:读取的键值赋给了key */void keyscan(void) temp=P1; if(temp!=0xf0) delay(120); if(temp!=0xf0) P1=0xfe; temp=P1; delay(120); switch(temp) case(0xee):key=0;break;
6、case(0xde):key=1;break; case(0xbe):key=2;break; case(0x7e):key=3;break; P1=0xfd; temp=P1; delay(120); switch(temp) case(0xed):key=4;break; case(0xdd):key=5;break; case(0xbd):key=6;break; case(0x7d):key=7;break; P1=0xfb; temp=P1;delay(120); switch(temp) case(0xeb):key=8;break; case(0xdb):key=9;break;
7、 case(0xbb):key=10;break; case(0x7b):key=11;break; P1=0xf7; temp=P1;delay(120); switch(temp) case(0xe7):key=12;break; case(0xd7):key=13;break; case(0xb7):key=14;break; case(0x77):key=15;break; /* 函数名称:keydown 函数功能:4X4矩阵键盘判断程序入口参数:无 出口参数:无 备 注:判断是否有按键按下 */void keydown(void) P1=0xF0; if(P1!=0xF0) dela
8、y(150);/消抖 if(P1!=0xF0) keyscan(); /* 函数名称:timer0init 函数功能:定时器初始化部分程序入口参数:无 出口参数:无 备 注:设置定时器0工作方式*/void timer0init()TMOD &= 0xf0; /定时器0工作方式1TMOD |= 0x01;/* 函数名称:timer0 函数功能:中断服务程序入口参数:无 出口参数:无 备 注:此程序无调用*/void timer0 (void) interrupt 1 using 0TH0=0x15;TL0=0xa0; time=time+1;if(time=20) time=0; SJ=SJ-
9、1;if(SJ=0)SJ=0; EA=0; FMQ=0; LED=0; /* 函数名称:setpassword函数功能:掉电保存程序入口参数:无 出口参数:无 备 注:此程序调用eeprom_eares擦除扇区程序,eeprom_write字节编程程序*/void setpassword() eeprom_eares(0x0000);eeprom_write(0x0000,fen1/10);eeprom_write(0x0001,fen1%10);eeprom_write(0x0002,SJ/10);eeprom_write(0x0003,SJ%10);eeprom_write(0x0004,
10、fen2/10);eeprom_write(0x0005,fen2%10);/* 函数名称:getpassword函数功能:读出eeprom内存储值入口参数:无 出口参数:无 备 注:无*/void getpassword()uchar i;for(i=0;i6;i+)passwordi=eeprom_read(i);/* 函数名称:main 函数功能:主程序入口参数:无 出口参数:无 备 注:实现功能:通过按键开始/停止,暂停/继续计时和对甲乙两队的加分*/void main() LED=1; FMQ=1; P2=0xFF; P1=0xF0; SJ=24; fen1=0; fen2=0; k
11、ey=16; /*定时器设置*/ timer0init(); ET0=1; TR0=1; while(1) display();keydown();if(key=0) /开始按键 EA=1; if(key=1) /甲队加分按键 fen1=fen1+1; cxjs=0; if(key=2) /乙队加分按键 fen2=fen2+1; cxjs=0; if(key=3) /暂停计时 EA=0;if(key=4) /停止按键 fen1=0; fen2=0; SJ=24; EA=0; FMQ=1; LED=1; if(key=5) /上下半场换分 fen3=fen1; fen1=fen2; fen2=f
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 篮球 记分牌
