




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于AT89C51的篮球比赛计分器课程设计学院:学生姓名:班级:学号:指导教师:附录/* PO控制连接段选,P2连接位选,P1连接矩阵键盘 矩阵键盘按下按键,数码管显示相应的数据 比赛开始后,初始状态为000--000 比赛结束后,可复位为000--000*/#include<reg51.h>sbitkey=P1; //P1连接矩阵键盘voidLED(); //数码管显示voidkaishi(); //开始或复位voidexchange();//交换得分voidguan(); //关闭voidjixu();//继续voidajian(intt); //a-tvoidbjian(intt); // b-tvoiddelay(unsignedinti);//延时程序unsignedcharkeyscan(void);//矩阵键盘扫描unsignedinta,b,m;unsignedcharj[16]={0x7e,0x7d,0x7b,0x77,0xbe,0xbd,0xbb,0xb7,0xde,0xdd,0xdb,0xd7,0xee,0xed,0xeb,0xe7};//键值unsignedcharDisp_Tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; //段选unsignedchardispbit[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdF,0xbF,0x7F}; //位选main(){ a=0;b=0;m=0; while(1) { unsignedkey; LED();//显示数码管 key=keyscan();//调用键盘扫描, switch(key) { case0x7e:a=a+1;LED();break; //a队加1 case0x7d:a=a+2;LED();break; /a队加2 case0x7b:a=a+3;LED();break; //a队加3 case0x77:a=0;b=0;kaishi();break; // 复位 case0xbe:ajian(1);LED();break; //a队减1 case0xbd:ajian(2);LED();break; //a队减2 case0xbb:ajian(3);LED();break; //a队减3 case0xb7:jixu();break;//暂停,继续 case0xde:b=b+1;LED();break; //b队加1 case0xdd:b=b+2;LED();break; //b队加2 case0xdb:b=b+3;LED();break; //b队加3 case0xd7:exchange();LED();break; //交换比分 case0xee:bjian(1);LED();break; //b队减1 case0xed:bjian(2);LED();break; //b队减2 case0xeb:bjian(3);LED();break; //b队减3 case0xe7:guan();break;//关闭 }}}voidkaishi(){ m=1;LED();}voidajian(intt){if(a>=t){a=a-t;}}voidbjian(intt){if(b>=t){b=b-t;}}voidjixu(){ m=!m;LED();}voidguan(){m=0; LED();}voidexchange(){ unsignedinti; i=a; a=b; b=i;}voidLED(){unsignedinti,d,LedNumVal=1; //变量定义unsignedintLedOut[10]; //变量定义unsignedintDelayCNT=0;for(d=0;d<30;d++){ if(++DelayCNT>=20) //控制数字变化速度 { DelayCNT=0; //20个扫描周期清零一次 } if(m==1) {LedOut[2]=Disp_Tab[a/100];LedOut[1]=Disp_Tab[a%100/10];LedOut[0]=Disp_Tab[a%10];LedOut[3]=0x40; LedOut[4]=0x40; LedOut[7]=Disp_Tab[b/100];LedOut[6]=Disp_Tab[b%100/10]; LedOut[5]=Disp_Tab[b%10]; }if(m==0) { LedOut[0]=0x40;LedOut[1]=0x40;LedOut[2]=0x40;LedOut[3]=0x40; LedOut[4]=0x40; LedOut[5]=0x40;LedOut[6]=0x40; LedOut[7]=0x40; } for(i=0;i<9;i++) { P0=LedOut[i]; //P0控制段选 switch(i) //使用switch语句控制位选 { case0:P2=0x7F;break; case1:P2=0xbF;break; case2:P2=0xdF;break; case3:P2=0xeF;break; case4:P2=0xf7;break; case5:P2=0xfb;break; case6:P2=0xfd;break; case7:P2=0xfe;break; } delay(150); //扫描间隔时间 太长会数码管会有闪烁感 } }}voiddelay(unsignedinti){charj;for(i;i>0;i--)for(j=200;j>0;j--);}unsignedcharkeyscan(void)//键盘扫描函数,使用行列反转扫描法{unsignedcharcord_h,cord_l;//行列值P1=0x0f;//行线输出全为0cord_h=P1&0x0f;//读入列线值if(cord_h!=0x0f)//先检测有无按键按下{delay(20);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- DB32/T 3634-2019船闸工程质量检验规范
- DB32/T 3218-2017公路工程控制模量桩复合地基技术规程
- DB31/T 893-2015公交车辆节油驾驶操作指南
- DB31/T 704-2013南美白对虾亲虾培育技术规范
- DB31/T 684-2013老年照护等级评估要求
- DB31/T 1399-2023聚对苯二甲酸乙二醇酯(PET)瓶回收规程
- DB31/T 1259-2020保健食品经营管理规范
- DB31/T 1245-2020医疗应急救援车载移动医院车辆管理要求
- DB31/ 807.1-2014重点单位保安服务要求第1部分:基本要求
- 2025有关物业维修合同范文
- JJF(津) 54-2021 液体流量计在线校准规范
- 关于进一步厉行节约推行无纸化办公的通知
- 刘德武教学课件小学数学一年级下册《找规律》
- 河池市大任产业园污水处理厂(江南污水处理厂二期)项目环境影响报告书
- DB22-T 5118-2022 建筑工程资料管理标准
- 集体备课《发生在肺内的气体交换》
- 六年级下册生命生态安全知识要点
- JJG 211-2021 亮度计检定规程(高清最新版)
- 高压喷射注浆工程施工工艺标准
- 最新部编版九年级语文下册课件(完美版)写作布局谋篇
- 农村水电站岗位设置及定员标准(全面)
评论
0/150
提交评论