久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2949|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

stm8單片機智能車載空氣凈化器的原理圖和PCB源程序設(shè)計

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:744308 發(fā)表于 2020-5-5 09:31 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
(1)開機后,紫燈持續(xù)顯示2分鐘后,風(fēng)扇在高速模式下運行。空氣質(zhì)量傳感器預(yù)熱結(jié)束,開始檢測空氣質(zhì)量。(實際測3.5分鐘)
(2)當(dāng)空氣質(zhì)量傳感器檢測到空氣質(zhì)量差時,指示燈仍然顯示紫色,并持續(xù)30秒。
(3)檢測空氣質(zhì)量,如檢測結(jié)果仍然是差,則仍然執(zhí)行第2步步驟。如檢測到空氣質(zhì)量為良(或優(yōu))指示燈顯示綠色,并持續(xù)20秒。
(4)檢測氣質(zhì)量,如檢測結(jié)果為差指示燈顯示為紫色,并從第2步開始向下執(zhí)行;如檢測結(jié)果為良,則從第3步開始向下執(zhí)行;檢測結(jié)果為優(yōu),則指示燈顯示藍色。
(5)當(dāng)空氣質(zhì)量傳感器檢測到差,步驟從第2步到第5步依次循環(huán)執(zhí)行。

單片機源程序如下:
  1. #define __MAIN_C

  2. /* Includes ------------------------------------------------------------------*/
  3. #include "stm8s.h"
  4. #include "system.h"
  5. #include "sensor.h"
  6. #include "Key.h"
  7. #include "Speed_Control.h"
  8. #include "Filter.h"
  9. #include "EEPROM.h"
  10. /* Private defines -----------------------------------------------------------*/
  11. /* Private function prototypes -----------------------------------------------*/
  12. void CLK_Configuration(void);
  13. void GPIO_Configuration(void);
  14. void TIM4_Configuration(void);
  15. void TIM2_Configuration(void);
  16. void AD_Configuration(void);
  17. void FLASH_Configuration(void);
  18. /* Private functions ---------------------------------------------------------*/
  19. //u8 wData[10]={8,2,3,4,5,6,7,8,9,10};
  20. //u8 rData[10];

  21. void main(void)
  22. {
  23.   CLK_Configuration();
  24.   
  25.   GPIO_Configuration();
  26.   
  27.   Check_Manufature();
  28.   
  29.   TIM4_Configuration();  //定時時鐘基準(zhǔn)
  30.   
  31.   TIM2_Configuration();  //風(fēng)扇PWM
  32.   
  33.   AD_Configuration();
  34.   
  35.   Parameter_Init();
  36.   
  37.   PIN_GAS_POWER(on); //傳感器電源一直給
  38.   
  39.   /* Infinite loop */
  40.   while (1)
  41.   {
  42.     if(Manufature != 0)
  43.     {
  44.       Process_Manufature();
  45.     }
  46.     else
  47.     {
  48.       Process_Key();
  49.    
  50.       Process_LED();
  51.       
  52.       Process_Speed_Control();
  53.       
  54.       Process_AD();
  55.       
  56.       Process_RealAirQuality();
  57.       
  58.       Process_Anion();
  59.       
  60.       Process_Filter();
  61.     }
  62.   }
  63. }

  64. //------------------------------------------
  65. //系統(tǒng)時鐘配置
  66. void CLK_Configuration(void)
  67. {
  68.     CLK->CKDIVR = 0x00; //16MHz
  69.     //CLK->PCKENR1 |= 0x10; //Peripheral Clock-TIM4
  70. }

  71. //------------------------------------------
  72. //輸入輸出配置
  73. void GPIO_Configuration(void)
  74. {
  75.   //PC7:NEGA1 PD3:NEGA2
  76.   GPIO_Init(GPIOC,GPIO_PIN_7,GPIO_MODE_OUT_PP_LOW_SLOW);
  77.   GPIO_Init(GPIOD,GPIO_PIN_3,GPIO_MODE_OUT_PP_LOW_SLOW);
  78.   
  79.   //PC6:TriLED_1  PC5:TriLED_2  PC3:TriLED_3
  80.   GPIO_Init(GPIOC,GPIO_PIN_6,GPIO_MODE_OUT_PP_LOW_SLOW);
  81.   GPIO_Init(GPIOC,GPIO_PIN_5,GPIO_MODE_OUT_PP_LOW_SLOW);
  82.   GPIO_Init(GPIOC,GPIO_PIN_3,GPIO_MODE_OUT_PP_LOW_SLOW);
  83.   
  84.   //PD2:KEY_FILTER_RESET  PC4:KEY_SPEED
  85.   GPIO_Init(GPIOD,GPIO_PIN_2,GPIO_MODE_IN_FL_NO_IT);
  86.   GPIO_Init(GPIOC,GPIO_PIN_4,GPIO_MODE_IN_FL_NO_IT);
  87.   
  88.   //PB4:EE_SCL  PB5:EE_SDA
  89.   GPIO_Init(GPIOB,GPIO_PIN_4,GPIO_MODE_OUT_OD_HIZ_SLOW);
  90.   GPIO_Init(GPIOB,GPIO_PIN_5,GPIO_MODE_OUT_OD_HIZ_SLOW);
  91.   
  92.   //PA2:GAS_POWER
  93.   GPIO_Init(GPIOA,GPIO_PIN_2,GPIO_MODE_OUT_PP_HIGH_SLOW); //低電平有效
  94. }

  95. //------------------------------------------
  96. //------------------------------------------
  97. //100us時鐘基準(zhǔn)
  98. void TIM4_Configuration(void)
  99. {
  100.   //TIM4_TimeBaseInit(0x04, 100);  // Time base configuration
  101.   TIM4->PSCR = 0x04; //16
  102.   TIM4->ARR = (100-1);  //100
  103.   
  104.   TIM4_ARRPreloadConfig(ENABLE);
  105.    
  106.   TIM4_ClearFlag(TIM4_FLAG_UPDATE);  // Clear TIM4 update flag
  107.   
  108.   TIM4_ITConfig(TIM4_IT_UPDATE, ENABLE); //Enable update interrupt
  109.   
  110.   enableInterrupts();  // enable interrupts

  111.   TIM4_Cmd(ENABLE);  // Enable TIM4
  112. }
  113. //------------------------------------------
  114. //PWM_Vfan風(fēng)扇電壓控制  PWM模式 10kHz載頻
  115. void TIM2_Configuration(void)
  116. {
  117.   TIM2_DeInit();
  118.   
  119.   TIM2_TimeBaseInit(TIM2_PRESCALER_16,99); //載頻10kHz
  120.   
  121.   //PWM1模式,輸出使能,初始化占空比0%,有效電平為高電平
  122.   TIM2_OC1Init(TIM2_OCMODE_PWM1,TIM2_OUTPUTSTATE_ENABLE,0,TIM2_OCPOLARITY_HIGH);
  123.   
  124.   TIM2_OC1PreloadConfig(ENABLE);
  125.   
  126.   TIM2_ARRPreloadConfig(ENABLE);
  127.   
  128.   TIM2_Cmd(ENABLE); //TIM2 enable counter
  129. }
  130. //------------------------------------------
  131. //AD配置
  132. void AD_Configuration(void)
  133. {
  134.   /*
  135.   ADC1->TDRL = 0x60;  //disable schmitt trigger
  136.   ADC1->CR1 |= 0x40;  //f(adc)=f(master)/8
  137.   ADC1->CR2 |= 0x08;   //數(shù)據(jù)右對齊
  138.   //ADC1->CSR = 6;      //通道選擇,初始化為AD_Vfan-AIN6
  139.   ADC1->CSR = 5;    //通道選擇,GAS-AIN5
  140.   ADC1->CR1 |= ADC1_CR1_ADON; //start AD conversion
  141.   ADC1->CR1 |= ADC1_CR1_ADON; //啟動轉(zhuǎn)換必須第二次使用寫指令來置位寄存器的位
  142.   */
  143.   
  144.   ADC1_DeInit();
  145.   
  146.   //單次采樣,通道6,數(shù)據(jù)右對齊
  147.   ADC1_ConversionConfig(ADC1_CONVERSIONMODE_SINGLE,ADC1_CHANNEL_6,ADC1_ALIGN_RIGHT);
  148.   
  149.   //f(adc)=f(master)/8
  150.   ADC1_PrescalerConfig(ADC1_PRESSEL_FCPU_D8);
  151.   
  152.   //disable schmitt trigger
  153.   //ADC1_SchmittTriggerConfig(ADC1_SCHMITTTRIG_ALL,DISABLE);
  154.   //ADC1_SchmittTriggerConfig(ADC1_SCHMITTTRIG_CHANNEL5,DISABLE);
  155.   //ADC1_SchmittTriggerConfig(ADC1_SCHMITTTRIG_CHANNEL6,DISABLE);
  156.   
  157.   //Enable the ADC1 peripheral
  158.   ADC1->CR1 |= ADC1_CR1_ADON;
  159.   
  160.   AD_Start();
  161.   //ADC1_StartConversion(); //初始化AD啟動需要寫兩次ADC1->CR1,以后只寫一次就可以了
  162. }
  163. //------------------------------------------
  164. //FLASH配置-EEPROM
  165. void FLASH_Configuration(void)
  166. {
  167.   //Define FLASH programming time
  168.   FLASH_SetProgrammingTime(FLASH_PROGRAMTIME_STANDARD);

  169.   //FLASH_Unlock(FLASH_MEMTYPE_PROG);
  170.   //Wait until Flash Program area unlocked flag is set
  171.   //while (FLASH_GetFlagStatus(FLASH_FLAG_PUL) == RESET)
  172.   //{}

  173.   //Unlock flash data eeprom memory
  174.   FLASH_Unlock(FLASH_MEMTYPE_DATA);
  175.   //Wait until Data EEPROM area unlocked flag is set
  176.   //while (FLASH_GetFlagStatus(FLASH_FLAG_DUL) == RESET)
  177.   //{}
  178. }

  179. #ifdef USE_FULL_ASSERT

  180. /**
  181.   * @brief  Reports the name of the source file and the source line number
  182.   *   where the assert_param error has occurred.
  183.   * @param file: pointer to the source file name
  184.   * @param line: assert_param error line source number
  185.   * @retval : None
  186.   */
  187. void assert_failed(u8* file, u32 line)
  188. {
  189.   /* User can add his own implementation to report the file name and line number,
  190.      ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */

  191.   /* Infinite loop */
  192.   while (1)
  193.   {
  194.   }
  195. }
  196. #endif

  197. /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
復(fù)制代碼

所有資料51hei提供下載:
STM8S_StdPeriph_Template.rar (448.15 KB, 下載次數(shù): 54)
原理圖和PCB源文件.rar (652.5 KB, 下載次數(shù): 70)
AP1301車載空氣凈化器修改后-20130811更新.doc (2.99 MB, 下載次數(shù): 54)


評分

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

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏6 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 黄网站免费在线 | 亚洲免费大片 | 精品无码久久久久久国产 | 欧美久久久久久 | 亚洲人成在线观看 | 人人人人干 | 久久高清免费视频 | 国产精品99视频 | 中文字幕精品视频在线观看 | 中文字幕一级毛片视频 | 四虎影院新网址 | 精品视频在线免费观看 | 久久国产精品免费一区二区三区 | 国产精品一区二区av | 亚洲欧美日韩精品久久亚洲区 | 免费成人在线网 | 精品国产一区三区 | 中文字幕不卡一区 | 国产xxxx搡xxxxx搡麻豆 | 日韩av网址在线观看 | 国产欧美日韩一区二区三区在线 | 91精品久久| 精品亚洲一区二区三区 | 日韩精品在线观看一区二区 | 综合久久综合久久 | 2019天天操 | 亚洲成人免费观看 | 91精品国产一区二区三区 | av在线一区二区三区 | 精品国产一区探花在线观看 | 色偷偷人人澡人人爽人人模 | 日韩中文一区 | 久久中文字幕电影 | 99久久视频 | 成人欧美一区二区三区在线观看 | 亚洲综合一区二区三区 | 久久久一区二区 | 久久精品国产亚洲 | 日韩精品一区二区三区在线观看 | 国产一区二区影院 | 中文字幕亚洲精品 |