|
共享 希望各位回復(fù)一下多多支持
Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)
0.png (51.36 KB, 下載次數(shù): 83)
下載附件
2019-7-3 16:36 上傳
單片機(jī)源程序如下:
- /*大膽呼吸*/
- #include "led.h"
- #include "delay.h"
- #include "sys.h"
- #include "usart.h"
- #include "lcd.h"
- #include "adc.h"
- #include "dht11.h"
- #include "pwm.h"
- #include "ms1100.h"
- // ADC1轉(zhuǎn)換的電壓值通過MDA方式傳到SRAM
- extern __IO uint16_t ADC_ConvertedValue;
- // 局部變量,用于保存轉(zhuǎn)換計(jì)算后的電壓值
- extern float TVOC3,CH2O1,vola;
- float temp;//pwm風(fēng)扇等級
- int level;
- void Display(void);
-
- int main(void)
- {
- u8 x=0;
- u8 lcd_id[12]; //存放LCD ID字符串
- u16 adcx;
- u8 temperature;
- u8 humidity;
- TIM1_PWM_Init(800,0);//不分頻。PWM頻率=72000/(899+1)=80Khz
- Adc_Init(); //ADC初始化
- delay_init(); //延時(shí)函數(shù)初始化
- uart_init(9600); //串口初始化為9600
- //LED_Init(); //初始化與LED連接的硬件接口
- LCD_Init();
- /* pwm控速 */
- /* if(TVOC3>=0.000 && TVOC3<=0.618)
- {
- TIM_SetCompare1(TIM1,630); //驅(qū)動(dòng)輸出電壓
- }
- else if (TVOC3>0.618 && TVOC3<=1.273)
- {
- TIM_SetCompare1(TIM1,650); //驅(qū)動(dòng)輸出電壓
- }
-
- else if (TVOC3>1.273 && TVOC3<=1.819)
- {
- TIM_SetCompare1(TIM1,899); //驅(qū)動(dòng)輸出電壓
- }
- */
- // TIM_SetCompare1(TIM1,670); //驅(qū)動(dòng)輸出電壓
- //sprintf((char*)lcd_id,"%04X",0x8890);//lcddev.id);//將LCD ID打印到lcd_id數(shù)組。
- while(DHT11_Init()) //DHT11初始化
- {
- LCD_ShowString(30,130,200,16,16,"Ready!!!");
- delay_ms(200);
- LCD_Fill(30,130,239,130+16,WHITE);
- delay_ms(200);
- }
-
- while(1)
- {
- sprintf((char*)lcd_id,"%f",temp);//TVOC());
- switch(x)
- {
- case 0:LCD_Clear(WHITE);break;
- }
- DHT11_Read_Data(&temperature,&humidity);//讀取溫濕度值
- LCD_ShowNum(160,100,temperature,2,16); //顯示溫度
- LCD_ShowNum(140,70,humidity,2,16); //顯示濕度
- Display();
- adcx=Get_Adc_Average(ADC_Channel_14,10); //采集端口ADC
- temp=(float)adcx*(3.3/4096);
- adcx=temp;
- TVOC(temp);//電壓值轉(zhuǎn)甲醛值,TVOC3
- CH2O(temp);//電壓值轉(zhuǎn)CH20, CH2O1
-
-
- LCD_ShowxNum(100,130,TVOC3,1,16,0);
- TVOC3-=(u16)TVOC3;
- TVOC3*=1000;
- LCD_ShowxNum(116,130,TVOC3,3,16,0X80);
- LCD_ShowxNum(100,160,CH2O1,1,16,0);
- CH2O1-=(u16)CH2O1;
- CH2O1*=1000;
- LCD_ShowxNum(116,160,CH2O1,3,16,0X80);
- /* pwm控速 */
- if(TVOC3<0.234)
- {
- TIM_SetCompare1(TIM1,0); //驅(qū)動(dòng)輸出電壓
- }
-
- else if(TVOC3>=0.234 && TVOC3<=0.618)
- {
- TIM_SetCompare1(TIM1,500); //驅(qū)動(dòng)輸出電壓
- }
- else if(TVOC3>0.618 && TVOC3<=1.273)
- {
- TIM_SetCompare1(TIM1,700); //驅(qū)動(dòng)輸出電壓
- }
-
- else if(TVOC3>1.273 )// && TVOC3<=1.819)
- {
- TIM_SetCompare1(TIM1,800); //驅(qū)動(dòng)輸出電壓
- }
-
- x++;
- if(x==12) x=0;
- LED0=!LED0;
- delay_ms(1000);
- }
- }
- void Display(void)
- {
- POINT_COLOR=RED;
- LCD_ShowString(60,20,200,24,24,"Healthy Breathing");
- LCD_ShowString(60,70,200,16,16,"HUMIDITY:");
- LCD_ShowString(160,70,200,16,16,"%");
- LCD_ShowString(175,100,200,16,16," oC");
- LCD_ShowString(60,100,200,16,16,"TEMPERATURE:");
- LCD_ShowString(60,130,200,16,16,"TVOC:0.000 ppm");
- LCD_ShowString(60,160,200,16,16,"CH2O:0.000 ppm");
- // LCD_ShowString(60,198,200,24,24,"DEGREE :");
- }
復(fù)制代碼
所有資料51hei提供下載:
最新pcb.zip
(961.51 KB, 下載次數(shù): 212)
2019-7-3 12:42 上傳
點(diǎn)擊文件名下載附件
PCB 下載積分: 黑幣 -5
最終程序522晚.7z
(572.93 KB, 下載次數(shù): 210)
2019-7-3 12:42 上傳
點(diǎn)擊文件名下載附件
程序 下載積分: 黑幣 -5
|
評分
-
查看全部評分
|