?? main.c
字號:
#include <MAIN.H>
#include <RTX51TNY.H>
/*******************變量定義**********************/
uchar DispLED[4];//數碼管顯示緩沖區
uchar code DispDB[15]={//字形碼
0xA0,0xF9,0x92,0xD0,0xC9,0xC4,0x84,0xF1,//0,1,2,3,4,5,6,7
0x80,0xC0,0xDF,0xD9,0x87,0x81,0xAE};//8,9,-,-1,F,A,L
uchar code DispCon[4]={0xFB,0xF7,0xEF,0xDF};//段位控制碼
uchar code DayStr[]=__DATE__;
uchar code TimeStr[]=__TIME__;
uchar Temp[2];//原始溫度數據
uchar flag_LED;//數碼管顯示段位標志
uchar flag;
/****************外部函數聲明*************************/
extern void Temperature_change(void);
extern void init_1820(void);
extern void mDelay(uint num);
/********************常量定義*************************/
#define start 0
#define DS18B20 2
#define LED 3
#define Conter 1
/********************程序開始*************************/
void START(void) _task_ start
{
os_create_task(DS18B20);
os_create_task(LED);
os_create_task(Conter);
os_delete_task(start);
}
void DS1820(void) _task_ DS18B20
{
while(1)
{
Temperature_change();
init_1820();
os_send_signal(Conter);
os_wait(K_TMO,10,0);
}
}
void DISP(void) _task_ LED
{
while (1)
{
P3|=0x3C;//關閉顯示
P1=DispDB[DispLED[flag_LED]];
switch(flag_LED)
{
case 0:
if(DispLED[0]==0)//首位0消隱
{
P3&=0xFF;//關閉顯示
}
else
{
P3&=0xFB;
}
flag_LED+=1;
break;
case 1:
if((DispLED[0]==0) && (DispLED[1]==0))//次位0消隱
{
P3&=0xFF;//關閉顯示
}
else
{
P3&=0xF7;
}
flag_LED+=1;
break;
case 2:
P3&=0xEF;
flag_LED+=1;
break;
case 3:
P3&=0xDF;
flag_LED=0;
break;
}
mDelay(2);
}
}
void stop(void) _task_ Conter
{
static uchar stop_num;//停止計數器
while(1)
{
stop_num++;
if(stop_num>=12)
{
P3=0XFF;
PCON=STOP_;
}
os_wait(K_SIG,0,0);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -