蓝桥杯
天地神仙
这个作者很懒,什么都没留下…
展开
-
蓝桥杯——学习目录
基础部分蜂鸣器和继电器流水灯数码管静态显示数码管动态显示延时消抖独立键盘三行代码独立键盘定时扫描独立键盘定时扫描矩阵键盘定时器详解中断系统详解使用烧录软件快速写中断提高部分AD模块DS1802读取温度eeprom超声波模块...原创 2020-02-05 11:32:21 · 1744 阅读 · 0 评论 -
keil4如何添加stc库
首先打开烧录软件,选择keil仿真设置,点击添加型号和头文件到keil中,添加stc仿真器驱动到keil中。点击后会弹出对话框,找到keil4的安装目录如图点击确定会提示此时打开keil4新建工程时选择单片机型号的时候会要这个对话框下拉选择stc即可...原创 2020-01-20 11:54:49 · 5876 阅读 · 2 评论 -
keil4和烧录软件的基本使用
一、新建工程首先新建一个文件夹用来存放工程文件,一个工程文件放在一个文件夹中,不同的工程文件不要放在一个文件夹打开keil4,找到project,点击第一个选项找到刚刚创建的文件夹的位置,然后输入项目的名称,点击保存。添加了其他库的会有这个对话框,选择到自己单片机的型号。如果没有这个对话框请忽略这里。例如我现在使用51单片机则在atmel下拉菜单中选择at89c52点击ok,回弹...原创 2020-01-20 12:25:13 · 14307 阅读 · 0 评论 -
蓝桥杯——PWM
一、原理部分PWM全称为脉冲宽度调制,在实际生活中很多地方都会见到这个技术的影子,例如灯的明暗调控,电机的转动速度还有幅度等等。在这些应用中我们需要使用不同的电压来达到目的,输出不同电压的方式有两种,一种是直接输出指定的电压值,还有一种就是PWM。Ton为高电平持续时间Toff为低电平持续时间Ts一个周期时间占空比=高电平持续时间/周期简单来说一个io口只能输出固定的电压值如5V或者...原创 2020-03-21 22:45:00 · 1558 阅读 · 2 评论 -
蓝桥杯——第九届蓝省赛_彩灯控制器
一、使用到的模块使用到的模块数码管、按键、LED、AD、eeprom二、代码部分实验平台:CT107D实验芯片:stc15f2k60s2实验现象:完成题目要求代码如下iic.c#include "iic.h"void Delay5us() //@12.000MHz{ unsigned char i; _nop_(); _nop_(); i = 12; wh...原创 2020-02-25 18:42:35 · 2195 阅读 · 0 评论 -
蓝桥杯——第八届省赛_基于单片机的电子钟程序设计与调试
一、使用到的模块数码管,独立按键,LED,DS1302,ds18b20二、代码部分实验平台:CT107D实验芯片:stc15f2k60s2实验现象:完成题目要求代码如下onewire.c#include "stc15f2k60s2.h"sbit DQ = P1^4; //单总线接口//单总线延时函数void Delay_OneWire(unsigned int t)...原创 2020-02-24 23:45:48 · 2331 阅读 · 5 评论 -
蓝桥杯——第三届省赛_自动售水机系统
一、使用到的模块数码管,按键,AD,LED,继电器二、代码部分实验平台:CT107D实验芯片:stc15f2k60s2实验现象:完成题目要求代码如下iic.c/* 程序说明: IIC总线驱动程序 软件环境: Keil uVision 4.10 硬件环境: CT107单片机综合实训平台(12MHz) 日 期: 2011-8-9*/#include "...原创 2020-02-12 15:45:21 · 941 阅读 · 7 评论 -
蓝桥杯——第四届省赛_模拟智能灌溉系统
一、使用到的模块数码管、独立按键、LED、继电器、蜂鸣器、eeprom、AD、DS1302题目要求二、代码部分实验平台:CT107D实验芯片:stc15f2k60s2实验现象:完成题目要求代码如下ds1302.c#include <stc15f2k60s2.h>#include <intrins.h>sbit SCK=P1^7; sbit S...原创 2020-02-10 21:53:23 · 1403 阅读 · 0 评论 -
蓝桥杯——第五届省赛_简易温度装置
一、使用到的模块矩阵键盘,数码管,LED,DS18B20,继电器题目要求二、代码部分实验平台:CT107D实验芯片:stc15f2k60s2实验现象:完成题目要求代码如下keydrive.c#include<stc15f2k60s2.h>#include<keydrive.h>#define uchar unsigned char#define...原创 2020-02-09 21:56:49 · 639 阅读 · 0 评论 -
蓝桥杯——第七届省赛_模拟风扇控制系统
一、使用到的模块DS18B20,LED,按键,PWM输出,数码管题目要求二、代码部分实验平台:CT107D实验芯片:stc15f2k60s2实验现象:完成题目要求代码如下onewire.c#include "stc15f2k60s2.h"sbit DQ = P1^4; //单总线接口//单总线延时函数void Delay_OneWire(unsigned int ...原创 2020-02-08 20:59:36 · 1281 阅读 · 0 评论 -
蓝桥杯——第六届省赛_温度器
一、使用到的模块DS1302,DS18B20,数码管,按键,LED二、代码部分实验平台:CT107D实验芯片:stc15f2k60s2实验现象:获取当前环境温度,显示在数码管上代码如下onewire.c#include "stc15f2k60s2.h"sbit DQ = P1^4; //单总线接口//单总线延时函数void Delay_OneWire(unsigned ...原创 2020-02-06 19:04:04 · 848 阅读 · 0 评论 -
蓝桥杯——使用DS1302设置时间
一、原理部分命令字节命令字节启动每个数据传输。MSB(位7)必须是逻辑1。如果为0,则将禁用对DS1302的写入。如果逻辑0,则位6指定时钟/日历数据;如果逻辑1,则指定RAM数据。位1到5指定要输入或输出的指定寄存器,LSB(位0)指定逻辑0时的写入操作(输入)或逻辑1时的读取操作(输出)。命令字节总是从LSB(位0)开始输入。时钟和日历时间和日历信息是通过读取适当的寄存器字节获得的...原创 2020-02-05 13:49:50 · 5637 阅读 · 3 评论 -
蓝桥杯——使用eeprom存取和读取数据
一、原理部分设备寻址在开启eeprom后需要一个8位设备地址,以使芯片能够进行读或写操作,第八位为0的时候进行写的操作,为1的时候进行读的操作。写操作进行写操作的时候要先写入一个设备地址,然后还需要写入一个8位的数据地址,eeprom收到这个地址后会再次响应,这时eeprom会接受后面的8位的数据,接受完成后会储存数据到内部,直到全部写完后才会再次响应。根据时序图编写以下代码v...原创 2020-02-04 20:37:10 · 7723 阅读 · 0 评论 -
蓝桥杯——读温度
一、原理部分读温度使用的是DS1802芯片,该芯片通过单总线one-wire协议和单片机进行通讯,在比赛的时候会提供onewire.c和onewire.h两个文件。完整代码会放在最后,下面讲解如何编写读取温度的程序。跳过ROM操作指令启动温度转化开始读取暂存器的数据完整读温度函数添加到onewire.c中unsigned char duwendu() { unsigned...原创 2020-02-03 16:50:13 · 2840 阅读 · 0 评论 -
蓝桥杯——使用烧录软件快速写中断
一、原理部分建议先学习中断系统STC烧录软件在这个界面设置好我们要开的定时器,定时器模式,系统频率还有定时长度点击生成c代码,然后复制代码。按照下面的代码添加最后两行。void Timer0Init(void) //1毫秒@12.000MHz{ AUXR |= 0x80; //定时器时钟1T模式 TMOD &= 0xF0; //设置定时器模式 TL0 = 0x40;...原创 2020-02-03 15:34:42 · 796 阅读 · 0 评论 -
蓝桥杯——中断系统详解
一、原理部分建议先学习定时器再学习中断定时器详解什么是中断系统基本解释:计算机执行某程序,发生了紧急事件或有特殊请求,CPU暂停某程序的执行转而去处理上述事件或请求,处理完毕后再重新执行某程序的过程叫做中断。为了我们更加方便的理解中断这个概念,举例:假设你正在吃饭,这时接到快递员电话叫你下楼去快递只等5分钟,这就是中断请求。然后你回答:“好的,我现在就来”这个就是中断响应。接着你停止吃饭下...原创 2020-01-22 15:06:42 · 5755 阅读 · 2 评论 -
蓝桥杯——定时器详解
实验目的:实现20s的计时一、原理部分时钟周期和机械周期1.时钟周期即晶振的单位时间发出的脉冲数。2.一个机器周期等于12个时钟周期。15系列的芯片晶振是12MHZ,12MHZ=12×10的6次方,即每秒发出12000000个脉冲信号,那么发出一个脉冲的时间就是时钟周期,即1/12微秒,一个机器周期等于12个时钟周期,所以是1微秒。15系列还有12T模式,即一个机器周期等于一个时钟周期...原创 2020-01-20 15:24:35 · 4751 阅读 · 5 评论 -
蓝桥杯——定时扫描独立按键
一、原理部分和定时扫描矩阵按键差不多的原理,只不过跳线帽连接2和3。不明白的可以看这篇博客。定时扫描矩阵二、代码部分实验平台:CT107D实验芯片:stc15f2k60s2实验现象:S7打开蜂鸣器,S6关闭蜂鸣器,S5打开继电器,S4关闭继电器代码如下(这里使用了标志位控制蜂鸣器和继电器)#include<stc15f2k60s2.h>#define uchar u...原创 2020-01-19 22:01:27 · 1138 阅读 · 0 评论 -
蓝桥杯——超声波模块
一、原理部分使用超声波需要用跳线帽连接1-3和2-4,实物图如上。原理图如下。根据原理图可以看到如图所示,P10发射,P11接收流程:TX发送8个40KHZ的超声波信号#define somenop {_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();}void sent_wave()...原创 2020-01-19 21:02:11 · 2556 阅读 · 0 评论 -
蓝桥杯——AD模块
一、原理部分在iic.c中增加代码void write_adc(unsigned char add)//要用哪一个通道在调用时就写哪一个{ IIC_Start(); IIC_SendByte(0x90); IIC_WaitAck(); IIC_SendByte(add); IIC_WaitAck(); IIC_Stop();}unsigned char read...原创 2020-01-18 12:47:50 · 2130 阅读 · 2 评论 -
蓝桥杯——定时扫描矩阵键盘
一、原理部分注:P36转P42,P37转P44,跳线帽连接1和2按键状态扫描按键有两个状态,一个是弹起态,一个是按下态。通过判断按键的状态持续的时间来确定按键是否按下或者弹起。设置一定的时间扫描一次按键的状态,如果按键的状态和之前的状态不一样就说明按键发生了状态的改变,过一段时间后,按键状态再次发生改变,则说明按键完成了一个按下又弹起的操作,此时就可以执行此按键对应的功能。用keysta[...原创 2020-01-17 12:17:06 · 2229 阅读 · 3 评论 -
蓝桥杯——用三行代码写独立键盘
一、原理部分三行代码uchar cont,trg; //triger触发 continue连续void KeyScan(){ uchar ReadData = PINB^0xff; trg = ReadData&(ReadData^cont); cont = ReadData;}原理在我之前的一篇文章中有讲到,这里不再赘述三行代码搞定独立按键二、...原创 2020-01-16 09:36:45 · 2240 阅读 · 3 评论 -
蓝桥杯——延时消抖独立键盘
一、原理部分我们这里使用独立按键,所以J5跳线帽连接2和3。此时S7-S4为独立按键,按键左侧连在一起接地,右侧则分别对应P30-P33。当按键按下时,导线联通,按键对应的IO口则会被拉低为低电平,所以我们只需要检测哪一个IO口为低电平,即可知道哪一个按键按下了。机械按键在按下的时候存在抖动现象,我们这里采用延时消抖,即按键按下时,判断一次对应IO是否为低电平,延时一段时间后再次判断是否为...原创 2020-01-16 08:48:36 · 2124 阅读 · 0 评论 -
蓝桥杯——数码管动态显示
一、原理部分上一篇文章讲到了数码管的段选部分还有不了解的小伙伴可以去查看上一篇文章数码管静态显示这篇文章主要讲数码管的位选。位选顾名思义,就是选择数码管哪一位点亮,在开发板上,数码管模块由两个4位的数码管组成,每一个数码管的亮和灭我们可以用一个二进制数来表示,在本开发板中,1为亮,0为灭。在上一篇文章中,我们只控制段码只能让8个数码管显示同样的数字,那么要让数码管显示不一样的数字该怎么做呢...原创 2020-01-15 13:52:18 · 2865 阅读 · 3 评论 -
蓝桥杯——数码管静态显示
一、原理部分前面的原理和蜂鸣器差不多,不懂的可以参考如何控制蜂鸣器下面讲解数码管部分的原理数码管内部是8个小的LED按照一定顺序排列而成的,按照从低位到高位的顺序我们依次命名为a b c d e f g dp(小数点) 共8段,对应关系如上图。例如要让共阴极数码管显示0,则要让abcdef为1,即对应的段码为 0011 1111 转化为16进制则为0x3f。如果为共阳极数码管则对0x3f...原创 2020-01-15 13:31:04 · 4897 阅读 · 1 评论 -
蓝桥杯——流水灯
实验目的:使开发板上的LED从左往右依次循环点亮,频率为0.5s一、原理部分流水灯原理和蜂鸣器的原理差不多此处不再赘述,如有不懂的可以参照我之前的博客如何控制鸣器和继电器延时函数的获取这里我们要使用延时函数,打开烧录软件找到软件延时计算器,选择定时长度为500ms,指令集为STC-Y5,然后生成c代码,复制代码。代码中有_nop()_函数,这个函数包含在头文件intrins.h中,所以...原创 2020-01-14 22:48:57 · 1534 阅读 · 0 评论 -
蓝桥杯——控制蜂鸣器和继电器
一、原理部分以蜂鸣器为例讲解原理(继电器和蜂鸣器类似)蜂鸣器的一端接到VCC即为高电平,所以另外一个引脚赋予高电平则蜂鸣器关闭,赋予低电平则蜂鸣器打开。现在让蜂鸣器打开即要让N_BUZZ为0。N_BUZZ连接到ULN2003的OUT7,查阅芯片资料得知,ULN2003是一个非门所以要让OUT7输出为0则IN7=1,IN7和锁存器的Q7相连,即Q7=11。使Q7=1则要打开锁存器的使能端...原创 2020-01-14 22:04:21 · 4723 阅读 · 0 评论