基于51单片机的羽毛球计分器设计
硬件设计
本设计采用单片机AT89C51作为核心元件,由控制系统,显示模块,按键驱动模块3部分组成。主要编写了主程序,中断程序,显示程序功能模块程序等。实现羽毛球计分器功能。
整体电路主要由51单片机最小系统,LCD1602液晶显示模块,LED指示灯模块,按键模块;原理图如图:
Protues仿真图:
功能
- 采用按钮开关实现功能控制,按照设计的功能模块共选用8个按钮开关,分别实现启动、A队加分、A队减分、B队加分、B队减分、暂停、停止、清零功能。
- 选用LCD1602液晶屏作为显示器件,用于记录两队的分数。
软件设计
主程序源码
void main()
{ EA = 1; //开总中断ConfigTimer0(1); //配置T0定时1msInitLcd1602(); //初始化液晶while (1){KeyDriver(); //调用按键功能if(k==1)LcdInit(); //显示字幕}
}/* 按键驱动函数,检测按键动作,调度相应动作函数,需在主循环中调用 */
void KeyDriver()
{static bit star = 0; //开始比赛unsigned char but = 0; //胜利标志static unsigned char cnt = 0; //比赛次数static unsigned char cnta = 0; //A胜利次数static unsigned char cntb = 0; //B胜利次数 if(KEY_IN_3 == 0) { delay(); star = 1; TR0 = 1;k=1;} if(star == 1){ LcdWriteCmd(0x0C); //显示器开,光标关闭 if(KEY_IN_1 ==0) { a++; delay();}if(KEY_IN_2 ==0) { b++; delay();}if(KEY_IN_4 ==0) { TR0 = 0; star=0; delay(); }if(KEY_IN_5 ==0) { a--; if(a<0)a=0; delay();}if(KEY_IN_6 ==0) { b--; if(b<0)b=0; delay(); } }if(KEY_IN_7 ==0) { a=0; b=0; sec=0; minute=0; TR0=0;star=0;cnta=0; cntb=0; cnt=0; LcdShowStr(0, 0, " "); delay();}if(KEY_IN_8 ==0){ a=0; b=0; sec=0; minute=0; LcdShowStr(0, 0, " ");k=0;cnta=0;cntb=0;cnt=0;LcdWriteCmd(0x01); delay();} if(a>=21 && (a-b)>=2 ) {cnt++; cnta++; but = 1; a = 0; b = 0; } if(b>=21 && (b-a)>=2 ) {cnt++; cntb++; but = 2; a = 0; b = 0; }if(cnt==2&&(cnta==2||cntb==2)) {TR0 = 0; star = 0;}switch(cnt){case 1: if(but==1) LcdShowStr(0, 0, "1Awin"); if(but==2) LcdShowStr(0, 0, "1Bwin");break;case 2: if(but==1) LcdShowStr(5, 0, "2Awin"); if(but==2) LcdShowStr(5, 0, "2Bwin");break;case 3: if(but==1) LcdShowStr(10, 0, "3Awin"); if(but==2) LcdShowStr(10, 0, "3Bwin"); TR0=0;star=0;break;default: break;}
}
资料链接:https://pan.baidu.com/s/1qeSwV-szwQJUQpyVo7OiHQ?pwd=1368
提取码:1368
基于51单片机的羽毛球计分器设计相关推荐
- 基于51单片机的羽毛球计分器proteus仿真程序设计
硬件设计 (末尾附文件) 方案 在像羽毛球这样的竞技比赛中,计分器占着很大的作用.如果我们就只在心里记着双方的比分,显然是不实际的,而且在现在的乒乓球比赛中采用的都是21分制.因此我们不能再用传统的计 ...
- 基于51单片机的羽毛球计分器
具体实现功能 由STC89C51单片机+按键模块+LCD1602液晶显示屏+电源构成 具体功能: (1)LCD1602显示参赛者A和B的分数及比赛时间: (2)通过按键分别实现启动.A队加分.A队减分 ...
- 51单片机篮球计分器C语言,基于51单片机的篮球计分器设计
{ while(P25==0); cc=cc+3; point_lcd(0x08,cc); if(P25==0) { while(P25==0); delay(20); } } else if(P26 ...
- 单片机应用系统设计技术——基于51单片机篮球计时计分器的设计
基于51单片机篮球计时计分器的设计 一.实验目的 二.实验内容 三.实验步骤 四.C代码如下 五.实验结果
- 基于51单片机的篮球计分器
基于51单片机的篮球计分器 1)LCD1602液晶屏显示: 比赛双方队名.双方比分.12分钟倒计时.24s进攻倒计时.场次 2)24s倒计时结束蜂鸣器响 3)按键功能: 比赛开始/暂停.24s倒计时重 ...
- 基于微型计算机系统的实时时钟设计,基于51单片机的实时时钟设计报告.doc
基于51单片机的实时时钟设计报告 PAGE PAGE 24 课程设计(论文)任务书 信息工程 学 院 信息工程 专 业 (2) 班 一.课程设计(论文)题目 嵌入式课程设计 二.课程设计(论文)工作自 ...
- matlab ds18b20 单片机,基于51单片机ds18b20温度检测————设计报告.doc
基于51单片机ds18b20温度检测----设计报告 课程名称: 微机原理课程设计 题 目: 温度检测课程设计 摘要 随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为 ...
- 基于51单片机的电子时钟设计
基于51单片机的电子时钟设计 0 功能介绍 1.从DS1302中读取时间显示 2.一共4个按键,按键1按下进入修改时间模式,再按下切换修改的时间变量,这个时候第2和3个按键就是修改时间变量的按键,修改 ...
- 单片机数字定时闹钟设计c语言,电子设计 基于51单片机的定时闹钟设计.doc
电子设计 基于51单片机的定时闹钟设计 课件之家精心整理资料--欢迎你的欣赏 课件之家精心整理资料--欢迎你的欣赏 摘 要 单片计体积小.能耗低.成本低.功能强,广泛应用于智能产品和工业自动化上.本次 ...
最新文章
- 嵌入式开发中DSP与FPGA的关系
- 最近对python颇有兴趣
- python3 整除 取模
- Service xxx does not have a SELinux domain defined
- 在word中给公式添加序号
- linux查看端口属性,linux如何查看系统属性指令?
- photozoompro 8 解锁代码_能够在手机上实现代码编写的APP——Pydroid 3
- OpenShift 4 - DevSecOps Workshop (13) - 将镜像推送到Quay,并进行漏洞扫描
- 获取元素在文档上的正确坐标
- matlab模拟光栅,matlab对光栅的仿真代码
- 怎么接收xml报文_Benteler/本特勒 DESADV 报文生成过程
- Android PreferenceScreen的使用和详解(设置页面)
- 使用python做王者荣耀挂机刷金币脚本
- u盘里删除的文件可以恢复吗?分享解决方法
- 详解:C语言中的指针和p, p+1, *(p+1), *P+1, p[0], p[0] 的含义
- java的三大体系分别是什么
- JAVA体育用品在线商城系统-springboot【数据库设计、论文、源码、开题报告】
- 淘宝卖家数据分析体系
- 光模块MSA多源协议详细解析
- 46、linux开发笔记(主线更新)
热门文章
- web界面测试用例(shelley_shu)
- element 表格背景颜色透明
- 访问项目无法访问 此网站192.168.*** 拒绝了我们的连接请求。
- 修改STM32的USB程序
- linux网卡操作命令 ,查看Linux下网卡连接状态(up还是down)?
- JSON对象转java对象 JSON数组转LIST数组
- 跟百事斗了100年,可口可乐凭什么“赢”?
- L2TP协议及AVP
- exec函数族的作用与讲解
- 氧饱夹语音芯片,内置功放直推喇叭输出,低成本语音IC,WTN6系列