找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2240|回复: 0
收起左侧

蓝桥杯嵌入式程序设计(STM32里程仪)

[复制链接]
ID:235575 发表于 2019-1-8 21:19 | 显示全部楼层 |阅读模式
这是我用了2天写的嵌入式程序, 经检验,功能基本上都实现了,欢迎各位下载。

单片机源程序如下:
  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检测是否停车
  13. __IO u32 TimeVar=0;//计时缓存
  14. u8 THH=0,TMM=0,TSS=0;//时间显示
  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);//时钟频率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. }
复制代码

所有资料51hei提供下载:
里程仪.7z (144.66 KB, 下载次数: 38)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表