历史上的今天
今天是:2024年09月30日(星期一)
2021年09月30日 | 基于51单片机的羽毛球计分器设计
2021-09-30 来源:eefocus
一.硬件方案
本设计采用单片机AT89C51作为核心元件。本设计由控制系统,显示模块,按键驱动模块3部分组成。主要编写了主程序,中断程序,显示程序功能模块程序等。实现羽毛球计分器功能。
主要由51单片机+最小系统+LCD1602液晶显示模块+LED指示灯模块+按键模块;如图:

二.设计功能
(1)采用按钮开关实现功能控制,按照设计的功能模块共选用8个按钮开关,分别实现启动、A队加分、A队减分、B队加分、B队减分、暂停、停止、清零功能。
(2)选用LCD1602液晶屏作为显示器件,用于记录两队的分数。

三.设计原理图
(1)原理图主要采用AD软件进行设计,如图:

(2)Protues仿真图如下:

四.软件设计
(1)程序流程图

(2)主程序源码
void main()
{
EA = 1; //开总中断
ConfigTimer0(1); //配置T0定时1ms
InitLcd1602(); //初始化液晶
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;
}
}
上一篇:基于51单片机的蓝牙电子秤设计
下一篇:基于51单片机的全自动洗衣机设计
史海拾趣
|
这个帖子主要和大家介绍一些我们在FPGA硬件系统设计过程中遇到的问题和解决的方法。也欢迎大家一起参与讨论。主要涉及以下几个方面: 1。芯片的选型 包括FPGA芯片的选型原则,外围芯片,比如存储器,电源,接口芯片等等选择的依据。我们会给大 ...… 查看全部问答> |
|
我的应用EVC开发下,dialog为主窗口,窗口中放了个Listctrl(class CMylistCtrl : public CListCtrl) 我在模拟器下跑的时候,通过PC的键盘中的上、下键可以操作item,我写这个应用的时候都是在模拟器上操作的 我的问题是:怎么把模拟器上实现了 ...… 查看全部问答> |
|
短信猫在低压配电监控应用 随着电网改造的逐步深入,电力配网技术的高速发展,科学、经济、有效的控制电网运行,必须逐步实现、提高配网自动化水平。城市配电网自动化系统是电力部门改善供电质量,合理配置供电设备,有效实现电力需求侧管理的重要 ...… 查看全部问答> |
|
刚拿到个MC50,要开发Scanner ,我该如何入手?我是做JAVA的 ,J9安装了,SMDK v1.4 for Java我下载了,但不知道怎么入手 … 查看全部问答> |
|
各位神人好: 我想知道CE 数据库能否自动的将CE数据库中保存的数据插入更新到SQL Server中,并且不影响SQL Server数据库中之前保存的数据。 谢谢啦~我一定给分!… 查看全部问答> |




