|
歡迎交流學(xué)習(xí)
電路原理圖如下:
電路圖.png (92.16 KB, 下載次數(shù): 44)
下載附件
2021-5-23 19:17 上傳
單片機(jī)源程序如下:
- #include "led.h"
- #include "delay.h"
- #include "key.h"
- #include "sys.h"
- #include "lcd.h"
- #include "usart.h"
- #include "adc.h"
- #include "pid.h"
- #include "pid2.h"
- #include "timer.h"
- #include "math.h"
- int main(void)
- {
- u16 adcLihgt = 0,len = 0;
- u16 adcHeat = 0, value = 0,value2 = 0;
- float Speed = 0,Speed2 = 0;
- PID_init();
- PID2_init();
- delay_init(); //延時(shí)函數(shù)初始化
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
-
-
- //設(shè)置中斷優(yōu)先級(jí)分組為組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí)
- //LED_Init(); //LED端口初始化
- Adc_Init(); //ADC初始化
- TIM1_PWM_Init(999,71); //不分頻。PWM頻率=72000000/9000=8Khz
- uart_init(115200); //串口初始化為115200
- TIM_SetCompare1(TIM1,150);
- TIM_SetCompare4(TIM1,250);
- while(1)
- {
-
- adcLihgt = Get_Adc_Average(ADC_Channel_6,10);
- adcHeat = Get_Adc_Average(ADC_Channel_5,10);
- Speed = PID_realize((float)adcLihgt);
- Speed2 = PID2_realize((float)adcHeat);
- TIM_SetCompare1(TIM1,(int)(Speed+0.5));//Speed
- TIM_SetCompare4(TIM1,(int)(Speed2+0.5));
- if(USART_RX_STA&0x8000)
- {
- len=USART_RX_STA&0x3fff;//得到此次接收到的數(shù)據(jù)長(zhǎng)度
- value = USART_RX_BUF[5];
- value = value<<8;
- value = value|USART_RX_BUF[4];
- if (value < 15532)
- aim = (float)(358.3*pow(value,0.32)+0.5);
- value2 = USART_RX_BUF[1];
- value2 = value2<<8;
- value2 = value2|USART_RX_BUF[0];
- if (value2 < 15532)
- aim2 = (float)(110*pow(value2,0.7)+0.5);
- USART_RX_STA=0;
- }
-
- printf("n2.val=%d\xff\xff\xff" ,(int)(pow(adcHeat/110,1.43)+2.5));//溫度
- printf("n3.val=%d\xff\xff\xff" ,(int)pow(adcLihgt/358.3,3.125));//光照度 pow(adcLihgt/358.3,3.125)
-
- }
- }
復(fù)制代碼
所有資料51hei提供下載:
電子系統(tǒng)制作.7z
(228.45 KB, 下載次數(shù): 88)
2021-5-23 23:08 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|