建设银行网站个人银行上不去,简述几种网络营销的方法,使用cn域名做网站的多吗,腾讯企点怎么群发消息文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介
本项目使用Proteus8仿真Arduino单片机控制器#xff0c;使用PCF8574、LCD1602液晶、DS1302温度传感器、DS1302时钟、按键、蜂鸣器等。 主要功能#xff1a; 系统运行后#xff0c;LCD1602显示当前日期… 文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介
本项目使用Proteus8仿真Arduino单片机控制器使用PCF8574、LCD1602液晶、DS1302温度传感器、DS1302时钟、按键、蜂鸣器等。 主要功能 系统运行后LCD1602显示当前日期时间和温度值当按下K3键进入日期和时间设置模式 每按下K3键1次则切换不同位置通过K1和K2键调整数据按下K4键可保存并返回主界面。 当按下K4键进入闹钟设置模式可通过K4键切换不同位置通过K1和K2键调整数据按下 K3键可保存并返回主界面。当时间到达闹钟时间开启闹铃可按下K1键取消闹铃。 二、软件设计
/*
作者嗨小易QQ3443792007*///系统数据获取
void sys_data_get(void)
{while(1){//获取温度sys_ctrl.tempds18b20_read_temperture()*10;//获取时间ds1302_read_time();break;}
}//系统数据显示
void sys_data_show(void)
{u8 buf[5];while(1){//正常模式显示if(sys_ctrl.mode0){//未进入闹钟设置模式if(sys_ctrl.alarm_mode0){//日期时间显示lcd1602_show_nums(2,0,gDS1302_TIME[6],2,0x80);//年lcd1602_show_nums(5,0,gDS1302_TIME[4],2,0x80);//月lcd1602_show_nums(8,0,gDS1302_TIME[3],2,0x80);//日lcd1602_show_nums(15,0,gDS1302_TIME[5],1,0x80);//星期lcd1602_show_nums(0,1,gDS1302_TIME[2],2,0x80);//时lcd1602_show_nums(3,1,gDS1302_TIME[1],2,0x80);//分lcd1602_show_nums(6,1,gDS1302_TIME[0],2,0x80);//秒//温度显示if(sys_ctrl.temp9999){buf[0]sys_ctrl.temp/1000x30;buf[1]sys_ctrl.temp%100/100x30;buf[2].;buf[3]sys_ctrl.temp%100%100x30;buf[4]\0;lcd1602_show_string(11,1,buf);}}//闹钟设置显示else{//闹钟时间显示lcd1602_show_nums(6,0,sys_ctrl.alarm_time[0],2,0x80);//时lcd1602_show_nums(9,0,sys_ctrl.alarm_time[1],2,0x80);//分//闹钟开关状态显示if(sys_ctrl.alarm_onoff0)lcd1602_show_string(4,1,OFF);else lcd1602_show_string(4,1, ON);//对应位置闪烁switch(sys_ctrl.alarm_mode){case 1:lcd1602_show_string(6,0, );delay(50);lcd1602_show_nums(6,0,sys_ctrl.alarm_time[0],2,0x80);//时break;case 2:lcd1602_show_string(9,0, );delay(50);lcd1602_show_nums(9,0,sys_ctrl.alarm_time[1],2,0x80);//分break;case 3:lcd1602_show_string(4,1, );delay(50);//闹钟开关状态显示if(sys_ctrl.alarm_onoff0)lcd1602_show_string(4,1,OFF);else lcd1602_show_string(4,1, ON);break;}}}//设置模式显示else {//设置时间显示lcd1602_show_nums(2,0,sys_ctrl.set_time[6],2,0x80);//年lcd1602_show_nums(5,0,sys_ctrl.set_time[4],2,0x80);//月lcd1602_show_nums(8,0,sys_ctrl.set_time[3],2,0x80);//日lcd1602_show_nums(15,0,sys_ctrl.set_time[5],1,0x80);//星期lcd1602_show_nums(0,1,sys_ctrl.set_time[2],2,0x80);//时lcd1602_show_nums(3,1,sys_ctrl.set_time[1],2,0x80);//分lcd1602_show_nums(6,1,sys_ctrl.set_time[0],2,0x80);//秒//对应位置闪烁switch(sys_ctrl.mode){case 1:lcd1602_show_string(2,0, );delay(50);lcd1602_show_nums(2,0,sys_ctrl.set_time[6],2,0x80);//年break;case 2:lcd1602_show_string(5,0, );delay(50);lcd1602_show_nums(5,0,sys_ctrl.set_time[4],2,0x80);//月break;case 3:lcd1602_show_string(8,0, );delay(50);lcd1602_show_nums(8,0,sys_ctrl.set_time[3],2,0x80);//日break;case 4:lcd1602_show_string(15,0, );delay(50);lcd1602_show_nums(15,0,sys_ctrl.set_time[5],1,0x80);//星期break;case 5:lcd1602_show_string(0,1, );delay(50);lcd1602_show_nums(0,1,sys_ctrl.set_time[2],2,0x80);//时break;case 6:lcd1602_show_string(3,1, );delay(50);lcd1602_show_nums(3,1,sys_ctrl.set_time[1],2,0x80);//分break;case 7:lcd1602_show_string(6,1, );delay(50);lcd1602_show_nums(6,1,sys_ctrl.set_time[0],2,0x80);//秒break;}}break;}
}//系统数据设置
void sys_data_set(void)
{u8 key0;static u8 oneflag0;static u8 nzoneflag0;u8 i0;keykey_scan(0);if(key!0)beep_alarm(100,1000);//提示音//设置if(keyKEY3_PRESS){//未进入闹钟设置if(sys_ctrl.alarm_mode0){sys_ctrl.mode;if(sys_ctrl.mode7)sys_ctrl.mode1;if(oneflag0){oneflag1;//获取当前时间记录for(i0;i7;i)sys_ctrl.set_time[i]gDS1302_TIME[i];_sys_parm_set_show();//系统参数设置界面显示 }} //进入闹钟设置else{sys_ctrl.alarm_mode0;nzoneflag0;sys_open_show();//系统开机界面显示}}//加else if(keyKEY1_PRESS){//时间修改if(sys_ctrl.mode!0){switch(sys_ctrl.mode){case 1://年sys_ctrl.set_time[6];if(sys_ctrl.set_time[6]99)sys_ctrl.set_time[6]0;break;case 2://月sys_ctrl.set_time[4];if(sys_ctrl.set_time[4]12)sys_ctrl.set_time[4]1;break;case 3://日sys_ctrl.set_time[3];if(sys_ctrl.set_time[3]31)sys_ctrl.set_time[3]1;break;case 4://星期sys_ctrl.set_time[5];if(sys_ctrl.set_time[5]7)sys_ctrl.set_time[5]1;break;case 5://时sys_ctrl.set_time[2];if(sys_ctrl.set_time[2]23)sys_ctrl.set_time[2]0;break;case 6://分sys_ctrl.set_time[1];if(sys_ctrl.set_time[1]59)sys_ctrl.set_time[1]0;break;case 7://秒sys_ctrl.set_time[0];if(sys_ctrl.set_time[0]59)sys_ctrl.set_time[0]0;break;}}//闹钟设置if(sys_ctrl.alarm_mode!0){switch(sys_ctrl.alarm_mode){case 1:sys_ctrl.alarm_time[0];if(sys_ctrl.alarm_time[0]23)sys_ctrl.alarm_time[0]0;break;case 2:sys_ctrl.alarm_time[1];if(sys_ctrl.alarm_time[1]59)sys_ctrl.alarm_time[1]0;break;case 3:sys_ctrl.alarm_onoff!sys_ctrl.alarm_onoff;break;}}//已闹铃取消if(sys_ctrl.naoling1)sys_ctrl.naoling0;}//减else if(keyKEY2_PRESS){//时间修改if(sys_ctrl.mode!0){switch(sys_ctrl.mode){case 1://年sys_ctrl.set_time[6]--;if(sys_ctrl.set_time[6]0)sys_ctrl.set_time[6]99;break;case 2://月sys_ctrl.set_time[4]--;if(sys_ctrl.set_time[4]0)sys_ctrl.set_time[4]12;break;case 3://日sys_ctrl.set_time[3]--;if(sys_ctrl.set_time[3]0)sys_ctrl.set_time[3]31;break;case 4://星期sys_ctrl.set_time[5]--;if(sys_ctrl.set_time[5]0)sys_ctrl.set_time[5]7;break;case 5://时sys_ctrl.set_time[2]--;if(sys_ctrl.set_time[2]0)sys_ctrl.set_time[2]23;break;case 6://分sys_ctrl.set_time[1]--;if(sys_ctrl.set_time[1]0)sys_ctrl.set_time[1]59;break;case 7://秒sys_ctrl.set_time[0]--;if(sys_ctrl.set_time[0]0)sys_ctrl.set_time[0]59;break;}}//闹钟设置if(sys_ctrl.alarm_mode!0){switch(sys_ctrl.alarm_mode){case 1:sys_ctrl.alarm_time[0]--;if(sys_ctrl.alarm_time[0]0)sys_ctrl.alarm_time[0]23;break;case 2:sys_ctrl.alarm_time[1]--;if(sys_ctrl.alarm_time[1]0)sys_ctrl.alarm_time[1]59;break;case 3:sys_ctrl.alarm_onoff!sys_ctrl.alarm_onoff;break;}}}//确定else if(keyKEY4_PRESS){//时间修改if(sys_ctrl.mode!0){sys_ctrl.mode0;oneflag0;ds1302_set_time(sys_ctrl.set_time[6],sys_ctrl.set_time[4],sys_ctrl.set_time[3],sys_ctrl.set_time[2],sys_ctrl.set_time[1],sys_ctrl.set_time[0]);sys_open_show();//系统开机界面显示}//闹钟设置else{sys_ctrl.alarm_mode;if(sys_ctrl.alarm_mode3)sys_ctrl.alarm_mode1;if(nzoneflag0){nzoneflag1;_sys_alarm_set_show();//闹钟设置界面显示}}}
} 三、实验现象
B站演示视频https://space.bilibili.com/444388619 联系作者
视频地址https://space.bilibili.com/444388619/video 专注于51单片机、STM32、国产32、DSP、Proteus、arduino、ESP32、物联网软件开发PCB设计视频分享技术交流。