蓝桥杯单片机组省赛十二届第一场(关于矩阵,温度ds18b20,时间ds1302的学习,以及继电器等外设的综合利用)
创始人
2024-05-28 13:10:29
0

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 一、该题目如下
  • 二、使用步骤
    • 1.矩阵键盘实现
    • 2.温度传感器ds18b20的实现
    • 3.时间传感器ds1302的实现
  • 总结



提示:以下是本篇文章正文内容,下面案例可供参考

一、该题目如下

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
分析题目,具体框架是矩阵键盘伴随着数值的输出,当数值满足条件时,去加加,然后执行对应的函数即可完成题目。具体的一些模块代码如下供参考。

二、使用步骤

1.矩阵键盘实现

矩阵键盘必须要求J5中的端口插在BIN上,且当555分频器在用时矩阵键盘P3^4引脚被占用,本人就上一个实验做得频率检测导致这个bug卡了好几次
代码如下(示例):

void Scaner_key_value()
{R1=R2=R3=R4=1;L1=L2=L3=L4=0;if((P3&0x0f)!=0x0f){if(R1==0) key_value=7;else if(R2==0) key_value=6;else if(R3==0) key_value=5;else if(R4==0) key_value=4;R1=R2=R3=R4=0;L1=L2=L3=L4=1;if(L1==0) {key_value=key_value+0;while(L1==0);}else if(L2==0) {key_value=key_value+4;while(L2==0);}else if(L3==0) {key_value=key_value+8;while(L3==0);}else if(L4==0) {key_value=key_value+12;while(L4==0);}}if(key_value==12){cnt++;key_value=0;mnt=0;dis_t_c=0;if(cnt==3) cnt=0;}if(key_value==13){mnt++;key_value=0;if(mnt==2) mnt=0;}			
}

开始保证的左引脚置1,右引脚置0,然后检测行,然后再进行按键判断再给列数赋值。随后给予右引脚置1,左引脚置0,判断列,给予行对应的加数判断即可,此方法代码量少,但是逻辑有点复杂且防抖功能不好添加。
另外一种矩阵键盘如下,一个一个的检测代码如下:

 L1=0;L2=L3=L4=1;R1=R2=R3=R4=1;if(R1==0){while(R1==0){key=7;}}if(R2==0){while(R2==0){key=6;}}if(R3==0){while(R3==0){key=5;}}if(R4==0){while(R4==0){key=4;}}L2=0;L1=L3=L4=1;R1=R2=R3=R4=1;if(R1==0){while(R1==0){key=11;}}if(R2==0){while(R2==0){key=10;}}if(R3==0){while(R3==0){key=9;}}if(R4==0){while(R4==0){key=8;}}L3=0;L2=L1=L4=1;R1=R2=R3=R4=1;if(R1==0){while(R1==0){key=15;}}if(R2==0){while(R2==0){key=14;}}if(R3==0){while(R3==0){key=13;}}if(R4==0){while(R4==0){key=12;}}L4=0;L2=L3=L1=1;R1=R2=R3=R4=1;if(R1==0){while(R1==0){key=19;}}if(R2==0){while(R2==0){key=18;}}if(R3==0){while(R3==0){key=17;}}if(R4==0){while(R4==0){key=16;}}} 

2.温度传感器ds18b20的实现

一下这些牢记

/*温度传感器要点
1.注意temp赋值前要进行初始化为0x0000。
2.注意给温度传感器Ds18b20给予初始化时,一个0xcc跳过ROM(就是跳过存储设备),一个0x44转化数据
中间给予一个延时,最好把数码管刷新放进去,然后再次初始化Ds18b20继续一个0xcc跳过存储设备,0xbc代表
着读取ds18b20中的数据。
3.最关键的一步ds18b20中的头文件onewire.h必须要将延时扩大10倍。
4.ds18b20芯片得到的数据是两个字节,从地位字节开始再到高字节介绍,且数据和位的关系如下,按下表进行转换即可
*/

分析次表的到后四位是小数部分且为0.0625的整倍数,高四位代表的正负,所以想到得到对应的温度,必须将第四位合理的去除,数字合理的放大,保留一位小数放大十倍即可。

在这里插入图片描述
onewire.c中的代码将delay延长10倍
在这里插入图片描述

代码如下(示例):

void Dis_DS18B20()
{   unsigned char Hse=0,Lse=0;init_ds18b20();Write_DS18B20(0xcc);Write_DS18B20(0x44);Tm_delay(80);//这个延时必须加init_ds18b20();Write_DS18B20(0xcc);Write_DS18B20(0xbe);Lse=Read_DS18B20();Hse=Read_DS18B20();/* temp=0x0000;temp=Hse;temp=(temp<<8)|Lse;temp=temp>>4;temp=10*temp;temp=temp+(Lse&0x0f)*0.625;*/temp=0x0000;//一定要初始化不然报错temp=(Lse>>4)*10+Hse*160+(Lse&0x0f)*0.625;/*temp=Hse;temp=(temp<<8)|Lse;temp=temp>>4;temp=10*temp;temp=temp+(Lse&0x0f)*0.625;*/
}

拿到温度即可去在数码管上进行显示

3.时间传感器ds1302的实现

该芯片的意思是,首先将写地址写入,伴随着时间的数据保存其中即可,以下是代码和数据图。
在这里插入图片描述

void Init_ds1302()
{  Write_Ds1302_Byte(0x8e,0x00); //打开写保护位Write_Ds1302_Byte(0x80,0x40); //秒的初始化Write_Ds1302_Byte(0x82,0x59); //分的初始化Write_Ds1302_Byte(0x84,0x23); //时的初始化Write_Ds1302_Byte(0x8e,0x80); //打开读保护位}void Dis_Ds1302()
{buf[0]=Read_Ds1302_Byte(0x81);//读取秒的时间buf[1]=Read_Ds1302_Byte(0x83);//读取分的时间buf[2]=Read_Ds1302_Byte(0x85);//读取时的时间
}

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

相关内容

热门资讯

光伏胶膜之困:业绩遭遇“滑铁卢... 转自:中国经营报本报记者 张英英 吴可仲 北京报道在光伏行业遭遇“寒冬”之际,其核心辅材——胶膜市场...
OpenAI架构转型未能如愿 ... 转自:中国经营网本报记者 曲忠芳 北京报道OpenAI的组织结构转型计划在历时4个月后未能如愿。5月...
银行抬高门槛防风险 网络“炒金... 近期国际金价呈现剧烈震荡行情。伦敦现货黄金价格4月突破3500美元/盎司关口后,近日又回落至3400...
抱团取暖的日本AI半吊子们 本文来自微信公众号:日商日旅,作者:KYOKU,题图来自:AI生成本篇为《为什么日本出不来DeepS...
特朗普谈对富人增税:“可能不该... 财联社5月10日讯(编辑 夏军雄)当地时间周五(5月9日),美国总统特朗普在社交媒体平台Truth ...
城发环境股份有限公司关于召开2... 证券代码:000885 证券简称:城发环境 公告编号:2025-038城发环境股份有限公司关于召开...
大中华区营收连续下滑 万亿苹... 转自:中国经营网本报记者 李玉洋 上海报道被质疑掉队LLM(大语言模型)的苹果公司在美国政府当前掀起...
山西华翔集团股份有限公司关于“... ■山西华翔集团股份有限公司关于“华翔转债”可选择回售的第三次提示性公告本公司董事会及全体董事保证本公...
梦网云科技集团股份有限公司关于... 证券代码:002123 证券简称:梦网科技 公告编号:2025-042梦网云科技集团股份有限公司关...
创新新材料科技股份有限公司关于... 证券代码:600361 证券简称:创新新材 公告编号:2025-035创新新材料科技股份有限公司关...
四川六九一二通信技术股份有限公... 证券代码:301592 证券简称:六九一二 公告编号:2025-025四川六九一二通信技术股份有限...
国机重型装备集团股份有限公司关... 证券代码:601399 证券简称:国机重装 公告编号:临2025-024国机重型装备集团股份有限公...
方正证券股份有限公司关于董事兼... 证券代码:601901 证券简称:方正证券 公告编号:2025-018方正证券股份有限公司关于董事...
贵州赤天化股份有限公司关于向关... 证券代码:600227 证券简称:赤 天 化 公告编号:2025-035贵州赤天化股份有限公司关于...
美年大健康产业控股股份有限公司... 证券代码:002044 证券简称:美年健康 公告编号:2025-028美年大健康产业控股股份有限公...
北方稀土相关公司新增一项236... (转自:快查一企业中标了)快查APP显示,北方稀土相关公司内蒙古包钢钢联股份有限公司营销中心于202...
北方稀土相关公司新增一项214... (转自:快查一企业中标了)快查APP显示,北方稀土相关公司内蒙古包钢钢联股份有限公司营销中心于202...
美国驻基辅大使馆警告 未来几天...   美国驻基辅大使馆周五警告称,未来几天可能发生“重大”空袭。  美国驻基辅大使馆在其网站上称:“美...
中国中铁全资子公司新增一项13... (转自:快查一企业中标了)快查APP显示,中国中铁相关公司中铁二局于2025年5月10日发布一则招标...
湘潭电化科技股份有限公司关于向... 证券代码:002125 证券简称:湘潭电化 公告编号:2025-024湘潭电化科技股份有限公司关于...