




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 兽医传染病学模拟试题(含参考答案)
- 中式烹调师中级模拟习题含答案
- 联想集团行业竞争分析
- 胆囊息肉饮食管理会计
- 胰十二指肠术后引流管护理
- 母婴保健品知识培训课件
- 2025年网络检测设备合作协议书
- 2025年良性前列腺增生用药项目合作计划书
- 坠落事故知识培训课件
- 消防高层施工方案
- 第18课排序计算有方法(教案)四年级全一册信息技术人教版
- 规模化猪场生物安全
- 2025年春节后复产复工方案及安全技术措施
- 维修基金使用合同范例
- 幼儿园小班美术欣赏《漂亮的糖纸》课件
- 互联网接入服务提供商服务承诺
- 城市绿化景观设施安装与维护合同
- 解除冻结及撤销纳入失信和限高令申请书(文本)
- 2024年河北省公务员录用考试《行测》真题及答案解析
- 英语语法-形容词和副词-复习资料
- 预防性侵安全教育主题课件
评论
0/150
提交评论