既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新
-
功能 : 小延时。
-
输入 : 无
-
输出 : 无
***********************************************************************/
void delay_uint(uint q)
{
while(q–);
}
/********************************************************************
-
名称 : write_com(uchar com)
-
功能 : 1602命令函数
-
输入 : 输入的命令值
-
输出 : 无
***********************************************************************/
void write_com(uchar com)
{
e=0;
rs=0;
rw=0;
P0=com;
delay_uint(3);
e=1;
delay_uint(25);
e=0;
}
/********************************************************************
-
名称 : write_data(uchar dat)
-
功能 : 1602写数据函数
-
输入 : 需要写入1602的数据
-
输出 : 无
***********************************************************************/
void write_data(uchar dat)
{
e=0;
rs=1;
rw=0;
P0=dat;
delay_uint(3);
e=1;
delay_uint(25);
e=0;
}
/********************************************************************
-
名称 : write_sfm2(uchar hang,uchar add,uchar date)
-
功能 : 显示2位十进制数,如果要让第一行,第五个字符开始显示"23" ,调用该函数如下
write_sfm1(1,5,23)
-
输入 : 行,列,需要输入1602的数据
-
输出 : 无
***********************************************************************/
void write_sfm2(uchar hang,uchar add,uint date)
{
if(hang==1)
write_com(0x80+add);
else
write_com(0x80+0x40+add);
write_data(0x30+date/10%10);
write_data(0x30+date%10);
}
/********************************************************************
-
名称 : write_string(uchar hang,uchar add,uchar *p)
-
功能 : 改变液晶中某位的值,如果要让第一行,第五个字符开始显示"ab cd ef" ,调用该函数如下
write_string(1,5,“ab cd ef;”)
-
输入 : 行,列,需要输入1602的数据
-
输出 : 无
***********************************************************************/
void write_string(uchar hang,uchar add,uchar *p)
{
if(hang==1)
write_com(0x80+add);
else
write_com(0x80+0x40+add);
while(1)
{
if(*p == ‘\0’) break;
write_data(*p);
p++;
}
}
/********************************************************************
-
名称 : init_1602()
-
功能 : 初始化1602液晶
-
输入 : 无
-
输出 : 无
***********************************************************************/
void init_1602()
{
write_com(0x38);
write_com(0x38);
write_com(0x0c);
write_com(0x06);
delay_uint(1000);
write_string(1,0," shidu:00% ");
write_string(2,0," SH:00% SL:00% ");
write_sfm2(2,4,s_high); //显示湿度上限
write_sfm2(2,12,s_low); //显示湿度下限
}
/1ms延时函数******/
void delay_1ms(uint q)
{
uint i,j;
for(i=0;i<q;i++)
for(j=0;j<120;j++);
}
/读数模转换数据*********************************************/
//请先了解ADC0832模数转换的串行协议,再来读本函数,主要是对应时序图来理解,本函数是模拟0832的串行协议进行的
// 1 0 0 通道
// 1 1 1 通道
unsigned char ad0832read(bit SGL,bit ODD)
{
unsigned char i=0,value=0,value1=0;
SCL=0;
DO=1;
CS=0; //开始
SCL=1; //第一个上升沿
SCL=0;
DO=SGL;
SCL=1; //第二个上升沿
SCL=0;
DO=ODD;
SCL=1; //第三个上升沿
SCL=0; //第三个下降沿
DO=1;
for(i=0;i<8;i++)
{
SCL=0;
SCL=1; //开始从第四个下降沿接收数据
value<<=1;
if(DO)
value++;
}
for(i=0;i<8;i++)
{ //接收校验数据
value1>>=1;
if(DO)
value1+=0x80;
SCL=1;
SCL=0;
}
SCL=1;
if(value==value1) //与校验数据比较,正确就返回数据,否则返回0
return value;
return 0;
}
/定时器0初始化程序**/
void time_init()
{
EA = 1; //开总中断
TMOD = 0X01; //定时器0、定时器1工作方式1
ET0 = 1; //开定时器0中断
TR0 = 1; //允许定时器0定时
}
/***独立按键程序/
uchar key_can; //按键值
void key() //独立按键程序
{
static uchar key_new;
key_can = 20; //按键值还原
P3 |= 0xf0;
if((P3 & 0xf0) != 0xf0) //按键按下
{
delay_1ms(1); //按键消抖动
if(((P3 & 0xf0) != 0xf0) && (key_new == 1))
{ //确认是按键按下
key_new = 0;
switch(P3 & 0xf0)
{
case 0xd0: key_can = 3; break; //得到k2键值
case 0xb0: key_can = 2; break; //得到k3键值
case 0x70: key_can = 1; break; //得到k4键值
}
}
}
else
key_new = 1;
}
/*按键处理显示函数/
void key_with()
{
if(key_can == 1) //设置键
{
menu_1 ++;
if(menu_1 >= 3)
{
menu_1 = 0;
init_1602() ; //初始化显示
}
}
if(menu_1 == 1) //设置湿度上限
{
if(key_can == 2)
{
s_high ++ ; //湿度上限值加1
if(s_high > 99)
s_high = 99;
}
if(key_can == 3)
{
s_high – ; //湿度上限值减1
if(s_high <= s_low)
s_high = s_low + 1 ;
}
write_sfm2(2,4,s_high); //显示湿度上限
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新
f(key_can == 3)
{
s_high – ; //湿度上限值减1
if(s_high <= s_low)
s_high = s_low + 1 ;
}
write_sfm2(2,4,s_high); //显示湿度上限
[外链图片转存中…(img-vyZgtRfw-1715653967578)]
[外链图片转存中…(img-lyVwR1Tg-1715653967579)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新