參加2018年山西省電子設計大賽,最后拿到全省一等獎,這是參加校賽的代碼。
單片機源程序如下:
- #include "include.h"
- u8 key_value; //按鍵接收變量
-
- int main(void)
- {
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //設置NVIC中斷分組2:2位搶占優先級,2位響應優先級
- SystemInit(); //系統初始化函數
- delay_init(); //延時函數初始化
- uart_init(115200); //串口初始化為9600
- TIM3_PWM_Init(7999,0); //PWM初始化,不分頻,PWM頻率=72000000/8000=9khz
- motor_init(); //電機初始化函數
- BEEP_Init(); //蜂鳴器初始化函數
- KEY_Init(); //五軸按鍵初始化函數
- OLED_Init(); //OLED初始化函數
- TIM2_Int_Init(4999,7199); //10Khz的計數頻率,計數到50為5ms
- EXTIX_Init(); //初始化上升沿/下降沿外部中斷
- OLED_Clear();
- OLED_ShowNumber(15,2,2);
- OLED_ShowNumber(31,2,0);
- OLED_ShowNumber(47,2,1);
- OLED_ShowNumber(63,2,8);
- OLED_ShowCHinese(88,2,0);
- OLED_ShowCHinese(16,4,1);
- OLED_ShowCHinese(36,4,2);
- OLED_ShowCHinese(56,4,3);
- OLED_ShowCHinese(76,4,4);
- OLED_ShowCHinese(96,4,5);
- delay_ms(2000); //2018年山西省電賽
-
-
- // OLED_Clear();
- // OLED_ShowString(2,0,"time:");
- // OLED_ShowNumber(40,0,10);
- // OLED_ShowString(2,2,"dist:");
- // OLED_ShowNumber(40,2,1000);
-
- while(1)
- {
-
- // OLED_ShowNumber(2,0,encoder_left);
- // OLED_ShowNumber(2,2,encoder_right);
-
- /**************************以下是已經測試好的部分代碼*******************************/
- // key_value=KEY_Scan(0); //得到鍵值
- // if(key_value)
- // {
- // switch(key_value)
- // {
- // case UP_PRES:
- // printf("上");
- // break;
- // case DOWN_PRES:
- // printf("下");
- // break;
- // case LEFT_PRES:
- // printf("左");
- // break;
- // case RIGH_PRES:
- // printf("右");
- // break;
- // case CENT_PRES:
- // printf("中");
- // break;
- // }
- // }
-
-
- // BEEP=1;
- // delay_ms(500);
- // BEEP=0;
- // delay_ms(500);
-
- }
- }
復制代碼
所有資料51hei提供下載:
我的小破三輪.7z
(201.13 KB, 下載次數: 11)
2019-1-5 17:36 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|