STM32水質檢測仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.gif (217.28 KB, 下載次數: 69)
下載附件
2022-4-23 17:20 上傳
51hei.png (30.22 KB, 下載次數: 93)
下載附件
2021-3-19 23:31 上傳
I}U{{J~AO72A(POZB4PFNYT.png (19.13 KB, 下載次數: 114)
下載附件
2021-3-19 22:18 上傳
單片機源程序如下:
- #include "stm32f10x.h"
- #include "bsp-lcd1602.h"
- #include "delay.h"
- #include "sys.h"
- #include "adc.h"
- char PH_High = 7;
- char zuodu_High = 50;
- void LED( void )
- {
- GPIO_InitTypeDef GPIO_InitStructure;
-
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
- GPIO_Init(GPIOA, &GPIO_InitStructure);
- GPIO_SetBits( GPIOA,GPIO_Pin_10 );
-
- }
- int main(void)
- {
- int ADC_num;
- int temp1,temp2;
-
- ADC1_GPIO_Config();
- ADC_Config();
- LCD1602_Init();
- LCD1602_ShowStr(0,1,"zd_S:50% PH_S:7",15);
- LCD1602_ShowStr(0,0,"zd: PH: ",15);
- LED();
-
- while(1)
- {
- ADC_num=Get_ADC(ADC_Channel_0);
- temp1=ADC_num*100/4096;
- LCD1602_WriteCmd( 0x80 + 3 );
- LCD1602_WriteDat( temp1/10 + 0x30 );
- LCD1602_WriteDat( temp1%10 + 0x30 );
- LCD1602_WriteDat( '%' );
-
- ADC_num=Get_ADC(ADC_Channel_1);
- temp2=ADC_num*10/4096;
- LCD1602_WriteCmd( 0x80 + 13 );
- LCD1602_WriteDat( temp2 + 0x30 );
-
- if(( temp1 >= 50 )||( temp2 >= 7 ))
- {
- GPIO_ResetBits( GPIOA,GPIO_Pin_10 );
- }
- else
- {
- GPIO_SetBits( GPIOA,GPIO_Pin_10 );
- }
- }
- }
- 3、main函數
- #include "stm32f10x.h"
- #include "bsp-lcd1602.h"
- #include "delay.h"
- #include "sys.h"
- #include "adc.h"
- char PH_High = 7;
- char zuodu_High = 50;
- void LED( void )
- {
- GPIO_InitTypeDef GPIO_InitStructure;
-
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
- GPIO_Init(GPIOA, &GPIO_InitStructure);
- GPIO_SetBits( GPIOA,GPIO_Pin_10 );
-
- }
- int main(void)
- {
- int ADC_num;
- int temp1,temp2;
-
- ADC1_GPIO_Config();
- ADC_Config();
- LCD1602_Init();
- LCD1602_ShowStr(0,1,"zd_S:50% PH_S:7",15);
- LCD1602_ShowStr(0,0,"zd: PH: ",15);
- LED();
-
- while(1)
- {
- ADC_num=Get_ADC(ADC_Channel_0);
- temp1=ADC_num*100/4096;
- LCD1602_WriteCmd( 0x80 + 3 );
- LCD1602_WriteDat( temp1/10 + 0x30 );
- LCD1602_WriteDat( temp1%10 + 0x30 );
- LCD1602_WriteDat( '%' );
-
- ADC_num=Get_ADC(ADC_Channel_1);
- temp2=ADC_num*10/4096;
- LCD1602_WriteCmd( 0x80 + 13 );
- LCD1602_WriteDat( temp2 + 0x30 );
-
- if(( temp1 >= 50 )||( temp2 >= 7 ))
- {
- GPIO_ResetBits( GPIOA,GPIO_Pin_10 );
- }
- else
- {
- 所有資料51hei提供下載:
- GPIO_SetBits( GPIOA,GPIO_Pin_10 );
- }
- }
- }
復制代碼
Keil代碼與Proteus仿真下載(注意版本號):
Keil5版本:
程序.7z
(185.48 KB, 下載次數: 428)
2021-3-19 23:31 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
Proteus8.8版本:
proteus.rar
(118.47 KB, 下載次數: 393)
2021-3-19 22:18 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|