
蓝桥杯单片机
文章平均质量分 79
蓝桥杯单片机有关
思索与猫
Nothing at all
展开
-
蓝桥杯相关代码目录
1.基础模块:LED灯:移位运算控制流水灯数码管:数码管显示继电器和蜂鸣器:关于继电器和蜂鸣器的干扰问题按键: 定时扫描独立按键三行代码实现独立按键程序定时扫描矩阵按键PWM:关于PWN调节小灯泡亮暗iic :eeprom与pcf859ds1302:DS1302时钟模块ds18b20:DS18B20读取温度(带小数)2.省赛代码:模拟灌溉系统简易温度采集与...原创 2019-03-20 20:40:05 · 2289 阅读 · 4 评论 -
超声波门禁系统
1.题目2.代码main.c******************************************************************************* 文件名:超声波门禁系统* 描 述:* 作 者:思索与猫* 日 期: 19/5/21* 备 注: * *****************************...原创 2019-05-21 18:28:44 · 868 阅读 · 0 评论 -
蓝桥杯国赛 多功能测量表
1.题目2.重点代码eeprom的写由于eeprom连续写有延迟问题,所以需要加大约5ms的间隔,这里我使用了4ms另外存放的数据过大的话,需要分开,例如频率要拆开分为高8位和低8位if(flag_keep == 1) { if(flag_4ms) { flag_4ms = 0; switch(index) ...原创 2019-05-18 20:31:11 · 677 阅读 · 0 评论 -
NE555测频
注意:测频前要把P34和NAL用短路帽短接因为P34口对应定时器0脉冲输入口,所以使用定时器0作为计数器,计数接收脉冲改变RB3改变频率原理图下方:测频部分代码:计数器部分void Timer0Init(){ TMOD = 0x04; //使用定时器0作为计数器 TL0 = 0; //设置初值都为0 TH0 = 0; TF0 = 0; TR0 ...原创 2019-03-28 13:45:12 · 1073 阅读 · 0 评论 -
DA转换
转换代码:注意:这里的temp还不是DA输出电压DA输出电压公式:volt = temp*5/255(volt为输出电压,temp为DA转换值)void SetDAC(unsigned char temp){ IIC_Start(); IIC_SendByte(0x90); IIC_WaitAck(); IIC_SendByte(0x40); IIC_WaitAck(...原创 2019-03-28 12:58:36 · 9438 阅读 · 0 评论 -
简单的串口程序
串口:关于对串口的问题:串口寄存器有什么功能?TI,RI是什么?SBUF又是啥?为什么使用定时器1作为串口?什么是波特率?波特率怎么算?请带着这些问题移步:蓝桥杯之单片机设计与开发(13)——UART串口通信 作者:小默haa功能:打开串口助手,发送数据成功后 L2 亮接收数据+1,L1瞬间闪一次(L2同时灭一次)波特率可以通过STC-ISP软件设置:注意:定时器...原创 2019-03-27 21:35:54 · 3462 阅读 · 2 评论 -
超声波测距
1准备超声波模块位于开发板数码管上方,使用之前要把J2跳线组设置按照sonic连接1-3,2-4。2原理如图所示,P10口时发射,P11口接收流程:TX发送8个40KHZ的超声波信号启动定时器检查RX == 0(超声波返回RX低电平)和TF1 == 1若RX == 0:停止定时器,计算距离distance = time*0.017若TF1 == 1:溢出,清除TF1代...原创 2019-03-27 20:27:20 · 1580 阅读 · 0 评论 -
第十届蓝桥杯测频率测电压
题目:总结:考前没用过NE555测频,所以这部分直接凉凉。死亡flag: 这次考完以后再去学超声波,串口,测频。以后还是准备万全比较好。另外感谢小默haa的代码:第十届蓝桥杯省赛再现(编程部分)没有这个我可能还是对NE555一头雾水,测频部分对我来说讲的十分清晰,真的十分感谢。代码:main.c#include<stc15f2k60s2.h>#include...原创 2019-03-26 18:12:51 · 2961 阅读 · 3 评论 -
官方底层代码测试及应用
1官方底层代码下载:链接: https://pan.baidu.com/s/1kSOkbASbROeS-9HF5iwolg 提取码: etpx2测试使用:功能:按下S7,L1亮,显示时钟界面按下S6,L2亮,显示温度界面按下S5,L3亮,左边开机次数,右边AD值初始界面为时钟界面main.c*******************************************...原创 2019-03-21 14:32:59 · 1023 阅读 · 0 评论 -
模拟风扇控制系统
1题目只是一次小练习注意:PWM(100HZ)我用在Led灯上了,没有P34输出2代码main.c******************************************************************************* 文件名:模拟风扇控制系统* 描 述:* 作 者:思索与猫* 日 期: 19/3/19* 备 注: * ...原创 2019-03-19 21:14:27 · 5000 阅读 · 3 评论 -
模拟智能传送装置(未完成)
1题目:只是一次练习## 注意:继电器,蜂鸣器干扰问题可以利用标志位解决关于继电器和蜂鸣器的干扰问题https://blog.youkuaiyun.com/qq_28997735/article/details/88344555## 注意:代码未完成超重记录单元Q:啥时候完成?A:大三实训抽到的时候(没抽到就不填了)2代码:main.c***************************...原创 2019-03-19 18:57:17 · 661 阅读 · 0 评论 -
彩灯控制器
1.题目:## 注意:时序要求严格,读取eeprom和AD值要关中断!2.代码:main.c******************************************************************************* 文件名:彩灯控制器* 描 述:* 作 者:思索与猫* 日 期: 19/3/18 * 备 注: * ...原创 2019-03-18 18:07:39 · 2895 阅读 · 1 评论 -
关于PWN调节小灯泡亮暗
再次感谢ReCclay大佬文章的启迪:《觉得自己再有必要开一篇PWM的文章了》 作者:ReCclay[如果想要更深入详细了解PWN,请务必点击这篇文章↑↑↑↑]实验原理:通过上图就可以 看出,占空比越高,高电平越久,小灯泡就越暗(这里高电平小灯泡灭,低电平小灯泡亮)所以只要控制占空比,就可以控制小灯泡的亮暗了代码:先设置一个10us的定时器void Timer0Init() ...转载 2019-03-17 22:12:56 · 3201 阅读 · 0 评论 -
单片机电子钟
1.题目2.代码main.c******************************************************************************* 文件名:电子钟* 描 述:* 作 者:思索与猫* 日 期: 19/3/17 * 备 注: * **********************************...原创 2019-03-17 17:04:19 · 849 阅读 · 0 评论 -
自动售水机
1.题目算是一次对模块化编程的练习注意点:ad读取值是光敏电阻的电压。所以通道取0x012.代码main.c******************************************************************************* 文件名:自动售水机* 描 述:* 作 者:思索与猫* 日 期: 19/3/16 * 备 注: * ...原创 2019-03-16 16:50:21 · 1156 阅读 · 0 评论 -
温度记录器
题目这里初次使用sys.h封装系统使用关于外部变量注意:c/c++语言中有很多地方要用到extern,但是如果没有真正的了解它的意义,会给编程带来很大的麻烦,为了使大家少走弯路,特祥细的说明一下。对于比较小的程序,一般只有一个c文件和一个头文件,全局变量我们通常会直接定义在c文件中,在程序之前加int i定义。如果要在头文件中定义有以下两种方法:用extern来声明:extern in...原创 2019-03-15 17:19:24 · 827 阅读 · 0 评论 -
简易温度采集和控制装置
主函数while循环里检测温度,按键驱动,显示界面。中断里实现按键扫描,led灯闪烁,开关继电器。******************************************************************************* 文件名:简易温度采集与控制装置* 描 述:* 作 者:思索与猫* 日 期: 19/3/14 * 备 注: * ...原创 2019-03-14 19:26:29 · 1061 阅读 · 0 评论 -
定时扫描矩阵按键
还是和之前一样,在大佬ReCclay的代码上稍加了修改和注释。真的十分感谢ReCclay的博客《关于按键的故事》 作者 ReCclay (https://blog.youkuaiyun.com/ReCclay/article/details/79293182) 这次的矩阵按键是在独立按键的基础上改造的:理解独立按键,必须理解应用层KeyDriver()和底层KeyScan(),KeyAction()...原创 2019-03-13 18:18:45 · 1177 阅读 · 0 评论 -
模拟灌溉系统
1.题目2.代码main.c#include&amp;amp;lt;stc15f2k60s2.h&amp;amp;gt;#include&amp;amp;lt;ds1302.h&amp;amp;gt;#include&amp;amp;lt;iic.h&amp;amp;gt;typedef unsigned char uchar;typedef unsigned int uint;原创 2019-03-12 15:54:06 · 875 阅读 · 2 评论 -
三行代码实现独立按键程序
三行代码来源:http://www.ebaina.com/bbs/forum.php?mod=viewthread&amp;amp;tid=2126&amp;amp;extra=page%3D1uchar cont,trg; //triger触发 continue连续void KeyScan(){ uchar ReadData = P3^0xff; trg = ReadData&amp;amp;...原创 2019-03-10 17:40:26 · 6083 阅读 · 5 评论 -
数码管显示
1. 显示函数放在中断里2ms扫描一次uchar code duan[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x00,0x40}; //10black,11- void Display(){ static uchar index = 0; P2 = (P2&0x1f)|0xe0; //消隐 P0...原创 2019-03-10 13:29:54 · 904 阅读 · 0 评论 -
移位运算控制流水灯
要想实现这样的流水灯,很简单,通过移位运算就可以很简单的写出来- 1移位控制void Led_buff(){ static uchar index = 0; uchar left = 0x80,right = 0x01; left = left&gt;&gt;index; //从左往右移位 right = right&lt;&lt;index; ...原创 2019-03-10 13:03:29 · 6924 阅读 · 0 评论 -
eeprom与pcf859
eeprom与DS18B20一样,在用到的时候也需要注意时间精度。改时序1. 延迟5us#define somenop Delay5us()void Delay5us() //@12.000MHz{ unsigned char i; _nop_(); _nop_(); i = 12; while (--i);}2. 读取eepromunsigned char rea...原创 2019-03-10 11:56:09 · 676 阅读 · 0 评论 -
DS1302时钟模块
DS1302时钟比起DS18B20而言要简单的多。需要注意的大概两点:1. 写入时分秒void set_time(unsigned char shi, unsigned char fen ,unsigned char miao){ Ds1302_Single_Byte_Write(0x8e, 0x00); //WP=0,写操作 Ds1302_Single_Byte_Write(0...原创 2019-03-08 14:47:20 · 3877 阅读 · 0 评论 -
DS18B20读取温度(带小数)
由于DS18B20对时间精度要求很高,所以在写读取温度之前一定要改时序1. 单总线延时函数//单总线延时函数void Delay_OneWire(unsigned int t){ t*=12; //t改成t*12 while(t--);}2. 读取温度(整数)unsigned char read_temperature1(){ unsigned c...原创 2019-03-08 13:35:29 · 18580 阅读 · 18 评论 -
关于继电器和蜂鸣器的干扰问题
我在做自动灌溉系统题目时,发现继电器和蜂鸣器同时操作时会出现干扰。为了避免这种情况,我发现可以使用标志位,relay_flag, buzz_flag,标志为1时打开,0时关闭。因此可以写个底层来操作这两个标志位,而具体步骤则主函数运行!标志位操作底层void KeyAction(uchar keycode){ if(keycode == '1') { buzz_flag ...原创 2019-03-08 11:53:04 · 3606 阅读 · 0 评论 -
定时扫描独立按键
定时扫描独立按键/*文件名:描 述:作 者:思索与猫日 期:备 注:S4每次加1,S5每次减2,S6每次加3,S7每次减4#include&amp;amp;amp;amp;amp;amp;lt;stc15f2k60s2.h&amp;amp;amp;amp;amp;amp;gt;#define uchar unsigned char#define uint unsigned intuchar code duan原创 2019-03-07 21:50:19 · 3227 阅读 · 4 评论