![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
蓝桥杯IAP15F系列单片机
作为蓝桥杯IAP15F系列单片机个人学习笔记
流年亦梦
陌上花开,可缓缓而归矣
展开
-
23.蓝桥杯单片机设计与开发第三届省赛
设计内容:通过竞赛硬件平台模拟小区自动售水机的工作流程:通过按键控制售水机水流出和停止;通过数码管显示费率、出水量及总费用;通过光敏电阻检测环境亮度,在亮度过低的情况下,自动开灯。系统硬件电路主要由单片机控制电路、数码管显示电路、 A/D 转换电路及功能按键组成。由上面的设计要求可知,我们本次设计使用到了按键、A/D转换、数码管显示、继电器和LED几个部分,本人的习惯是先将省赛必考部分写出一个...原创 2020-03-16 08:21:04 · 1519 阅读 · 0 评论 -
22.蓝桥杯单片机设计与开发:如何直接利用考场提供的底层驱动代码进行修改?
由于CT107D开发板原是为传统89C52单片机设计,因此其底层驱动代码也是适合于52单片机,而目前所使用的IAP15系列单片机的运行速度远远高于52单片机,故我们需要对其进行修改使其直接为我们所用。DS18B20将原代码中所有的延时时间扩大10倍。DS13021.所有的nop复制3次,即原来的一个nop改为3个nop_nop_();_nop_();_nop_();_nop_();2...原创 2020-03-06 16:58:58 · 2099 阅读 · 1 评论 -
21.IIC通信的基本函数
1.IIC_Start()和IIC_Stop()void IIC_Start(){ SDA=1; SCL=1; Delay5us(); SDA=0; Delay5us(); SCL=0;}先将SDA和SCL都置高电平,延迟(延迟时间见芯片手册)后将SDA置低电平,再延迟(延迟时间见芯片手册)后将SCL置高电平,为下一步读写数据做准备(读写数据起始时SCL为低电平)。voi...原创 2020-02-28 20:07:07 · 2465 阅读 · 0 评论 -
20.IIC通信:AT24C02:EEPROM存储芯片
IIC通信IIC总线是双向、二线制、同步串行总线,是一种多向控制总线,即多个芯片可以连接到同一个总线结构下,每个芯片都可以作为实时数据传输的控制源。AT24C02:EEPROM存储芯片,是一个2K位串行CMOS EEPROM,内部含有256个8位字节。EEPROM是指带电可擦可编程读写存储器,掉电不丢失数据。AT24C02芯片原理图:...原创 2020-02-28 20:05:35 · 2645 阅读 · 0 评论 -
19.IIC通信:PCF8591:数模/模数转换芯片
IIC通信IIC总线是双向、二线制、同步串行总线,是一种多向控制总线,即多个芯片可以连接到同一个总线结构下,每个芯片都可以作为实时数据传输的控制源。PCF8591:模数/数模转换芯片,是一个单片集成、单独供电、低功耗、8-bit CMOS数据获取器件,具有4个模拟输入、1个模拟输出和一个串行IIC总线接口。AT24C02:EEPROM存储芯片,是一个2K位串行CMOS EEPROM,内部含有...原创 2020-02-27 17:51:47 · 5213 阅读 · 0 评论 -
18.时钟芯片DS1302
三线通信(不称为一种通信协议,只是因为此芯片由三根线接在板子上)DS1302可以对年、月、日、周、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.0V~5.5V,采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31*8的用于临时存放数据的RAM寄存器。控制字节总是从最低位开始输出:位7:必须为逻辑1,为0,则不能把数据写入...原创 2020-02-25 10:18:02 · 1614 阅读 · 0 评论 -
17.DS18B20温度传感器
单总线通信(Onewire)温度传感器DS18B20当总线的数据传输速率一般为16.3Kbit/s,最大可达142Kbit/s,通常采用100Kbit/s以下的速率传输数据。温度传感器DS18B20原理图如下:由图知,DS18B20温度传感器接在P14管脚,P14管脚和Vcc间接有一个上拉电阻。1.初始化DS18B20初始化函数:void Init_DS18B20(void){...原创 2020-02-20 18:21:13 · 2261 阅读 · 0 评论 -
16.动态数码管以及基础整合部分课后练习
数码管依次显示23-59-50#include<stc15f2k60s2.h>#define uchar unsigned char uchar tab[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0XBF,0XFF};uchar yi,er,san,si,wu,liu,qi,ba;void Delayms(...原创 2020-02-18 11:23:03 · 568 阅读 · 0 评论 -
15.省赛基础部分程序整合
在前面几部分学习的基础上,我们可以进行基础部分的程序整合:主程序#include<STC15F2K60S2.H>#include<intrins.h>#define uchar unsigned char #define uint unsigned intuchar tab[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8...原创 2020-02-18 10:02:01 · 431 阅读 · 0 评论 -
14.动态数码管的使用
工作原理:动态显示的特点是将所有的位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。这样一来,就没有必要每一位数码管配一个锁存器,从而大大简化了硬件电路。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余晖和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态要差一点。...原创 2020-02-16 17:24:10 · 1557 阅读 · 0 评论 -
13.初始化程序
P0控制LED、数码管、蜂鸣器、继电器、步进电机、点阵、LCD1602、LCD12864。由前面的学习可知,我们编写了初始化程序,下面我们将对初始化程序进行讲解。LED灯的初始化:P2=0XA0;P0=0X00;P2=0X80;P0=0XFF;首先看后两句程序:P2=0X80;P0=0XFF;由CT107D官方板原理图知,其中74HC573芯片为锁存器,当Y4C=1时,锁存器打开,...原创 2020-02-16 10:56:35 · 2570 阅读 · 0 评论 -
12.矩阵键盘,定时器,外部中断课后练习
1.系统上电后数码管显示0,按下S4用定时器以间隔500ms在数码管上依次显示0-F,重复,按下S5用定时器以间隔1s显示0-F,按下S6用定时器以间隔2S显示0-F#include<STC15F2K60S2.H>unsigned int tt=0;unsigned char tab[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,...原创 2020-02-15 18:43:54 · 1980 阅读 · 1 评论 -
11.中断系统
CPU的中断系统是为使CPU具有对外界紧急事件的实时处理能力而设置的。具体过程:某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生);CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务);待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程成为中断。优势:1.分时操作。CPU可以分时为多个I/O设备服务,提高了计算机的利用率;2...原创 2020-02-14 18:23:03 · 445 阅读 · 1 评论 -
10.定时器的使用
利用定时器,解决软件延迟不精准问题。实现定时功能的几种方法:1.软件定时:软件定时不占用硬件资源,但占用了CPU时间,降低了CPU利用率。2.采用时基电路定时:例如采用555电路。3.采用可编程芯片定时:这种定时芯片的定时值及定时范围很容易用软件来确定和修改,此时芯片定时功能强,使用灵活。4.单片机定时器、扩展定时器芯片。(单片机内部集成有定时器的芯片)IAP15F2K60S2:定时器...原创 2020-02-11 16:12:33 · 1487 阅读 · 0 评论 -
9.矩阵键盘的使用
**实现原理:**令其中某一行或某一列为0(等同于独立键盘的接地),判断对应的位置的列或行是否为0,从而确定是哪一个按键被按下。(注意跳线帽位置的更改)学习使用的平台为CT107S,原理图如下:其与竞赛用的官方平台CT107D不同在于WR、RD对应的引脚不同,CT107D原理图如下:以下程序使用的为CT107S,注意此不同。矩阵键盘第一列按键控制L1~L4点亮#include<...原创 2020-02-10 14:56:13 · 4035 阅读 · 1 评论 -
8.独立按键和静态数码管课后练习
1.系统上电LED灯全灭,按下S4全开,按下S5全灭,按下S6奇数亮,按下S7偶数亮#include<STC15F2K60S2.H>void KEY_Scan(void);void Delayms(int ms);void main(void){ P2=0XA0;P0=0X00;P2=0X80;P0=0XFF; //初始化程序 while(1) { KEY_S...原创 2020-02-07 18:01:12 · 1784 阅读 · 0 评论 -
7.仿真相关知识
原理图直接反应电路板上各器件之间的连接原理。初始化程序可认为是打通了芯片的左右排管脚。原创 2020-02-07 11:32:47 · 498 阅读 · 0 评论 -
6.独立按键与静态数码管
第一个数码管显示1:#include<STC15F2K60S2.H>void main(void){ P2=0XA0;P0=0X00;P2=0X80;P0=0XFF; //初始化程序 P2=0XC0;P0=0X01;P2=0XFF;P0=0XFF; //数码管初始化程序,打开第一个数码管 P0=0XF9; while(1);}数码管正计时程序:#inclu...原创 2020-02-05 18:04:40 · 3098 阅读 · 3 评论 -
5.独立按键控制LED灯
按键控制LED的打开关闭#include<STC15F2K60S2.H>void main(void){ P2=0XA0;P0=0X00;P2=0X80;P0=0XFF; //初始化程序 while(1) { if(P30==0)P00=0;//打开 if(P31==0)P00=1;//关闭 }}按键控制一次流水灯#include<STc15F2...原创 2020-02-04 17:09:21 · 10404 阅读 · 1 评论 -
4.LED灯课后练习
1 第一个LED灯以间隔200ms闪烁#include<STC15F2K60S2.H>sbit LED1=P0^0;void Delayms(int ms);void main(void){ P2=0XA0;P0=0X00;P2=0X80;P0=0XFF; //初始化程序 while(1) { LED1=0; Delayms(200); LED1=1;...原创 2020-02-02 19:42:11 · 3732 阅读 · 0 评论 -
3.流水灯的实现
LED灯闪烁:闪烁一次:#include<STC15F2K60S2.H>unsigned int i;void main(void){ P2=0XA0;P0=0X00;P2=0X80;P0=0XFF; //初始化程序 P00=0; for(i=0;i<65535;i++); P00=1; for(i=0;i<65535;i++); while(1)...原创 2020-02-02 11:01:51 · 984 阅读 · 0 评论 -
2.点亮第一盏LED灯
对单片机的控制,其实就是对I/0口的控制。15系列单片机最多有P0~P7四个8位双向输入输出端口(P5除外)。比赛所用的IAP15F2K61S2仅用到P0-P4五组I/0口。原创 2020-01-30 16:15:39 · 843 阅读 · 0 评论 -
1.单片机基础知识
电平3.6v-5v 高电平 10v-3.6v 低电平 0二进制 十进制 十六进制 转换逻辑运算符:与:&或:|非:!异或:^数学运算符“+ - * / > >= < <= == !=”其他运算符&&逻辑与 ||逻辑或 !逻辑非<<位左移 >>位右移&按位与 |按位或^按位异或 ~按位取反...原创 2020-01-28 11:07:01 · 619 阅读 · 1 评论