当前位置: 首页 > 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;//011case 3:{L2=0;L1=L3=1;}break;//101case 4:{L1=L2=0;L3=1;}break;//001case 5:{L1=L2=1;L3=0;}break;//110case 6:{L1=L3=0;L2=1;}break;//010case 7:{L1=1;L2=L3=0;}break;//100case 8:{L1=L2=L3=0;}break;//000case 1:{L1=L2=L3=1;}break;//111default:{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.dtcms.com/a/406130.html

相关文章:

  • 网站域名属于哪里管网站 类库
  • 【超分辨率专题】DLoRAL:视频超分辨率的新范式,细节与时序一致的双重提升
  • VS2022 C++调试完全指南
  • 【JAVA】从入门到放弃-01-HelloWorld
  • 玳瑁的嵌入式日记---0925(ARM--时钟)
  • 《代码的“言外之意”:从词源学透彻理解编程》字符的“双重生活”:从Escape到Raw
  • 【Spark+Hive+hadoop】人类健康生活方式数据分析
  • K8S部署的rook-ceph下线osd流程
  • 建站历史查询如何做网站推广页面
  • maven使用非明文密码配置
  • 做网站后期维护工资贴吧wordpress ad widget
  • Reactor 模式:高并发网络编程的事件驱动利器
  • 无人机数传模块技术要点概述
  • Telegram机器人Token和ChatID获取教程
  • Deepoc具身智能模型:为传统电厂巡检机器人注入“灵魂”与“智慧”
  • 中医智慧+AI科技,七彩喜机器人让健康养护“智”在必得
  • Ubuntu 中 Bash / Zsh / Ash / Dash 的使用与区别(含对比图)
  • leetcode 814 二叉树剪枝
  • 【Redis】热Key/大Key问题、缓存击穿、缓存穿透、缓存雪崩、缓存与数据库一致性问题
  • 大模型剪枝系列——基于权重大小剪枝
  • 制作网站的模板深圳网站改版公司
  • 【Linux基础知识系列:第一百四十篇】理解SELinux与系统安全
  • dbswitch:一款免费开源、功能强大的异构数据库迁移同步工具
  • python+uniapp基于微信小程序美食点餐系统
  • Go语言100个实战案例-进阶与部署篇:使用Go打包生成可执行文件
  • 【Golang】--- 函数深度解析
  • 后端进阶-性能优化
  • 吉林做网站wordpress创建登录页
  • 【C++篇】C++11:从列表初始化到移动语义
  • WPS清除图片段落布局脚本