文章目录
- 一、功能简介
- 二、软件设计
- 三、实验现象
- 联系作者
一、功能简介
本项目使用Proteus8仿真STM32单片机控制器,使用声光报警模块、动态数码管模块、按键模块等。
主要功能:
系统运行后,数码管显示比赛时间和AB队得分;系统还未开启时,可通过按键K1和K2调节分钟,K3和K4调节秒钟;当按下K7键比赛开始,K1和K2调节A队得分;K3和K4调节B队得分;当比赛时间结束,可按下K6键交换场地,亦可按下K5键清零得分,回归最初状态。
二、软件设计
/*
作者:嗨小易(QQ:3443792007)*///系统数据设置
void sys_data_set(void)
{u8 key=0;key=key_scan(0);//开始/暂停if(key==KEY7_PRESS){beep_alarm(10,1000);//提示音sys_ctrl.start++;if(sys_ctrl.start==1){LED_KS=0;LED_ZT=1;TR0=1;//打开定时器}else if(sys_ctrl.start==2){LED_KS=1;LED_ZT=0;TR0=0;//关闭定时器 }else {LED_KS=0;LED_ZT=1;sys_ctrl.start=1;TR0=1;//打开定时器 } }//还未开始,可调节时间if(sys_ctrl.start==0){//分加if(key==KEY1_PRESS) {sys_ctrl.min++;if(sys_ctrl.min>59)sys_ctrl.min=0; }//分减else if(key==KEY2_PRESS) {sys_ctrl.min--;if(sys_ctrl.min<0)sys_ctrl.min=59; }//秒加else if(key==KEY3_PRESS) {sys_ctrl.sec++;if(sys_ctrl.sec>59)sys_ctrl.sec=0; }//秒减else if(key==KEY4_PRESS) {sys_ctrl.sec--;if(sys_ctrl.sec<0)sys_ctrl.sec=59; }//清零else if(key==KEY5_PRESS) {sys_parm_init();//系统参数初始化 }//交换场地else if(key==KEY6_PRESS) {sys_ctrl.dir=!sys_ctrl.dir; }}//比赛开始else{//A加分if(key==KEY1_PRESS) {sys_ctrl.score_a++;if(sys_ctrl.score_a>99)sys_ctrl.score_a=99; }//A减分else if(key==KEY2_PRESS) {sys_ctrl.score_a--;if(sys_ctrl.score_a<0)sys_ctrl.score_a=0; }//B加分else if(key==KEY3_PRESS) {sys_ctrl.score_b++;if(sys_ctrl.score_b>99)sys_ctrl.score_b=99; }//B减分else if(key==KEY4_PRESS) {sys_ctrl.score_b--;if(sys_ctrl.score_b<0)sys_ctrl.score_b=0; } }
}//应用控制系统
void app_ctrl_sys(void)
{sys_parm_init();//系统参数初始化time0_init();//定时器0初始化 while(1){sys_data_show();//系统数据显示sys_data_set();//系统数据设置 }
}
三、实验现象
B站演示视频:https://space.bilibili.com/444388619
联系作者
视频地址:https://space.bilibili.com/444388619/video
专注于51单片机、STM32、国产32、DSP、Proteus、arduino、ESP32、物联网软件开发,PCB设计,视频分享,技术交流。