完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
功能描述
1.编程功能简单来说就是一天内的每一个小时可以单独设置温度和加热的模式. 2.加热模式分为全功率模式,半功率模式,防霜冻模式,关闭加热模式. 每一个时间点的模式通过下图的格子显示出来. 功能实现
1.先新建一个数组 PROG_DATA unsigned char PROG_DATA[25]; //PROG数据 前2位存模式 后6位存温度 1 2.新建一个支持0-24小时温度设置的子程序 void SET_PROG_TEMP_ONE_DATA(unsigned char TIME,unsigned char TEMPERATURE) //TIME为小时 TEMPERATURE为温度 { unsigned char TEMP_DATA; TEMP_DATA=(PROG_DATA[TIME]&0b11000000); PROG_DATA[TIME]=TEMP_DATA|TEMPERATURE; } 3.新建一个支持设置0-24小时模式的子程序 /***************************** 函数名称:SET_PROG_ONE_DATA() 函数功能:一个时的温度时间处理 值传递:无 返回值:无 MODE 0=空 1=防霜冻 2=半功率 3=全功率 0-50 ***************************/ void SET_PROG_MODE_ONE_DATA(unsigned char TIME,unsigned char MODE) { unsigned char TEMP_DATA; TEMP_DATA=PROG_DATA[TIME]&0b00111111; //分离出来 PROG_DATA[TIME]=(MODE<<6)|TEMP_DATA; //结合 /*//显示函数 switch ((PROG_DATA[TIME]>>6)&0xff) { case 0: UPPER_BAR_ON_OR_OFF(TIME,0); DOWNER_BAR_ON_OR_OFF(TIME,0) ; break; case 1: UPPER_BAR_ON_OR_OFF(TIME,0); DOWNER_BAR_ON_OR_OFF(TIME,1) ; break; case 2: UPPER_BAR_ON_OR_OFF(TIME,1); DOWNER_BAR_ON_OR_OFF(TIME,0) ; break; case 3: UPPER_BAR_ON_OR_OFF(TIME,1); DOWNER_BAR_ON_OR_OFF(TIME,1) ; break; default: break; } */ } 4.新建读取加热模式和读取温度函数 ///输入时间返回温度 unsigned char GET_PROG_ONE_TEMPERATURE(unsigned char TIME) { if((PROG_DATA[TIME]&0b00111111)==0) { return 28; } else { return (PROG_DATA[TIME]&0b00111111); } } ///输入时间返回加热模式 unsigned char GET_PROG_ONE_MODE(unsigned char TIME) { return (PROG_DATA[TIME]&0b11000000)>>6; } 5.显示函数 void POST_DAT_TO_LCD() { unsigned char ttt; for (ttt=0; ttt<=24; ttt++) { switch ((PROG_DATA[ttt]>>6)&0xff) { case 0: UPPER_BAR_ON_OR_OFF(ttt,0); DOWNER_BAR_ON_OR_OFF(ttt,0) ; break; case 1: UPPER_BAR_ON_OR_OFF(ttt,0); DOWNER_BAR_ON_OR_OFF(ttt,1) ; break; case 2: UPPER_BAR_ON_OR_OFF(ttt,1); DOWNER_BAR_ON_OR_OFF(ttt,0) ; break; case 3: UPPER_BAR_ON_OR_OFF(ttt,1); DOWNER_BAR_ON_OR_OFF(ttt,1) ; break; default: break; } } } |
|||
|
|||
|
|
|
|
只有小组成员才能发言,加入小组>>
3310 浏览 9 评论
2991 浏览 16 评论
3492 浏览 1 评论
9055 浏览 16 评论
4086 浏览 18 评论
1175浏览 3评论
603浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
596浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2333浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1894浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 01:42 , Processed in 1.050428 second(s), Total 83, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号