自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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点亮一个LED灯(标准库方式)【STM32开发板】

本次实验使用了标准库方式,重点在开发环境的搭建与配置上。

2024-05-12 20:12:53 3286

原创 用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

原创 51单片机中断系统与定时计数的应用实验【Proteus】【普中51开发板】

单片机对外设中断服务请求的整个中断响应和处理过程如下图。

2024-04-07 19:34:48 2258 2

原创 在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

原创 【Proteus仿真】用AT89C51单片机的外部引脚分别点亮1个LED灯和LED流水灯

电路图:运行结果:LED灯常亮。

2024-03-09 16:29:47 366

原创 用 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

原创 数字逻辑实验:基本逻辑门电路分析(74LS20和74LS00)

熟悉基本逻辑门电路的组合功能和方法。

2023-10-23 22:51:14 5535

原创 一种基于“辗转相除法”的十进制数转二进制数的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关注的人

提示
确定要删除当前文章?
取消 删除