#include <reg52.h> //調用單片機頭文件
#define uchar unsigned char //無符號字符型 宏定義 變量范圍 0~255
#define uint unsigned int //無符號整型 宏定義 變量范圍 0~65535
#include <intrins.h>
sbit SCL=P1^4; //SCL 定義為 P1 口的第 3 位腳,連接 ADC0832SCL 腳
sbit DO=P1^5; //DO 定義為 P1 口的第 4 位腳,連接 ADC0832DO 腳
sbit CS=P1^3; //CS 定義為 P1 口的第 4 位腳,連接 ADC0832CS 腳
sbit beep = P3^3; //蜂鳴器 IO 口定義
uint temperature,s_temp ; //溫度的變量
uchar shidu; //濕度等級
uchar s_high = 70,s_low = 25;//濕度報警參數
sbit dianji = P1^6; //電機 IO 定義
bit flag_300ms ;
uchar key_can; //按鍵值的變量
uchar menu_1; //菜單設計的變量
sbit rs=P1^0; //1602 數據/命令選擇引腳 H:數據 L:命令
sbit rw=P1^1; //1602 讀寫引腳 H:數據寄存器 L:指令寄存器
sbit e =P1^2; //1602 使能引腳 下降沿觸發
uchar code table_num[]="0123456789abcdefg";
51hei圖片20200417000753.jpg (993.32 KB, 下載次數: 20)
下載附件
2020-4-17 00:09 上傳
void write_com(uchar com)
{
e=0;
rs=0;
rw=0;
P0=com;
delay_uint(3);
e=1;
delay_uint(25);
e=0;
}
void write_data(uchar dat)
{
e=0;
rs=1;
rw=0;
P0=dat;
delay_uint(3);
e=1;
delay_uint(25);
e=0;
}
void key_with()
{
if(key_can==1)
{
menu_1++;
if(menu_1>=3)
{
menu_1=0;
int_1602();
}
}
if(menu_1==1)
{
if(key_can==2)
{
s_high++;
if(s_high>99)
s_high=99;
}
}
if(key_can==3)
{
s_high--;
if(s_high<=s_iow)
s_high=s_low+1;
}
write_sfm2(2,4,s_high);
write_sfm2(2,12,s_low);
write_com(0x80+0x40+4);
write_com(0x0f);
}
if(menu_1==2)
{
if(key_can==2)
{
s_low++;
if(s_low>=s-high)
s_low==s_high-1;
}
if(key_can==3)
{
s_low--;
if(s_low<=1)
s_low=1;
}
write_sfm2(2,4,s_high);
write_sfm2(2,12,s_low);
write_com(0x80+0x40+4);
write_com(0x0f);
}
void clok_h_1()
{
static uchar value,value1;
if(shidu<=s_low)
{
value++;
if(value>=2)
{
value=10;
beep=-beep;
dianji=0;
}
}else
beep=1;
if(shidu>=s-high)
{
value1++;
if(value>=2)
{
value1=10;
beep=1;
dianji=1;
}
}else
value1=0;
}
void main()
{
int_1602();
time_int();
while(1)
{
key();
if (key_can<10)
{
key_with();
}
if(flag_300ms==1)
{
flag_300ms==0;
clock_h_1();
if(beep==1)
{
shidu=ad0823read(1,0);
shid=99-shidu*99/255;
}
if(menu_1==0)
{
write_sfm2(1,9,shidu);
}
}
delay_1ms(1);
}
}
|