单片机
玛莱之盾
这个作者很懒,什么都没留下…
展开
-
蓝桥开发板(CT107D)学习记录————12.串口通信
串口通信实验 通过USB连接线连接PC机,在计算机硬件管理器中查看串口号,打开串口调试工具软件如下图,并将串口通讯波特率设定为2400。用 STC-ISP 串口助手可以接收开发板发送的字符串,并向开发板发送字符串。1、数据发送。通过串口输出实时温度数据。(DS18B20数据线引脚DQ与单片机P2.7引脚连接。)2、数据接收。输入1-8字符,可控制8个LED指示灯亮灭状态。(将跳线J13配置为MM模式)#include <STC12C5A60S2.H> #include "one原创 2021-04-11 14:38:03 · 481 阅读 · 0 评论 -
蓝桥开发板(CT107D)学习记录————18.超声波测距
要求是:使用超声波测距,并且使用数码管显示出来距离单位是cm,距离超过量程显示999#include <STC15F2K60S2.H>#include"intrins.h"#define uint unsigned int#define uchar unsigned char#define somenop {_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();}//延时sbi原创 2021-04-11 12:17:27 · 537 阅读 · 1 评论 -
第八届蓝桥杯单片机——电子时钟
这是今天二刷的一道题目,其中用的了ds1302和onewire协议。底层代码就不放了,前面讲模块的文章也有,用的是官方的底层驱动。下面直接上主函数,在程序中讲解#include <STC15F2K60S2.H>#include "ds1302.h"#include "onewire.h"#define uchar unsigned char#define uint unsigned intuchar code adress[]={0x01,0x02,0x04,0x08,0x...原创 2021-04-11 10:49:01 · 2716 阅读 · 0 评论 -
蓝桥开发板(CT107D)学习记录————15.电压信号测量(IIC协议)
题意:使用竞赛板上RB2电位器输出测试电压信号,信号输出范围为0V-5V,使用数码管显示电压值。用开发板上的rb2,控制输出电压,用pcf8591,进行A/D转换并且显示在数码管上IIC.h#ifndef __IIC_h#define __IIC_hvoid IIC_Delay(unsigned char i);//延时void IIC_Start(void);//开始void IIC_Stop(void);//启动void IIC_SendAck(bit ackbit);//发送应答原创 2021-03-07 21:49:06 · 895 阅读 · 1 评论 -
蓝桥开发板(CT107D)学习记录————13.室内光线采集(IIC协议)
题目要求:使用光敏传感器采集室内实时光线强度,并将光线强度以数值的形式通过数码管显示出来。数值范围(0-255)这是个D/A转换的题目,利用开发板上的光敏测量亮度,再通过PCF8591芯片来转换成数字信号。PCF8591使用的是IIC协议。这里贴一下底层驱动IIC.h#ifndef __IIC_h#define __IIC_hvoid IIC_Delay(unsigned char i);void IIC_Start(void);void IIC_Stop(void);void IIC_S原创 2021-03-07 21:19:37 · 285 阅读 · 0 评论 -
蓝桥开发板(CT107D)学习记录————11.温度测量DS18B20(onewire协议)
题目要求:使用温度传感器采集室内实时温度(温度值要求整数),并通过数码管显示出来。要求:用6个数码管(前两位显示温度值整数位,后四位显示小数)onewire(单总线) 是DALLAS公司推出的外围串行扩展总线技术总线,顾名思义,它是采用一根信号线进行通信,既传输时钟信号又传输数据,而且能够进行双向通信,具有节省I/O口线、资源结构简单、成本低廉、便于总线扩展和维护等诸多优点。常用到单总线的器件,一般是温度传感器、EEPROM、唯一序列号芯片等,如DS18B20、DS2431。协议原理不做赘述,有兴趣,原创 2021-02-19 11:17:06 · 689 阅读 · 0 评论 -
蓝桥开发板(CT107D)学习记录————17.数字时钟
数字时钟设计功能描述1、初始化1)关闭蜂鸣器、继电器等无关外设;2)DS1302设备初始化时钟为 23 时 59 分 50 秒。2、显示功能3、按键功能1)按键 S4 定义为时钟启停按键,控制DS1302的启动和暂停(可使用中断方式)。2)按键 S5、S6、S7 定义为“加”按键,每次在暂停状态下,按下该按键对应的时、分、秒单元增加 1 个单位。(S5–>时、S6–>分、S7–>秒)这里要用到SPI总线协议SPI(Serial Peripheral Interface原创 2021-02-19 10:48:25 · 720 阅读 · 0 评论 -
蓝桥开发板(CT107D)学习记录————8.中断嵌套
设置两个外部中断(INT0和INT1)按键,优先级IP=0x04。按下INT0的按键,则led依次循环点亮;按下INT1按键,则led全体闪烁三次,然后继续依次循环点亮。/*中断嵌套,IP=0x04,INT0按下led循环点亮,INT1按下led全体闪烁三次然后依次循环*/#include"reg52.h"#include"intrins.h"#define uchar unsigned charuchar i=0;void init(){ P2=0xa0;P0=0x00;P2=0x00;/原创 2021-02-07 11:00:19 · 400 阅读 · 0 评论 -
蓝桥开发板(CT107D)学习记录———7.外部中断控制数码管显示数值的增减
题目要求:外部中断每发生一次,在数码管上显示一个数字,数码管显示初始状态为灭。且中断每触发一次显示的数值增加1或减少1(INTO做加法,INT1做减法)。/*外部中断,INT0加一,INT1减一,初始时数码管灭*/#include"reg52.h"#include"intrins.h"#define uchar unsigned char#define uint unsigned int#define KEYPORT P3sbit INT_0=P3^2;//位定义外部中断的接口sbit I原创 2021-02-07 10:59:41 · 1079 阅读 · 0 评论 -
蓝桥开发板(CT107D)学习记录———6.数码管显示键值
题目要求:设计一个4*4矩阵键盘(S4-S19),双数码管显示,其键值对应为“00~15”。按下按键后,数码管显示相应的键值。/*数码管显示相应的键值,00-15*/#include <STC15F2K60S2.H>#include"intrins.h"#define uchar unsigned char uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共阳数码管uchar code原创 2021-02-06 20:03:35 · 1154 阅读 · 2 评论 -
蓝桥开发板(CT107D)学习记录———5.定时器扫描按键
题目要求:定时器扫描按键,实现按下S5时,数码管显示数值加1;按下S6时,数码管显示数值减1。要求,必须用定时器扫描一次,去抖。/*定时器扫描按键,实现S5,数码管显示加一,S6数码管减一,必须用定时器扫描一次,去抖*/#include"reg52.h"#include"intrins.h"#define uchar unsigned char#define uint unsigned int#define KEYPORT P3//宏定义,KEYPORT代替P3,为了读键值uchar cod原创 2021-02-06 20:02:05 · 903 阅读 · 2 评论 -
蓝桥开发板(CT107D)学习记录———4.定时器控制数码管显示
题目要求:使用定时器让数码管以一秒为间隔显示0-999,要求:高位的零熄灭。如:显示“78”时,百位的零熄灭。#include"reg52.h"#include"intrins.h"#define uchar unsigned char#define uint unsigned int uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共阳数码管编码uchar code adress[]={0x80,原创 2021-02-05 14:04:25 · 603 阅读 · 2 评论 -
蓝桥杯开发板(CT107D)学习记录————3.双数码管显示
题目要求:模拟十字路口的两位信号灯显示计数(00-99),数字间隔时间不做特殊要求。采用软件延时方法。#include"reg52.h"//可以添加<STC15F2K60S2.H>,读者自行百度如何添加此头文件,因为CT107D用的就是stc15f2k60s2芯片#include"intrins.h"//软件延时需要#define uchar unsigned char#define sw 0x40#define gw 0x80uchar code table[]={0xc0,0xf原创 2021-02-04 13:21:26 · 622 阅读 · 0 评论