- 博客(57)
- 收藏
- 关注
原创 【STC8A8K64D4开发板】第3-10讲:SG90舵机驱动
1.学习目的1.了解SG90舵机的相关参数、控制方式。2.编程用PWM驱动SG90舵机,通过按键改变舵机旋转角度。
2024-08-03 15:22:10 746
原创 【STC8A8K64D4开发板】第3-9讲:手势识别(基于PAJ7620U2)
学习目的了解IK-PAJ7620U2手势识别传感器模块的功能。掌握IK-PAJ7620U2的I2C协议、操作流程,并编程实现配置IK-PAJ7620U2工作于接近检测和手势识别模式以及读取检测结果。
2024-08-01 16:18:31 855
原创 【STC8A8K64D4开发板】第3-8讲:超声波测距(基于HC-SR04)
一个用作发射器,当接收到“Trig”引脚的触发信号后对外发射40 KHz超声波脉冲,另外一个用作接收器,监听到发射器发射的脉冲后,“Echo”引脚将产生一个输出脉冲,该脉冲宽度为超声波发出到接收的时间,由此可确定脉冲传播的距离。Timer0用于测试回响信号高电平持续时间,这里我们需要计算一下,以确保Timer0的最大溢出时间大于回响信号高电平持续时间,这样,我们每次测量时,就可以让Timer0从0开始计数,测量完成后读出Timer0的计数值即可计算出时间,同时,还可以利用定时器的溢出中断判断测量是否超时。
2024-07-29 17:41:47 1145
原创 【STC8A8K64D4开发板】第3-7讲:声音探测传感器
1.学习目的1.了解声音探测传感器模块的作用。2.掌握单片机编程读取声音探测传感器模块引脚输出状态,从而判断周围环境声音强度有没有达到设置的阈值。
2024-07-25 15:46:04 1057
原创 【STC8A8K64D4开发板】第3-6讲:光照强度测量(基于BH1750)
学习目的了解BH1750光照强度传感器。掌握单片机编程使用BH1750的连续高分辨率模式和单次高分辨率模式下测量光照强度。
2024-07-15 14:17:47 892
原创 【STC8A8K64D4开发板】第3-5讲:人体红外感应传感器
学习目的了解人体红外感应传感器的功能。掌握单片机编程读取人体红外感应传感器数字输出状态,从而判断有没有人。
2024-07-15 11:20:50 1078
原创 【STC8A8K64D4开发板】第3-4讲:雨滴传感器检测雨水
1.学习目的1.了解雨滴传感器的功能。2.掌握单片机编程读取雨滴传感器数字输出和模拟输出,从而判断有没有下雨。
2024-07-13 14:46:21 884
原创 【STC8A8K64D4开发板】第3-3讲:LCD1602液晶显示模块的应用
1.学习目的1.了解LCD1602显示模块涉及到的3种存储器:CGROM、CGRAM和DDRAM。2.掌握LCD1602显示模块的显示原理:DDRAM和字符显示区域是如何对应的,写DDRAM时写入的数据和显示的字符如何关联起来的。3.根据LCD1602显示模块的读写时序和指令集,编写LCD1602显示模块的驱动程序。
2024-07-13 14:32:58 860
原创 【STC8A8K64D4开发板】第3-2讲:温湿度传感器DHT11
学习目的了解DHT11数字温湿度传感器的基本原理及其数据格式。掌握STC8A8K64D4与DHT11单总线通信的程序设计,通信步骤,数据校验等。
2024-06-19 15:37:44 835
原创 【STC8A8K64D4开发板】第3-1讲:温度传感器DS18B20
1.学习目的1.了解DS18B20数字温度传感器的基本原理及其数据格式。2.掌握STC8A8K64D4与DS18B20单总线通信的程序设计,通信步骤,数据校验等。
2024-06-18 15:52:57 1096
原创 【STC8A8K64D4开发板】第2-19讲:4×4矩阵按键识别
单片机设计中,按键作为一种常用的人机接口被广泛应用,在家用、娱乐、工控等设备上都可以见到按键的应用。我们最常用的两种按键接入方式是独立按键和矩阵按键。
2024-03-21 17:00:53 1434
原创 【STC8A8K64D4开发板】第2-18讲:直接存储器访问(DMA)
DMA全称是Direct Memory Access,即直接存储器访问。DMA的作用是从一个地址空间在无需CPU干预的情况下将数据“搬运”到另一个地址空间,由此实现外设和存储器之间或者存储器和存储器之间的高速数据传输。
2024-03-20 16:16:37 1158
原创 【STC8A8K64D4开发板】第2-17讲:PCA实现数模转换(DAC)
DAC (全称是Digital to Analog Convertor)数模转换器是一种将数字信号转换为模拟信号(以电流、电压或)的设备或电路。在很多数字系统中(例如计算机、单片机),信号以数字方式(0或者1)存储和传输,而数模转换器DAC可以将这样的信号转换为模拟信号,从而使得他们能够被外界(人或其他非数字系统)识别。数模转换器DAC的常见用法是在音乐播放器中将数字形式存储的音频信号输出为模拟的声音。
2024-03-20 14:16:13 1016 1
原创 【STC8A8K64D4开发板】第2-16讲:可编程计数器阵列PCA
PCA全称是可编程计数器阵列(Programable Counter Array),其中P表示可以编程控制、C表示计数器、A表示阵列,即有多路通道。他和我们前面学习的定时/计数器类似,对于初学者,可以把他理解为一个功能更加强大的定时/计数器。
2024-03-15 14:39:26 1397
原创 【STC8A8K64D4开发板】第2-15讲:脉宽调制PWM
另外, PWM 波形发生器为每路 PWM 又设计了两个用于控制波形翻转的计数器 T1/T2,可以非常灵活的控制每路 PWM 的高低电平宽度,从而达到对 PWM 的占空比以及 PWM 的输出延迟进行控制的目的。可设定 1~32767 之间的任意值作为 PWM 的周期,PWM 波形发生器内部的计数器从 0 开始计数,每个 PWM 时钟周期递增 1,当内部计数器的计数值达到[PWMCH,PWMCL]所设定的 PWM 周期时,PWM 波形发生器内部的计数器将会从 0 重新开始开始计数。即输出一定占空比的波形。
2024-03-11 15:54:57 954 2
原创 【STC8A8K64D4开发板】第2-14讲:I2C总线的应用
I2C数据传输如下图所示,在起始条件(S)后,发送从机地址,从机地址是7位,从机地址后紧跟着的第8位是读写位(R/W),读写位为0表示写,读写位为1表示读。按页写时如果地址跨页,会出现如下图所示的情形:我们期望从地址0x04开始连续写入“A B C D E F”6个数据,但是实际写时,因为写地址增加到0x07后自动复位到0x00,所以实际写入的地址0x04~0x07写入“A B C D”4个数据,地址0x00和0x01写入“E”和“ F”2个数据。如下图所示,按页写时如果地址没有超过当前页面,写入正确。
2024-03-09 16:45:05 766
原创 【STC8A8K64D4开发板】第2-13讲:SPI总线的应用
SPI的4种模式中,最常用的是模式0和模式3。正是由于SPI有4种通信模式,因此当我们使用SPI总线时,需要去查询SPI总线中主机设备(如STC8A8K64D4)和从机设备(如SPI Flash)的数据手册,确定他们支持什么模式,从而选择适合的通信模式。因为Flash的编程原理都是只能将各个bit由1写为 0,而不能将0写为1,因此在Flash编程之前,为了保证写入的正确性,必须将对应的扇区擦除,擦除操作会将该扇区的内容全部恢复为0xFF,这样执行写入操作就可以正确执行了。
2024-02-23 17:04:48 1072
原创 【STC8A8K64D4开发板】第2-12讲:数码管显示
这里,定义一个变量“ledseg_nod”用于记录数码管的位,每次刷新后“ledseg_nod”加1,到达8时,表示8位数码管全部刷新,“ledseg_nod”的值设置为0,开始新一轮刷新。开发板上使用的是8段数码管。位选是选择待操作的数码管,如开发板上的是8位数码管,位选就是选择8位数码管中的某一个。数码管驱动程序原理如下图所示,定义一个数组,该数组共有8个元素,分别用于保存8位数码管的段码,即数组中第1个元素用于保存8位数码管中第1位数码管的段码,第2个元素用于保存第2位数码管的段码,以此类推。
2024-02-20 17:20:24 965
原创 【STC8A8K64D4开发板】第2-11讲:模数转换ADC
但是在实际应用时,我们经常会用到多个ADC通道采样电压值,这时,我们可以使用轮询的方式对各个ADC通道进行采样,具体的实现流程如下图所示,即对当前ADC通道采样完成后,切换到下一个ADC通道,之后启动ADC转换并在转换完成后读取采样结果,如此轮询对使用的各个ADC通道采样,从而实现ADC多通道采样。主函数中调用ADC初始化完成ADC的初始化,之后在主循环中每500ms启动一次ADC转换,启动后一直查询ADC 转换结束标志位ADC_FLAG的值,直到ADC_FLAG置位,即ADC转换完成。
2024-02-05 10:58:52 1143
原创 【STC8A8K64D4开发板】第2-10讲:定时器/计数器
定时器和计数器实际都是通过计数器来计数,定时器是对周期不变的脉冲计数(一般来自于系统时钟),由计数的个数和脉冲的周期即可计算出时间,同时,通过一个给定的预期值(即比较值,对应预期的计数值,也就是预期时间),当计数值达到预期值时产生中断,这样就实现了定时,应用程序通过设置不同的预期值实现不同时长的定时。Timer配置为计数器之后,对应的引脚会连接到计数器,因此需要配置引脚的上拉电阻(如果没有外部上拉),之后设置计数寄存器的初值并根据需要开启中断,配置完成后,启动计数器即可。
2024-01-29 15:52:08 863
原创 【STC8A8K64D4开发板】第2-9讲:比较器
STC8A8K64D4单片机片内集成了比较器(Comparator),比较器有两个输入端IN+(正端输入端)和(负端输入端),可选择其中一个输入端作为参考点来比较,通常使用负端输入端(IN-)做为参考点,当正端输入端电压小于负端输入端时比较器输出低电平,反之输出高电平。开启比较器的上升沿和下降沿中断,上升沿中断产生后点亮指示灯D1,下降沿中断产生后熄灭指示灯D1。输入端通过“比较器控制寄存器1(CMPCR1)”的PIS位和NIS位配置,下面的代码配置了比较器的正向输入端为P3.7,反向输入端为P3.6。
2024-01-12 15:25:28 1139
原创 【STC8A8K64D4开发板】第2-8讲:片内存储器
每次编程完成后,IAP_ADDRL 和 EEPROM 命令寄存器IAP_CMD 的内容不变,即地址不会自动递增,因此,在连续的地址上批量写入数据时,需手动更新地址寄存器IAP_ADDRH 和寄存器 IAP_ADDRL 的值。每次读完成后,IAP_ADDRL 和 EEPROM 命令寄存器IAP_CMD 的内容不变,即地址不会自动递增,因此,在连续的地址上批量读出数据时,需手动更新地址寄存器IAP_ADDRH 和寄存器 IAP_ADDRL 的值。IAP方式读取数据时,第一个扇区的起始地址是0x0000。
2023-09-09 14:31:49 572 2
原创 「STC8A8K64D4开发板」第2-7讲:看门狗定时器
为了观察到复位现象,程序启动后,D1闪烁4次,指示系统启动,之后初始化并启动看门狗,每按动一次KEY1按键执行一次喂狗,如果连续在2.1秒内按动KEY1按键喂狗,系统不会复位,如果2.1秒内不按动KEY1按键喂狗,系统会复位重新启动,可以看到D1闪烁4次。看门狗定时器本质上是一个计数器,只不过这个计数器的作用是固定的,一旦计数值递增达到设定的值(向上计数)或者计数值递减到0(向下计数),即“超时”时,看门狗定时器产生复位信号,复位系统。配置完成后,看门狗使能位“EN_WDT”设置为1启动看门狗即可。
2023-08-11 15:51:32 351
原创 「STC8A8K64D4开发板」第2-6讲:串口通信
当数据的最高位移到移位寄存器的输出位置,紧跟其后的是第 9 位“1”,在他的左边各位全为“0”,这个状态条件,使 TX 控制单元作最后一次移位输出,然后使允许发送信号“SEND”失效,完成一帧信息的发送,并置位中断请求位 TI,即 TI=1,向主机请求中断处理。通常,我们会做一个软件缓存,在串口中断中接收数据存入到软件缓存,并定义一个变量用于记录串口接收的字节数(接收计数器),应用程序中可以通过查询接收计数器从而判断串口是否接收到数据,如接收到数据,则从缓存中取出数据进行处理。串口1接收中断请求标志位。
2023-07-01 17:10:07 1361
原创 「STC8A8K64D4开发板」第2-5讲:I/O中断
由于I/O中断的中断号都是大于31的,在 KEIL中无法直接编译,因此,根据宏晶科技提供的解决方法,我们可以借用0~31中断里面没有使用的中断号,在该中断的入口地址放一条跳转的代码,当该中断产生时,跳转语句执行,跳转到I/O中断服务函数,由此,解决中断号大于31,KEIL中无法直接编译的问题。I/O中断的中断号如下表所示,P0端口到P7端口的中断号为37~44,都是大于31的,而KEIL中支持的中断号为0~31,因此,I/O中断的中断服务函数如果使用他们的中断号是无法编译的。
2023-07-01 16:26:16 809
原创 【STC8A8K64D4开发板】——有源蜂鸣器鸣响控制
为了实现控制有源蜂鸣器的鸣响,我们的电路中就需要一个“开关”来实现有源蜂鸣器接通或断开电源。本实验中只需将STC8A8K64D4的引脚P2.0配置为推挽输出,并输出高低电平即可(高电平鸣响蜂鸣器,低电平关闭蜂鸣器鸣响),原理和LED实验一样,参见“第2-1讲:点灯实验”中GPIO部分的描述即可。本实验中,控制有源蜂鸣器的引脚P2.0没有和其他电路复用,因此,没有短接跳线帽的操作,用USB数据线将开发板连接到电脑即可。**代码清单:**beep_off函数。**代码清单:**beep_on函数。
2023-04-17 17:08:27 1215
原创 【STC8A8K64D4开发板】——新建工程模板之编译、下载、运行和仿真
【STC8A8K64D4开发板】——新建工程模板之编译、下载、运行和仿真
2023-04-08 10:48:57 1928
原创 【STC8A8K64D4开发板】——STC8A8K64D4开发板介绍
STC8A8K64D4系列单片机是宏晶公司(STC)2021年推出的宽电压工作范围的1T单片机,该系列单片机工作电压为1.9V~5.5V,相比STC15系列增加了I2C、LCM接口,所有IO口均可中断,增加了DMA外设,且ADC外设增加为3个引脚(AVcc、Agnd、AVref)提高了采集精度。
2022-11-24 09:51:08 3229
原创 【STC32G12K128开发板】——搭建开发环境
Keil C251是美国Keil公司(该公司2005年被ARM公司收购)出品的针对251微控制器系列兼容单片机C语言软件开发系统。
2022-09-20 13:43:31 11116 1
原创 【STC32G12K128开发板】——STC32G12K128开发板介绍
STC32G12K128开发板是艾克姆科技为初学者推出的一款高性价比的STC32开发平台。
2022-09-15 15:19:16 13520 3
原创 【STC8A8K64S4A12开发板】—4x4矩阵按键检测
版权声明:本文为博主原创文章,转载请附上原文出处链接。文章目录前言一、硬件电路设计1.矩阵按键检测介绍2.矩阵按键检测原理介绍二、软件设计1.矩阵按键扫描实验 – 指示灯闪烁1.1.工程需要用到的c文件1.2.头文件引用和路径设置1.3.编写代码1.4.硬件连接2.矩阵按键扫描实验 – 串口调试助手2.1.工程需要用到的c文件2.2.编写代码2.3.硬件连接总结前言今天介绍下STC8A8K64S4A12系列单片机4x4矩阵按键检测电路的工作原理、4x4矩阵按键检测的程序设计。一、硬件电路设计
2021-08-27 16:23:43 2500 3
原创 【STC8A8K64S4A12开发板】—RS485总线通信
版权声明:本文为博主原创文章,转载请附上原文出处链接。文章目录前言一、硬件设计1.开发板串口硬件电路2.RS485电气性能3.RS485通信协议4.RS485电路设计二、软件设计1.RS485总线数据收发实验(串口4)1.1.工程需要用到的c文件1.2.头文件引用和路径设置1.3.编写代码1.4.硬件连接总结前言今天介绍下STC8A8K64S4A12系列MCU串行口原理,掌握RS485总线通信的硬件原理,了解RS485总线通信的软件协议。一、硬件设计1.开发板串口硬件电路STC8A8K64
2021-08-12 11:21:46 3356
STC32G12K128单片机CAN程序
2022-09-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人