本项目采用芯片:AT89C52
本项目采用的编码程序:keil 5
需要用到的模块:定时器,LCD1602,独立按键(本人采用矩阵键盘,实际选择看功能多少),蜂鸣器
所实现的功能:
每一小节12分钟自动倒计时
A、B两队各自计分,由按键控制(本项目采用得几分按键按几下,也可根据需要将不同按键设计成1,2,3分)
每队都有24秒进攻时间显示,在进球得分后将24秒重新计时
比赛可设置暂停键以及重启键
所有过程均有蜂鸣器提示音
效果图:
没有搞仿真,感觉太麻烦了,不如一块开发板,嘿嘿
主程序:
#include <REGX52.H>
#include "timer0.h"
#include "lcd1602.h"
#include "matrixkey.h"
#include "buzzer.h"
#include "delay.h"
unsigned int min=12,sec=0,score1,score2,ball0=24;
unsigned char keynum;
void main()
{
LCD_Init();
LCD_ShowString(1,2,"A B");
while(1)
{
LCD_ShowNum(1,4,score1,3);
LCD_ShowNum(1,11,score2,3);
LCD_ShowString(2,9,":");
LCD_ShowNum(2,7,min,2);
LCD_ShowNum(2,10,sec,2);
LCD_ShowNum(1,8,ball0,2);
keynum=matrixkey();
if(keynum) //按键提示音
{
buzzer_time(100);
}
if(keynum==1) //比赛开始
{
timer0_Init();
}
if(keynum==2) //一队加分
{
score1++;
ball0=24;
}
if(keynum==3) //二队加分
{
score2++;
ball0=24;
}
if(keynum==4) //暂停
{
EA=0;
}
if(keynum==5) //复位
{
break;
}
}
}
void timer0_routine() interrupt 1
{
static unsigned int t0count;
TL0 = 0x18;//设置定时初始值
TH0 =

最低0.47元/天 解锁文章
1067





