找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2854|回復(fù): 0
收起左側(cè)

藍(lán)橋杯嵌入式程序設(shè)計(jì)(STM32里程儀)

[復(fù)制鏈接]
ID:235575 發(fā)表于 2019-1-8 21:19 | 顯示全部樓層 |閱讀模式
這是我用了2天寫(xiě)的嵌入式程序, 經(jīng)檢驗(yàn),功能基本上都實(shí)現(xiàn)了,歡迎各位下載。

單片機(jī)源程序如下:
  1. #include "stm32f10x.h"
  2. #include "lcd.h"
  3. #include "led.h"
  4. #include "seg.h"
  5. #include "pwm.h"
  6. #include "stdio.h"
  7. u32 Delayms=0;
  8. unsigned char flag_T=0;


  9. unsigned char k_PWM=1,k_Cuty=1;
  10. __IO u8 Total_km = 0;
  11. float Total_km_temp=0;

  12. unsigned char flag_stop_check = 0;//1500ms檢測(cè)是否停車(chē)
  13. __IO u32 TimeVar=0;//計(jì)時(shí)緩存
  14. u8 THH=0,TMM=0,TSS=0;//時(shí)間顯示
  15. //uint32_t flag_stop_temp=0;
  16. __IO u8 flag_check = 0;//200ms刷新顯示信息
  17. // u8 string[20];
  18. extern __IO uint32_t TIM2Freq;
  19. extern unsigned char flag_time;
  20. extern unsigned char flag_Car;
  21. extern __IO u8  flag_Cath;
  22. void RCC_Configuration(void);
  23. void GPIO_Configuration(void);
  24. void NVIC_Configuration(void);
  25. void Delay_ms(u32 ntime);
  26. void Key_Pro(void);
  27. int main(void)       
  28. {
  29.   u8 string[20];
  30.         SysTick_Config(SystemCoreClock/1000);       
  31.   PWM_Init();
  32.         Get_PWM(10000/k_PWM,5000/k_Cuty);
  33.         STM3210B_LCD_Init();
  34.         LED_init();
  35.         LCD_Clear(Blue);
  36.         LCD_SetBackColor(Blue);
  37.         LCD_SetTextColor(White);                                                         
  38.         // InputCaputure(0xffff,7199);
  39.         TIM2IN_Init(0xffff,7200-1);//時(shí)鐘頻率10khz
  40.         Total_km_temp = (float)(Total_km*500);
  41.         sprintf((char *)string,"    Total(km):%d   ",Total_km);
  42.         LCD_DisplayStringLine(Line9,string);
  43.   while (1)
  44.         {
  45.                
  46.                 Key_Pro();
  47.   display();

  48.         }
  49. }





  50. void Key_Pro(void)
  51. {
  52.         if(RB1==0)
  53.         {
  54.                 Delay_ms(10);
  55.                 if(RB1==0)
  56.                 {
  57.                         flag_T=1;
  58.                  k_PWM++;
  59.                  k_Cuty++;
  60.                         if(k_PWM==20) k_PWM=0;
  61.                         else if(k_Cuty==20) k_Cuty=0;

  62.                 }while(!RB1);
  63.                
  64.         }
  65.        
  66.                 if(RB2==0)
  67.         {
  68.                 Delay_ms(10);
  69.                 if(RB2==0)
  70.                 {
  71.                        
  72.                         k_PWM--;
  73.                   k_Cuty--;
  74.                         if(k_PWM==20) k_PWM=0;
  75.                         else if(k_Cuty==20) k_Cuty=0;


  76.                 }while(!RB2);
  77.                
  78.         }
  79.        
  80.        
  81. }

  82. void NVIC_Configuration(void)
  83. {
  84.   NVIC_InitTypeDef NVIC_InitStructure;

  85.   /* Enable the TIM3 global Interrupt */
  86.   NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;
  87.   NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  88.   NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
  89.   NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  90.   NVIC_Init(&NVIC_InitStructure);
  91. }

  92. void Delay_ms(u32 ntime)
  93. {
  94.                
  95.                   Delayms=ntime;
  96.            while(Delayms!=0);
  97.        
  98. }
復(fù)制代碼

所有資料51hei提供下載:
里程儀.7z (144.66 KB, 下載次數(shù): 38)


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表