文章目錄
- 一、功能簡介
- 二、軟件設計
- 三、實驗現象
- 聯系作者
一、功能簡介
本項目使用Proteus8仿真51單片機控制器,使用聲光報警模塊、動態數碼管模塊、按鍵模塊等。
主要功能:
系統運行后,數碼管顯示比賽時間和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設計,視頻分享,技術交流。