单片机学习
文章平均质量分 66
Moqim Flourite.
To like is to be.
展开
-
蓝桥杯单片机——“”彩灯控制器”的程序设计
同学问我这个题目,然后我就做了,刚好最近断更,就用这个来凑个数吧,也检验看看寒假退步了多少,顺便记录这次做题。题目“彩灯控制器”的程序设计一、基本要求:a)单片机竞赛板限于使用MCS-51单片机或者STM32系列单片机。b)电脑自带,编程所需软件需提前完成安装。c)实现相同功能,用时短者优先排名。d)比赛时长: 5月11日 14:00 ~ 17:00二、功能描述:a)基本功能描述:通过单片机控制LED指示灯的工作模式。b)设计说明i.关闭与本试题无关的外设资源,ii.8个LED指示灯原创 2022-01-22 21:10:40 · 3270 阅读 · 0 评论 -
单片机的实际应用场景与解决方法(举例子)
ADC采集3.4V,但3.4V不一定准确。因为ADC是用半导体采集,而半导体的导电对于温度的敏感度较强。例如:温度: 0 20 50ADC:3.3 3.4 3.5解决办法:用温度传感器做标定,测得温度后做一个增减。但温度传感器也不一定精确:温度: 0 20 50DS18B20: 3 24 58解决方法:标定:用精度更高的温度测量仪做标准,与使用的DS18B20所原创 2021-12-27 10:05:43 · 1212 阅读 · 0 评论 -
单片机学习(串口通信——老师的三道题)
第一题1.STC15F2K60S2上的串口接收任意字符串内容,直到e为止,接收到e就把接收到的内容发送出去(除了e),在串口调试助手上打印出来。例如:STM32串口接收到了“1234qwsa”,不会在串口上打印出来信息。但如果STC15串口接收到了“pauitydsertt”,那么就会把“pauityds”在串口调试助手上打印出来代码//uart.c#include "sys.h"void uart1_sendstring(char* str){ while(*str != '\0'){ S原创 2021-11-14 23:43:48 · 1128 阅读 · 1 评论 -
蓝桥杯——单片机学习(学习自检——数码管)
代码//seg.c#include "sys.h"u8 code Nixie[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, 0x88,0x83,0xc6,0xa1,0x86,0x8e}; //共阳数码管码字u8 NixieBuff[] = {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}; //数码管显示缓冲区,初值0xff确保启动时都不亮u8 co原创 2021-11-06 23:09:16 · 430 阅读 · 0 评论 -
蓝桥杯——单片机学习(8——定时器中断)
原理首先先看烧入软件里的代码——这串代码是烧入软件自动生成的定时器0的初始化函数,我们可以看到,这里是包含两个寄存器:AUXR、TMOD,以及TL0、TH0、TF0和TR0.辅助寄存器 AUXR这里只需要了解这两位,其他位都是定时器2的设置,在串口通信中会提到(所以我已经托更好久了orz…)。工作模式寄存器 TMODGAME:GAME=0,软件启动定时器(一般用这个);GAME=1,软件和外部触发条件共同启动定时器。C/T:为1是计数器,为0是定时器。M1M0:这个是由他们的排列来选原创 2021-11-04 21:27:06 · 949 阅读 · 2 评论 -
蓝桥杯——单片机学习(7——外部中断)
原理想必大家肯定都看过很多类似的博客了,中断的概念应该都有一定了解了,那我这里也就不多赘述了。(好吧,是我太懒了。)那么,就直接根据原理图讲外部中断吧——首先,先认一下外部中断的端口——上图中有四个端口:INT0、Timer0、INT1、Timer1;其中 INT0 为外部中断0,INT1 为外部中断1;Timer0 为定时器0、Timer1 为定时器1。先看外部中断0 INT0 ——首先,开关 TCON 有上、下两个接口,上面的是“上升沿和下降沿均可触发”,下面的是“只能下降沿触发”。原创 2021-10-26 20:03:21 · 1707 阅读 · 2 评论 -
蓝桥杯——单片机学习(学习自检——流水灯)
就是学习别人的博客,然后看看自己能独立打出来不。本来应该删掉的,可是毕竟是自己辛辛苦苦打出来的,舍不得orz.代码(我的)//led.c#include "sys.h"void LED_disp(u8 led){ P0 = led; P2 = P2 & 0x1F | 0X80; P2 &= 0x1F;}//tim.c#include "sys.h"void ALL_Init(void){ P0 = 0xFF; P2 = P2 & 0x1F | 0x8原创 2021-10-26 17:15:05 · 393 阅读 · 0 评论 -
蓝桥杯——单片机学习(6——蜂鸣器)
原理蜂鸣器和LED灯的原理是一样一样的。下面是蜂鸣器的原理图。蜂鸣器BUZZER一端接电源,一端接N_BUZZ,那么只要N_BUZZ为低电平,则蜂鸣器响。N_BUZZ通过ULN2003非门连接M74HC573M1R锁存器再连到P06.所以要使得N_BUZZ为低电平,P06要为高电平(因为非门连接)。这里就和前面的一样啦,连接一个或非门,要锁存器连通,则LE为高电平,即Y5C要为高电平,则Y5为低电平。则138译码器的P27、P26、P25的排列要为101。整理逻辑:P27 P26原创 2021-10-25 18:54:28 · 2353 阅读 · 5 评论 -
蓝桥杯——单片机学习(头文件的书写)
之前的书写方式都是这样——//seg.h#ifndef __SEG_H#define __SEG_H#include "STC15F2K60S2.H"void Nixie_Scan(void);void Nixie_Show(void);void Deal_time(int* sec,int* min,int* hour);#endif定义头文件名,加上单片机型号文件名,加上函数声明,最后结束#endif但是这样,每次都要定义好多好多头文件,比如到后面写一个程序,就要定义一原创 2021-10-23 16:46:38 · 1821 阅读 · 0 评论 -
单片机问题(关于index &= 0x07;无法理解 —— 数码管)
//数码管显示void Nixie_Scan(void){ static unsigned char index = 0; //设置一个静态无符号字符型变量 index P2 = (P2 & 0x1f) | 0xe0; //数码管消隐 P0 =0xff; P2 = (P2 & 0x1f) | 0xc0; //数码管位选 P0 = 0x01 << index; //0000原创 2021-10-21 22:16:45 · 2020 阅读 · 0 评论 -
蓝桥杯——单片机学习(5(2)——按键(矩阵按键))
注:此单片机型号为STC15F2K60S2.矩阵按键原理首先,把跳线帽连接1、2,使其进入矩阵按键模式。此时,即为矩阵按键模式。按键原理 :由图可看出,行接口有:P30、P31、P32、P33.——————列接口有:P44、P42、P35、P34.以S7举例,假设要检测S7被按下,则首先要设置其左端为低电平,即设置P44为低电平并且其余端口保持高电平,再检测其右端即P30是否为低电平即可。(原理与独立按键相似,只是要自己设置一段为低电平。)代码来源:蓝桥杯官方。unsigned原创 2021-10-07 19:02:12 · 1633 阅读 · 2 评论 -
蓝桥杯——单片机学习(5(1)——按键(独立按键))
注:此单片机型号为STC15F2K60S2.独立按键原理这是一个矩阵按键的电路图,要使得其进入独立按键模式,就要把跳线帽连接2、3.(注:跳线帽是外部可移动的元件。)此时,即为独立按键模式。按键原理:以S7按键为例,其左端连接接地,右端连接P30,由于一开始所有P口都默认为高电平,则只要检测到P30为低电平,则说明按键S7被按下。消抖:当按键被按下的时候,电路导通接地,I/O口为低电平;当按键未被按下时,电路断开,I/O口保持高电平。但一般的按键所用开关为机械弹性开关,当机械触原创 2021-10-07 14:35:17 · 2048 阅读 · 4 评论 -
蓝桥杯——单片机学习(4——数码管显示)
注:此单片机型号为STC15F2K60S2.简单介绍STC15F2K60S2的数码管是八位数码管,首先先看他们的接口。com接口:位选接口,用来选择第1—8位数码管,一次只能选中一个。当com接口为1时,选中。a——dp接口:段选接口,用来选择数码管上的对应横竖LED灯管。当为0时,选中。dp为右下角的点。注:所有的数码管的a—dp接口都是连在一起的。点亮原理位选与段选不分顺序,所以,当多次选中时,最好在每次位选之前“消隐”...原创 2021-09-23 23:49:10 · 4063 阅读 · 6 评论 -
蓝桥杯——单片机学习(3——点亮LED灯)
原理如图,发光二极管L1—L8共阳接法,VCC为电源正极,高电平。已知发光二极管正向导通反向截至,要使得二极管发光,就要让Q1—Q8为低电平。可控管脚为P00—P07,所以要输入P00—P07为低电平。为了让P0能够影响到Q1—Q8,就要使得锁存器M74HC573M1R导通,即要让管脚LE为高电平。又管脚LE与Y4C连接,所以Y4C也为高电平。又Y4C连接了一个或非门,或非门的输入端为Y4和WR。因为WR已用跳线帽与GND连接在了一起,GND为接地,所以WR为0(低电平)。根据或非门逻辑表格:原创 2021-09-20 19:56:58 · 7282 阅读 · 0 评论 -
单片机学习(2)
一:进制转换1.二进制转十进制:计算方法:从右向左依次乘上2的n次幂,n从零开始,^符号表示次幂1001 0110 1*2^7+0*2^6+0*2^5+1*2^4+0*2^3+1*2^2+1*2^1+0*2^0=1501000 0000 -2^7 -1281000 0010 -2^7+2^1 -1260111 1111 2^7-1 1272、十进制转二进制:计算方法:十进制转二进制就是二进制转十进制的逆过程。拿十进制150来举例。150/2=75(余数为原创 2021-09-14 13:04:31 · 2653 阅读 · 0 评论 -
单片机学习笔记(1)。
一、单片机最小系统——即除去32个P接口的最小系统外围电路。 1 电源组; 2 晶振组; 3 复位组; 4 存储器选择脚;二、 电源组和晶振组1、电源组:(40脚和20脚)—— VCC是接电源的正极(常接的是5V电源);——VSS是接电源的负极(负极就是0V);2、晶振组:(18脚和19脚)——0592M晶振Y1与单片机的18,19脚并联.——22p电容C2一端接18脚,一端接地.——22p电容C3一端接19脚,一端接地.——作用:晶振作为一个载体(也可以说是运输原创 2021-09-13 12:03:26 · 467 阅读 · 1 评论