- 博客(22)
- 收藏
- 关注
原创 STM32F103C8基于I2C协议的AHT20温湿度传感器的数据采集及OLED显示(HAL库方式)【AHT20】【U8g2】【STM32开发板】【STM32CubeMX】
I2C 通讯协议(Inter-Integrated Circuit)是由 Phiilps 公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要 USART、CAN 等通讯协议的外部收发设备(那些电平转化芯片),现在被广泛地使用在系统内多个集成电路(IC)间的通讯。I2C只有一跟数据总线 SDA(Serial Data Line),串行数据总线,只能一位一位的发送数据,属于串行通信,采用半双工通信。
2024-06-23 15:13:09
872
原创 STM32F103C8T6移植U8g2图形库及基于I2C协议的OLED显示(HAL库方式)【U8g2】【STM32开发板】【STM32CubeMX】
利用STM32F103的GPIO管脚、VCC和GND连接OLED屏的I2C接口,采用CubeMX设计一个HAL库程序框架,然后下载U8g2源码,针对STM32F103和0.96寸的I2C接口OLED屏,进行代码裁剪,然后移植到HAL程序程序中,完成OLED的显示。
2024-06-11 22:27:53
1523
原创 STM32F103C8移植uCOSIII并以不同周期点亮两个LED灯(HAL库方式)【uCOS】【STM32开发板】【STM32CubeMX】
将嵌入式操作系统uC/OSIII移植到STM32F103C8上,构建两个任务,两个任务分别以1s和3s周期对LED进行点亮—熄灭的控制。
2024-06-08 16:56:01
1052
原创 用STM32F103C8T6的定时器与PWM控制LED灯亮灭(HAL库方式)【STM32开发板】【STM32CubeMX】
本次实验学习了定时器和PWM的原理及应用。通过使用定时器PWM模式对输出的控制可以使LED实现呼吸效果,并控制其时间及亮度。
2024-05-31 22:35:14
2193
原创 用STM32F103C8T6点亮一组由3个不同色的LED组成的流水灯,以及用它的中断原理点亮两个LED灯(HAL库方式)【STM32开发板】【STM32CubeMX】
本次实验学习了使用HAL库方式,在STM32CubeMX建立项目和生成Keil项目并编写程序的方法。使用该方式明显比使用GPIO标准库的方式简便得多。
2024-05-24 20:06:37
1251
1
原创 用STM32F103C8T6的中断原理点亮一个LED灯(标准库方式)【STM32开发板】
计算机在执行程序过程中,当出现异常情况(断电等)或特殊请求(数据传输等)时,计算机暂停现行程序的运行,转向对这些异常情况或特殊请求进行处理,处理完毕后再返回到现行程序的中断处,继续执行原程序,这就是“中断”。中断是单片机实时处理内部或外部事件的一种机制。中断和异常其本质都是对主程序的“中断”。中断处理流程:中断请求、中断响应、中断服务和中断返回。单重中断的处理流程如下。多重中断的处理流程如下。本次实验学习了STM32的中断原理,并将其应用到点灯等简单操作中。
2024-05-19 19:24:17
1528
1
原创 用STM32F103C8T6点亮一组由3个不同色的LED组成的流水灯(寄存器地址方式)【Proteus】【STM32开发板】
本次实验在用STM32点亮一个LED灯的基础上拓展,了解了STM32时钟的控制方式,提高了我利用寄存器编写程序的能力。
2024-05-04 10:48:29
1193
原创 用51单片机的一个IO口模拟单总线时序与温度传感器DS18B20通信【Proteus】【普中51开发板】【Keil】
在学习温度传感器中,时序是非常重要的概念,理解它尤为重要。在之后的实操中,想让传感器工作首先就得写时序,所以还需要更加深入的学习。
2024-04-24 16:38:49
1340
1
原创 51单片机定时器与串口通信实验【Proteus】【普中51开发板】
利用T1的中断控制P1.7引脚输出频率为1kHz方波音频信号,驱动蜂鸣器发声。系统时钟为12MHz。方波音频信号周期1ms,因此T1的定时中断时间为0.5ms,进入中断服务程序后,对P1.7求反。实验电路如下图。
2024-04-22 13:40:57
1030
原创 在EdSim51虚拟开发板和普中51开发板上实现LED灯的周期性闪烁
以下是一个LED周期性闪烁的示例汇编程序。分号后为注释。该示例程序中 “MOV R6,#250” 和 “DJNZ R6,D2” 前者为单周期指令,在一个循环中,执行次数为250,周期数250,用时250μs;后者为双周期指令,在一个双重循环中,执行次数为250×250=62500,周期数为125000,用时125000μs。DELAY函数中 “MOV R7,#250”, “MOV R6,#250” 为单周期指令,前者执行1次,后者执行251次;
2024-03-24 19:17:19
909
1
原创 用汇编语言与C语言两种方式在EdSim51虚拟开发板上点亮一个LED灯,以及在Proteus中的类似仿真
汇编语言比较简单,因为LED0接在P1.0端口上,8051中P1.0的地址固定为90H,因此,对这个地址(指针)对应的寄存器写入立即数0(低电平),就可以使LED0电路导通,亮灯。对应的汇编命令是将该命令输入EdSim51并保存,刷新频率(update frequency)调整为10000或更高,运行,可使下方LED0灯亮,如下图。若输入以下汇编命令并保存,运行,可使下方LED0灯闪烁,如下图。
2024-03-16 19:09:09
1102
1
原创 用 Verilog 设计一个3-8译码器、一个多位全加器和一个16位算术逻辑单元 (ALU)
代码中的 n 表示位数,这里 n = 16.RTL 图(1位全加器内部已省略)与4位串行全加器类似。verilog 代码。verilog 代码。verilog 代码。verilog 代码。verilog 代码。verilog 代码。
2023-12-15 20:35:57
2031
原创 【Logisim】用与非门搭建RS和D型触发器
输入端:R: 复位端 (Reset)S: 置位端 (Set)无时钟输入端输出端:Q: 状态输出端非Q: 反向状态输出端输入信号 R, S 的作用方式:低电平有效。保证RS触发器正常工作必须满足的条件:R, S 不能同时为 0.
2023-11-20 20:54:45
2469
1
原创 【Multisim】编码器74LS148与译码器74LS138的逻辑功能及应用案例
74LS148是一种优先编码器,其逻辑功能如下:74LS138是一种译码器,其逻辑功能如下:以下为验证编码器74LS148和译码器74LS138的逻辑功能的一种方法。
2023-11-16 14:15:45
4397
1
原创 【Logisim】基于与非门设计的两种四路表决器
YABCBCDACDABDABCˉ⋅BCDˉ⋅ACDˉ⋅ABDˉˉ根据逻辑表达式画出逻辑电路:该电路也可用Logisim中的“分析组合逻辑电路”功能完成。
2023-10-30 16:41:43
3582
原创 一种基于“辗转相除法”的十进制数转二进制数的C++程序
辗转相除法,也称欧几里得算法,是求两个正整数最大公约数的常用方法。该算法基于以下原理:对于两个正整数a和b,其最大公约数等于b和a mod b的最大公约数。换句话说,我们不断将较大数除以较小数所得余数,直到余数为零为止。此时较小数即为原始两数的最大公约数。
2023-10-21 11:42:20
81
1
原创 【Ubuntu初学者推荐】在Ubuntu系统下用C语言编写一个简单的输出hello world程序并编译运行
在Ubuntu系统下编写程序可使用系统自带的vim编辑器。打开终端,输入vi并按Enter即可进入vim编辑器。若要创建代码文件,可在输入vi后再输入代码文件名(注意要输入扩展名,.c就是C语言文件),按Enter进入vim编辑器,如这里的helloworld.c。此时vim编辑器为命令模式,若编写程序,需按i或a进入编辑模式。在编辑模式中编写输出"hello world!"的C语言程序。编写完成后按Esc退出编辑模式回到命令模式,输入末行模式命令":wq"保存并退出编辑。
2023-10-20 16:29:43
944
1
原创 用Logisim设计一个1bit半加器电路、一个1bit全加器电路以及一个4位二进制数补码器电路
一个1bit半加器电路由一个异或门和一个与门构成。待相加的两个二进制数A, B分别输入异或门和与门的两个输入端,异或门输出A, B两个数的和,与门输出A, B两个数相加产生的进位数。
2023-10-19 16:50:32
1304
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人