当前位置: 首页 > news >正文

【51单片机篮球记分器+复合按键操作】2022-12-22 - 指南

缘由51单片机蓝球计分器-编程语言-CSDN问答

#include "reg52.h"
//定义按键
sbit key0=P3^0;
sbit key1=P3^1;
sbit key2=P3^2;
sbit key3=P3^3;
//定义数码管位驱运位
sbit L1=P2^2;
sbit L2=P2^3;
sbit L3=P2^4;
sbit beep=P2^5;
unsigned char code ShuMaGuan[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x00,0X80,64};//0~9隐.小数点-号
unsigned char Js=0, Miao=0, Fen=0, Shi=12, LQJF=0,LQ1=0,LQ2=0;//中断计时 秒 分 时 篮球倒计时 篮球1分数 篮球2分数
bit smk=0,bek=0;
void ShuMaXianShi(unsigned char s,unsigned char w,unsigned char d)
{
unsigned char YanShi=0;
P0=L1=L2=L3=0;
if(smk)
{
switch(w)
{
case 2:{L1=0;L2=L3=1;}break;//011
case 3:{L2=0;L1=L3=1;}break;//101
case 4:{L1=L2=0;L3=1;}break;//001
case 5:{L1=L2=1;L3=0;}break;//110
case 6:{L1=L3=0;L2=1;}break;//010
case 7:{L1=1;L2=L3=0;}break;//100
case 8:{L1=L2=L3=0;}break;//000
case 1:{L1=L2=L3=1;}break;//111
default:{L1=L2=L3=0;}break;
}
P0=ShuMaGuan[s]|ShuMaGuan[d];//d显示小数点11,10关闭
if(++YanShi>7)YanShi=smk=0;
}
}
void XianShi()
{
ShuMaXianShi(LQ1/10,1,10);
ShuMaXianShi(LQ1%10,2,10);
ShuMaXianShi(12,3,10);
ShuMaXianShi(LQJF/10,4,10);
ShuMaXianShi(LQJF%10,5,10);
ShuMaXianShi(12,6,10);
ShuMaXianShi(LQ2/10,7,10);
ShuMaXianShi(LQ2%10,8,10);
}
void JiShi(/*时间计算*/)
{
if(Js%50==0)smk=1;
if(Js>100)
{
Js=0;
if(LQJF==0)TR0=0;else --LQJF;
}
XianShi();
}
void ZhongDuanSheZhi()
{
TH0+=(65536-10000)/256;/*定时器赋初值,定时10ms触发中断,自动补偿方式*/
TL0+=(65536-10000)%256; /*11.0592MHz/12=921600Hz就是1秒921600次机器周期*/
TMOD=0X01;
TR0=1;
ET0=1; //开启定时器
EA=1; //全局中断开关
}
void ZhongDuan() interrupt 1
{
++Js;
TH0+=(65536-(9216+674))/256;/*定时器赋初值,定时10ms触发中断,自动补偿方式*/
TL0+=(65536-(9216+674))%256; /*11.0592MHz/12=921600Hz就是1秒921600次机器周期*/
}
void main()
{
unsigned char Ys=0,jh=0;
ZhongDuanSheZhi();
while(1)
{
if(key0==0&&(key2==0||key3==0)&&++Ys==0)
{if(key3==0&&LQJF==0)LQ2+=2;	if(key2==0&&LQJF==0)LQ1+=2;
while(key0==0&&(key2==0||key3==0))JiShi();}//复合按键+2分
if(key1==0&&(key2==0||key3==0)&&++Ys==0)
{if(key3==0&&LQJF==0)LQ2+=3;	if(key2==0&&LQJF==0)LQ1+=3;
while(key1==0&&(key2==0||key3==0))JiShi();}//复合按键+3分
if(key0&&key1&&key2==0&&++Ys==0)
{jh=LQ1;LQ1=LQ2;LQ2=jh;while(key2==0)JiShi();}//配合按键+交换
if(key0&&key1&&key3==0&&++Ys==0)
{LQJF=20;TR0=1;while(key3==0)beep=~beep;}//倒计时+蜂鸣器/配合按键
JiShi();
}
}

http://www.hskmm.com/?act=detail&tid=36725

相关文章:

  • npm ERR! chromedriver@2.46.0 install: `node install.js`
  • Java 实现 MySQL 同机 异机自动备份到 MinIO(附完整代码)
  • 为什么现在入行 Salesforce 更难了?真相在这里
  • Android 资源适配踩坑记:为什么我的设备匹配不上对应的 `values-wXXXdp-hXXXdp`?
  • QT实现DockWidget内部组件自动换行布局
  • 2025年知名的工业防锈漆厂家最新推荐榜 - Di
  • java8以上快速生成wsdl
  • 2025 年 10 月深圳市激光雕刻机厂家解析,基于专业技术及市场分析
  • UMDF驱动开发入门:二 详解INF文件与设备类选择
  • 2025年诚信的光学真空镀膜机厂家推荐及选择指南 - Di
  • 2025 蛋白/8秒液体/发膜推荐榜:玛丝兰 5 星领跑,这些修护力出众的品牌值得囤!西安悦己容凭技术实力登顶
  • 2025年耐用的破碎机TOP厂家推荐
  • 2025年知名的雕塑推荐TOP品牌企业 - Di
  • 美股及墨西哥股票数据接口文档
  • Spring - 教程
  • 例子:vue3+vite+router创建多级导航菜单
  • 2025 - Di
  • JVM探究(Leo)
  • Higress v2.1.8:30 项引擎更新 + 4 项控制台更新
  • 2025 年最新推荐!集装箱拖车供应厂家权威榜单重磅发布,全方位解析优质厂家实力助企业选对合作伙伴
  • 实战案例 | 利用山海鲸可视化软件,构建制造业数字孪生监控大屏
  • 权威调研榜单:无线电环形导轨配件生产厂家TOP3榜单好评深度解析
  • 10.22模拟赛总结
  • 从零开始制作操作系统—— 最简单的操作系统内核
  • 【CSP出版 | 最快投稿后一个月见刊 | 检索稳定】2025年艺术、教育与管理国际学术会议(ICAEM 2025)- 第六期
  • 【LeetCode 每日一题】120. 三角形最小路径和——(解法二)自底向上 - 实践
  • HDFS Java api操作-cnblog
  • 电网不平衡条件下DFIG风力发电机动态建模与控制
  • Pandas 深入学习【3】材料标准化处理 StandardScaler
  • C#实现CRC8、CRC16、CRC32校验算法