亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码
標(biāo)題:
STM32+UCOSII+DHT11+DS1302源碼
[打印本頁]
作者:
lemon_c
時間:
2018-5-8 13:51
標(biāo)題:
STM32+UCOSII+DHT11+DS1302源碼
μC/OS-II由Micrium公司提供,是一個可移植、可固化的、可裁剪的、占先式多任務(wù)實時內(nèi)核,它適用于多種微處理器,微控制器和數(shù)字處理芯片。
0.jpg
(32.51 KB, 下載次數(shù): 22)
下載附件
2018-5-8 17:33 上傳
單片機(jī)源程序如下:
#include "includes.h"
#include "stdio.h"
#include "led.h"
#include "pwm.h"
#include "adc.h"
#include "ds1302.h"
#include "lcd.h"
#include "lunar.h"
#include "dht11.h"
#include "delay.h"
/////////////////////////UCOSII任務(wù)堆棧設(shè)置///////////////////////////////////
//START 任務(wù)
//設(shè)置任務(wù)優(yōu)先級
#define START_TASK_PRIO 15 //開始任務(wù)的優(yōu)先級設(shè)置為最低
//設(shè)置任務(wù)堆棧大小
#define START_STK_SIZE 64
//創(chuàng)建任務(wù)堆棧空間
OS_STK START_TASK_STK[START_STK_SIZE];
//任務(wù)函數(shù)接口
void start_task(void *pdata);
#define LED_TASK_PRIO 10
OS_STK LED_TASK_STK[64];
void led_task(void * pdata);
OS_STK ALARM_TASK_STK[64];
void alarm_task(void * pdata);
OS_STK TIME_TASK_STK[64];
void time_task(void * pdata);
OS_STK TEMP_TASK_STK[64];
void temp_task(void * pdata);
OS_STK ADC_TASK_STK[64];
void adc_task(void * pdata);
OS_EVENT *sem_led;
OS_EVENT *sem_key;
u16 light,sign;
u8 temp=0,humi=0;
int main(void)
{
delay_init();
led_init();
adc_init();
pwm_init();
LCD_Init();
dht11_init();
ds1302_init();
OSInit();
OSTaskCreate(start_task,(void *)0,(OS_STK *)&START_TASK_STK[START_STK_SIZE-1],START_TASK_PRIO );//創(chuàng)建起始任務(wù)
OSStart();
}
//開始任務(wù)
void start_task(void *pdata)
{
OS_CPU_SR cpu_sr=0;
pdata = pdata;
// sem_led=OSSemCreate(0);
// sem_key=OSMboxCreate(0);
OSStatInit(); //初始化統(tǒng)計任務(wù).這里會延時1秒鐘左右
OS_ENTER_CRITICAL(); //進(jìn)入臨界區(qū)(無法被中斷打斷)
OSTaskCreate(time_task,(void *)0,(OS_STK*)&TIME_TASK_STK[63],5);
OSTaskCreate(adc_task,(void *)0,(OS_STK*)&ADC_TASK_STK[63],6);
OSTaskCreate(temp_task,(void *)0,(OS_STK*)&TEMP_TASK_STK[63],7);
OSTaskCreate(alarm_task,(void *)0,(OS_STK*)&ALARM_TASK_STK[63],9);
OSTaskCreate(led_task,(void *)0,(OS_STK*)&LED_TASK_STK[63],LED_TASK_PRIO);
OSTaskSuspend(START_TASK_PRIO); //掛起起始任務(wù).
OSTaskSuspend(LED_TASK_PRIO);
OS_EXIT_CRITICAL(); //退出臨界區(qū)(可以被中斷打斷)
}
//LED2任務(wù)
void time_task(void *pdata)
{
pdata=pdata;
while(1)
{
POINT_COLOR=BLACK;
display();
display_lunar();
delay_ms(100);
};
}
void adc_task(void *pdata)
{
while(1)
{
POINT_COLOR=BLACK;
LCD_ShowChinese(20,172,0,24,0);
LCD_ShowChinese(44,172,1,24,0);
light=Get_AD_Light(ADC_Channel_6,10);
LCD_ShowNum(68,172,light,3,24);
delay_ms(100);
}
}
void temp_task(void * pdata )
{
while(1)
{
POINT_COLOR=BLACK;
dht11_read_data(&temp,&humi);
LCD_ShowChinese(20,196,23,24,0);
LCD_ShowChinese(44,196,25,24,0);
LCD_ShowNum(68,196,temp,2,24);
LCD_ShowChar(96,196,'C',24,0);
LCD_ShowChinese(120,196,24,24,0);
LCD_ShowChinese(144,196,25,24,0);
LCD_ShowNum(172,196,humi,2,24);
delay_ms(100);
}
}
void alarm_task(void * pdata)
{
while(1)
{
if(((time_buf[3]<=7)&&(time_buf[3]>=0))||((time_buf[3]<24)&&(time_buf[3]>=20)))
{
sign = 1;
}
else
sign = 0;
if((sign==1)||(Sensor==1))
{
TIM_SetCompare2(TIM3, (100-light)*20);
if(Sensor==1)
{
LCD_Fill(20,220,20,172,BACK_COLOR);
// POINT_COLOR=RED;
LCD_ShowChinese(20,220,5,24,0);
LCD_ShowChinese(44,220,6,24,0);
}
}
else if((Sensor==0)||(sign==0))
{
TIM_SetCompare2(TIM3, 0);
if(Sensor==0)
{
LCD_Fill(20,220,20,172,BACK_COLOR);
// POINT_COLOR=GREEN;
LCD_ShowChinese(20,220,4,24,0);
LCD_ShowChinese(44,220,6,24,0);
}
}
if((time_buf[2]==0)&&(time_buf[1]==0))
OSTaskResume(LED_TASK_PRIO);
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
ucosii源碼.rar
(567.22 KB, 下載次數(shù): 109)
2018-5-8 17:34 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.denmoz.com/bbs/)
Powered by Discuz! X3.1