单片机(MCU)
文章平均质量分 73
单片机(MCU)
Heismk
这个作者很懒,什么都没留下…
展开
-
【备份】A PAINLESS GUIDE TO CRC ERROR DETECTION ALGORITHMS
A PAINLESS GUIDE TO CRC ERROR DETECTION ALGORITHMS原创 2022-12-05 17:01:02 · 580 阅读 · 0 评论 -
Keil C51 - do { ... } while(0); 块的编译结果
Keil 版本信息:我经常在一些 C 8051 的程序中看到这样的代码块:do { ...} while(0);我在想,像 do { ... } while(0); 这样的代码块,Keil C51 编译器是如何处理的呢?于是,我创建了一个项目:在 main.c 文件中这样写:void main() { unsigned char i = 0; while (1) { do { i = 1; } w原创 2021-11-11 19:10:16 · 849 阅读 · 0 评论 -
JavaScript - 用于 Keil IDE中,格式化宏定义,在行末添加行连接符
<!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title>Keil Format</title> <style type="text/css"> * { margin: 0; padding: 0;原创 2021-10-26 14:53:23 · 223 阅读 · 0 评论 -
单片机 STC8H1K08-36I TSSOP20 - 低压检测
文章目录低电压检测寄存器描述原理图Keil 工程结构源文件STC-ISP 硬件选项测试参考STC8H1K08-36I 支持低电压检测:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Fzil2p5J-1634371005225)(image-20211016152157936.png)]低电压检测寄存器描述[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1k8P1Ez4-1634371005229)(image-2021101613441原创 2021-10-16 16:00:14 · 6218 阅读 · 1 评论 -
STC8H1K08 - GPIO 按键检测
文章目录不使用硬件或软件消抖的按键检测原理图Keil 工程结构源文件参考STC8H 系列单片机所有的 I/O 口均有 4 种工作模式:准双向口/弱上拉(标准 8051 输出口模式)、推挽输出/强上拉、高阻输入(电流既不能流入也不能流出)、开漏输出。注意:除 P3.0 和 P3.1 外,其余所有 I/O 口上电后的状态均为高阻输入状态,用户在使用 I/O 口之前必须先设置 I/O 模式。不使用硬件或软件消抖的按键检测原理图使用 3V 电源为单片机的供电;端口 P1.2 连接发光二极管原创 2021-10-08 11:05:27 · 7342 阅读 · 2 评论 -
STC8H1K08 - 掉电模式
文章目录掉电模式Keil 工程结构原理图使用外部中断 3 唤醒处于掉电模式的单片机STC-ISP 下载选项测试参考掉电模式STC8H1K08 进入时钟掉电模式,CPU 以及全部外设均停止工作。Keil 工程结构原理图单片机电源:3V;发光二极管 D1 用于指示是否进入掉电模式;按键 K1 用于控制单片机进入掉电模式;按键 K2 用于触发外部中断,使单片机退出掉电模式。使用外部中断 3 唤醒处于掉电模式的单片机main.c 文件:逻辑:按下按键 K1,熄灭发光二极管,然后使单原创 2021-09-27 17:08:10 · 7932 阅读 · 5 评论 -
STC8H1K08 - IDLE - 空闲模式
文章目录空闲模式Keil 工程结构原理图源代码STC-ISP 下载选项测试参考空闲模式单片机进入空闲模式,只有 CPU 停止工作,其他外设依然在运行。Keil 工程结构原理图单片机电源:3V;发光二极管 D1 用于指示是否进入空闲模式;按键 K1 用于控制单片机进入空闲模式;按键 K2 用于控制单片机退出空闲模式。源代码main.c 文件:逻辑:按下按键 K1,熄灭发光二极管,然后使单片机进入空闲模式。按下按键 K2 触发中断,使单片机退出空闲模式,在中断处理方法中点亮发光原创 2021-09-27 15:31:02 · 3120 阅读 · 0 评论 -
STC8H1K08 - INT4 - 下降沿触发外部中断 4
文章目录STC8H 外部中断 4 结构图下降沿触发外部中断 4工程结构原理图源代码STC-ISP 下载选项模块化工程结构源文件参考STC8H 外部中断 4 结构图下降沿触发外部中断 4工程结构原理图源代码main.c 文件:sfr INTCLKO = 0x8F;sfr P1 = 0x90; /* Port 1 Register */sfr P1M1 = 0x91; /* Port 1 Configuration Register 1 */sf原创 2021-09-27 10:35:41 · 1235 阅读 · 0 评论 -
STC8H1K08 - INT3 - 下降沿触发外部中断 3
文章目录STC8H 外部中断 3 结构图下降沿触发外部中断 3工程结构原理图源代码STC-ISP 下载选项模块化工程结构源文件参考STC8H 外部中断 3 结构图下降沿触发外部中断 3工程结构原理图源代码main.c 文件:sfr INTCLKO = 0x8F;sfr P1 = 0x90; /* Port 1 Register */sfr P1M1 = 0x91; /* Port 1 Configuration Register 1 */sf原创 2021-09-27 09:11:17 · 1419 阅读 · 0 评论 -
STC8H1K08 - INT2 - 下降沿触发外部中断 2
文章目录STC8H 外部中断 2 结构图下降沿触发外部中断 2工程结构原理图源代码STC-ISP 下载选项模块化工程结构源文件参考STC8H 外部中断 2 结构图下降沿触发外部中断 2工程结构原理图源代码main.c 文件:sfr INTCLKO = 0x8F;sfr P1 = 0x90; /* Port 1 Register */sfr P1M1 = 0x91; /* Port 1 Configuration Register 1 */sf原创 2021-09-27 08:56:11 · 2003 阅读 · 2 评论 -
STC8H1K08 - INT1 - 上升沿或下降沿触发外部中断
文章目录工程结构原理图按键 K1 用于触发外部中断 1main.c/** * Interrupt Registers Definition */sfr IE = 0xA8; /* Interrupt Enable Register *//** * Interrupt Registers Bits Definition *//** IE */#define GLOBAL_IE_EA (0x80)#define INT0_IE_EX1 (0x04)/**原创 2021-09-25 10:45:05 · 5434 阅读 · 0 评论 -
STC8H1K08 - INT0 - 下降沿触发外部中断 0
文章目录工程结构原理图按键 K1 用于触发外部中断 0main.c/** * Interrupt Registers Definition */sfr IE = 0xA8; /* Interrupt Enable Register *//** * Interrupt Registers Bits Definition *//** IE */#define GLOBAL_IE_EA (0x80)#define INT0_IE_EX0 (0x01)/**原创 2021-09-25 09:25:58 · 2662 阅读 · 0 评论 -
STC8H1K08 TSSOP20 - UART1 - Mode 1 - 使用 T2 做为波特率发生器
文章目录工程结构:原理图:main.c/** * Interrupt Registers Definition */sfr IE = 0xA8; /* Interrupt Enable Register */sfr IE2 = 0xAF;/** * Interrupt Registers Bits Definition *//** IE */#define GLOBAL_IE_EA (0x80)#define UART_IE_ES (0x10)/** IE原创 2021-09-23 20:50:14 · 1347 阅读 · 0 评论 -
STC8H1K08 - Timer 2 - 16-Bit Auto Reload
文章目录工程结构:原理图:main.c/** * Interrupt Registers Definition */sfr IE = 0xA8; /* Interrupt Enable Register */sfr IE2 = 0xAF;/** * Interrupt Registers Bits Definition *//** IE */#define GLOBAL_IE_EA (0x80)/** IE2 */#define T2_IE2_ET2 (0原创 2021-09-22 19:22:27 · 635 阅读 · 0 评论 -
STC8H1K08 - Timer 1 - Mode 0 - 16-Bit Auto Reload
文章目录工程结构:原理图:main.c/** * Interrupt Registers Definition */sfr IE = 0xA8; /* Interrupt Enable Register *//** * Interrupt Registers Bits Definition *//** IE */#define GLOBAL_IE_EA (0x80)#define T1_IE_ET1 (0x08)/** * Timer 1 Regis原创 2021-09-19 17:33:43 · 508 阅读 · 0 评论 -
STC8H1K08 - Timer 0 - Mode 0 - 16-Bit Auto Reload
文章目录工程结构:原理图:main.c/** * Interrupt Registers Definition */sfr IE = 0xA8; /* Interrupt Enable Register *//** * Interrupt Registers Bits Definition *//** IE */#define GLOBAL_IE_EA (0x80)#define T0_IE_ET0 (0x02)/** * Timer 0 Regis原创 2021-09-19 17:03:53 · 931 阅读 · 0 评论 -
在 VS Code 中安装 ESP-IDF、新建项目
文章目录环境安装 Espressif IDF v0.6.1 扩展安装 **ESP IDF** 等工具基于示例新建项目参考环境操作系统:Windows 10 x64关于 Visual Studio Code 开发环境:安装 Espressif IDF v0.6.1 扩展启动 Visual Studio Code,进入扩展市场,键入关键词 esp-idf 搜索、安装 Espressif IDF:安装 ESP IDF 等工具选择菜单 View > Command Palette…,在弹出的原创 2021-01-27 16:34:16 · 18150 阅读 · 17 评论 -
单片机 STC15W204S-35I SOP16 - UART,模式 1,使用定时器 2 作为波特率发生器
文章目录UART原理图模式 1下载、测试参考UART原理图模式 1配置:1 个起始位, 8 位数据, 1 个停止位;使用定时器 2 作为波特率发生器;允许接收、发送请求中断;将接收到的数据直接发回去,并反转 P1.1 端口的电平。工程结构:stc15w204s.h 头文件:声明有关 UART 和定时器 0 的特殊功能寄存器;声明有关 UART 和定时器 0 的特殊功能寄存器的位掩码;以及其他。#ifndef __STC15W204S_H#define __STC15原创 2021-08-02 15:43:12 · 2398 阅读 · 1 评论 -
STC15W204S-35I SOP16 - 定时器 2:16 位自动重装定时器
文章目录定时器 2原理图示例参考定时器 2原理图示例配置定时器 2:16 位自动重装定时器;时钟源等于内部系统时钟;允许其在计数溢出之后请求中断;每次中断反转一次 P1.1 的输出电平。main.c 文件:/** * STC15W204S-35I SOP16 * Timer 2 - 16 bit, auto-reload *//** * Interrupt Registers Definition */sfr IE = 0xA8; /* Interrupt Enab原创 2021-08-01 15:36:47 · 2964 阅读 · 0 评论 -
STC15W204S-35I SOP16 - 定时器 0,工作模式 0,16 位自动重装定时器
文章目录定时器 0原理图工作模式 0参考定时器 0原理图工作模式 0配置定时器 0:工作模式 0,16 位自动重装定时器;时钟源等于内部系统时钟;允许其在计数溢出之后请求中断;每次中断反转一次 P1.1 的输出电平。main.c 文件:/** * Interrupt Registers Definition */sfr IE = 0xA8; /* Interrupt Enable Register *//** * Interrupt Registers Bits De原创 2021-07-30 20:00:04 · 1989 阅读 · 0 评论 -
单片机 STC11L02E-35I - 读取 MCU ID,然后通过串口发送
文章目录读取 MCU ID,然后通过串口发送原理图示例参考读取 MCU ID,然后通过串口发送原理图示例main.c 文件:#include <reg51.h>#ifndef SYSTEM_CLOCK#define SYSTEM_CLOCK (1000000 * 12) // 12MHz#endiftypedef enum { FALSE = 0, TRUE = !FALSE} boolean;/** Bits definition of PCON */原创 2021-07-14 16:44:15 · 651 阅读 · 0 评论 -
单片机 STC11L02E-35I - 串口
串口工作方式 1配置串口:工作方式 1,8 位 UART,波特率可变;使用独立波特率作为串口的波特率发生器;允许串口发送或接收数据完成之后请求中断;直接将串口接收到的数据发送出去。main.c 文件:#include <reg51.h>#ifndef SYSTEM_CLOCK#define SYSTEM_CLOCK (1000000 * 12) // 12MHz#endif/** Bits definition of PCON */#define PCON_原创 2021-07-10 18:04:30 · 489 阅读 · 1 评论 -
单片机 STC11L02E-35I - 定时器 0:模式 1 和 模式 2
文章目录参考main.c 文件:#include <reg51.h>#ifndef SYSTEM_CLOCK#define SYSTEM_CLOCK (1000000 * 12) // 12MHz#endifsfr AUXR = 0x8E;/** Bits definition of AUXR register */#define AUXR_T0x12 0x80/** Bits definition of TMOD register */#define TMOD_T原创 2021-07-09 19:06:49 · 945 阅读 · 0 评论