草庐IT

蓝桥杯单片机学习必备资源

老穆雷 2023-07-10 原文

目录

一、你不知道蓝桥杯单片机底层驱动改了??

二、小蜜蜂教程——自撸代码

三、个人心得

1.NE555

2.DS1302 

3.DS18B20

4.AT24C02

5.PCF8951

6.串口指令读取 


一、你不知道蓝桥杯单片机底层驱动改了??

  • 底层驱动代码(主要改动):3-底层驱动代码参考.zip - 蓝奏云
  •  完整数数据包:https://pan.baidu.com/s/19Uu1z1kLv68arud6SwslcA?pwd=1234 提取码:1234
  • 官方技术文档:蓝桥杯大赛
  • 声明:谁都不知到比赛时的数据包是怎么样的!!有备无患

二、小蜜蜂教程——自撸代码

小蜜蜂教程每个模块自撸程序.zip - 蓝奏云

DS18B20、NE555、DS1302、PCF8951、串口函数(包含打印)全都有!!!

当你温度显示不出来、电压读不出、串口通信没有数据。。。。

从主要程序、底层驱动程序还有.hex找到BUG。

三、个人心得

1.NE555

3个5K电阻

P34和NAL用跳帽相接;

定时器T0计数,定时器T1定时

 

2.DS1302 

由日历时钟寄存器、31字节静态RAM组成

TASLL公司  

DS1302手册第9页

3.DS18B20

高五位   符号位  00000温度为正

中间数据位

低四位   小数位

数据手册

DS18B20手册第18页

初始化

0xcc

0x44

900ms 延时

初始化

0xcc

0xbe

底层驱动

 T*12

还要加延时

带小数 temp>>=4;  temp=(temp*10)| (LSB &0x0xf)

不带小数 temp *=0.0625;

负温度 :   temp 取反加一

4.AT24C02

读取流程图

ATC2402手册第11页

第12页的

5.PCF8951

读取流程图

PCF8951手册第6页

和第14页 

//DA转换只是比AD转换多加这一段代码
void Set_PCF8591_DAC(uchar digtal) //DAC输出 float 102.4 可能更准确
{
	IIC_Start();					
	IIC_SendByte(0x90);		//PCF8591的写设备地址 
	IIC_WaitAck();	
	IIC_SendByte(0x43); 	//输出DAC,转换AIN3	
	IIC_WaitAck(); 								
	IIC_SendByte(digtal); 		//设置DAC电压输出参数
	IIC_WaitAck(); 			//产生非应答信号 								
	IIC_Stop();	
	

6.串口指令读取 

串口中断只有定时器1 和定时器2 

控制低4位LED

 led=(led | 0x0f) & (~command | 0xf0)

 控制高四位LED

 led=(led | 0xf0) & (~command<<4 | 0x0f)

//串口重定向

#include <stdio.h>
void SendByte(unsigned char dat)
{
	SBUF=dat;
	while(TI==0);
	TI=0;
}

void Sendstring( unsigned char *str)
{
	while(*str !='\0')
	{
		SendByte(*str++);
	}
}
char putchar(char c)
{
	SendByte(c);
	return c;
}

printf("c=%.2f",c); //打印值保留后两位小数
sscanf(S,"%x",&x); //将s按照16进制格式转换为整型,并赋值给X
printf( "%d\n",x); / /输出x的十进制

//怎么判断下位机发出的字符串

unsigned char StuBUf[6];
unsigned char rexover=0;

unsigned char* ReadUart(void)//串口接收到的一串数据数组表示
{
	return StuBUf;
}

void ServiceUart() interrupt 4 //接受到数据,启动定时
{
	if(RI==1)
	{
		TR0=1;
		TL0 = 0x00;		//复位定时初值
	    TH0 = 0x00;		
		RI=0;
		StuBUf[R_I++]=SBUF;
		rexover=1;
	}
}
void coomand_mange()
{
	 
	if(rexover==1)
	{
		rexover=0;  //用数组判断收到的字符串
	if((StuBUf[0]=='r')&&(StuBUf[1]=='e')&&(StuBUf[2]=='t')&&(StuBUf[3]=='u')&& 
     (StuBUf[4]=='r')&&(StuBUf[5]=='n'))
	{
		
		Sendstring("goodbyeoword");
	}
}
}

有关蓝桥杯单片机学习必备资源的更多相关文章

  1. ruby - 安装 Ruby 时遇到问题(无法下载资源 "readline--patch") - 2

    当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub

  2. ruby-on-rails - Rails 3,嵌套资源,没有路由匹配 [PUT] - 2

    我真的为这个而疯狂。我一直在搜索答案并尝试我找到的所有内容,包括相关问题和stackoverflow上的答案,但仍然无法正常工作。我正在使用嵌套资源,但无法使表单正常工作。我总是遇到错误,例如没有路线匹配[PUT]"/galleries/1/photos"表格在这里:/galleries/1/photos/1/edit路线.rbresources:galleriesdoresources:photosendresources:galleriesresources:photos照片Controller.rbdefnew@gallery=Gallery.find(params[:galle

  3. C51单片机——实现用独立按键控制LED亮灭(调用函数篇) - 2

    说在前面这部分我本来是合为一篇来写的,因为目的是一样的,都是通过独立按键来控制LED闪灭本质上是起到开关的作用,即调用函数和中断函数。但是写一篇太累了,我还是决定分为两篇写,这篇是调用函数篇。在本篇中你主要看到这些东西!!!1.调用函数的方法(主要讲语法和格式)2.独立按键如何控制LED亮灭3.程序中的一些细节(软件消抖等)1.调用函数的方法思路还是比较清晰地,就是通过按下按键来控制LED闪灭,即每按下一次,LED取反一次。重要的是,把按键与LED联系在一起。我打算用K1来作为开关,看了一下开发板原理图,K1连接的是单片机的P31口,当按下K1时,P31是与GND相连的,也就是说,当我按下去时

  4. LC滤波器设计学习笔记(一)滤波电路入门 - 2

    目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称

  5. CAN协议的学习与理解 - 2

    最近在学习CAN,记录一下,也供大家参考交流。推荐几个我觉得很好的CAN学习,本文也是在看了他们的好文之后做的笔记首先是瑞萨的CAN入门,真的通透;秀!靠这篇我竟然2天理解了CAN协议!实战STM32F4CAN!原文链接:https://blog.csdn.net/XiaoXiaoPengBo/article/details/116206252CAN详解(小白教程)原文链接:https://blog.csdn.net/xwwwj/article/details/105372234一篇易懂的CAN通讯协议指南1一篇易懂的CAN通讯协议指南1-知乎(zhihu.com)视频推荐CAN总线个人知识总

  6. 深度学习部署:Windows安装pycocotools报错解决方法 - 2

    深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal

  7. ruby - 我正在学习编程并选择了 Ruby。我应该升级到 Ruby 1.9 吗? - 2

    我完全不是程序员,正在学习使用Ruby和Rails框架进行编程。我目前正在使用Ruby1.8.7和Rails3.0.3,但我想知道我是否应该升级到Ruby1.9,因为我真的没有任何升级的“遗留”成本。缺点是什么?我是否会遇到与普通gem的兼容性问题,或者甚至其他我不太了解甚至无法预料的问题? 最佳答案 你应该升级。不要坚持从1.8.7开始。如果您发现不支持1.9.2的gem,请避免使用它们(因为它们很可能不被维护)。如果您对gem是否兼容1.9.2有任何疑问,您可以在以下位置查看:http://www.railsplugins.or

  8. ruby - Chef LW 资源属性默认值如何引用另一个属性? - 2

    我正在尝试将一个资源属性的默认值设置为另一个属性的值。我正在为我正在构建的tomcat说明书定义一个资源,其中包含以下定义。我想要可以独立设置的“名称”和“服务名称”属性。当未设置服务名称时,我希望它默认为为“名称”提供的任何内容。以下不符合我的预期:attribute:name,:kind_of=>String,:required=>true,:name_attribute=>trueattribute:service_name,:kind_of=>String,:default=>:name注意第二行末尾的“:default=>:name”。当我在Recipe的新block中引用我

  9. ruby - 我如何学习 ruby​​ 的正则表达式? - 2

    如何学习ruby​​的正则表达式?(对于假人) 最佳答案 http://www.rubular.com/在Ruby中使用正则表达式时是一个很棒的工具,因为它可以立即将结果可视化。 关于ruby-我如何学习ruby​​的正则表达式?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1881231/

  10. 深度学习12. CNN经典网络 VGG16 - 2

    深度学习12.CNN经典网络VGG16一、简介1.VGG来源2.VGG分类3.不同模型的参数数量4.3x3卷积核的好处5.关于学习率调度6.批归一化二、VGG16层分析1.层划分2.参数展开过程图解3.参数传递示例4.VGG16各层参数数量三、代码分析1.VGG16模型定义2.训练3.测试一、简介1.VGG来源VGG(VisualGeometryGroup)是一个视觉几何组在2014年提出的深度卷积神经网络架构。VGG在2014年ImageNet图像分类竞赛亚军,定位竞赛冠军;VGG网络采用连续的小卷积核(3x3)和池化层构建深度神经网络,网络深度可以达到16层或19层,其中VGG16和VGG

随机推荐