自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 温湿度采集与OLED显示

资料链接:http://www.aosong.com/class-36.html。官方代码使用的是PB14,PB15引脚需要修改对应的引脚才可以正常使用。了解AHT20芯片的相关信息,具体信息请到官方下载对应产品介绍文档。I2C1配置(接温度传感器模块)I2C2配置(接oled屏)

2024-06-23 20:37:25 294

原创 基于I2C协议的OLED显示(利用U82G库)

由于OLED是IIC接口,只留一个本次要用到u8g2_Setup_ssd1306_i2c_128x64_noname_f就好(如果是SPI接口,需要使用u8g2_Setup_ssd1306_128x64_noname_f这个函数),其它的可以删掉或注释掉。由于用到的u8g2_Setup_ssd1306_i2c_128x64_noname_f函数中,只调用了u8g2_m_16_8_f这个函数,所以留下这个函数,其它的函数一定要删掉或注释掉,否则编译时很可能会提示内存不足!2.精简U8g2库文件。

2024-06-11 21:25:39 390

原创 uc/OS-III多任务程序

其中两个task分别以1s和3s周期对LED等进行点亮-熄灭的控制;另外一个task以2s周期通过串口发送“hello uc/OS!将启动文件下图中的PendSV_Handler和Systick_Handler改为OS_CPU_PendSVHandler和OS_CPU_SysTickHandler。链接:https://pan.baidu.com/s/1PnPjS9vrpwOgGgeXGtoZhw。官网下载地址:https://www.silabs.com/developers/micrium。

2024-06-08 17:43:34 429

原创 定时器与PWM的LED控制

在STM32F103C8微控制器中,定时器(Timer)模块和PWM(脉冲宽度调制)模块是常用的功能模块之一,常用于控制和计时应用。在STM32F103C8微控制器中,PWM通常是通过定时器模块来生成的。通过配置定时器的工作模式为PWM输出模式,可以生成PWM信号。STM32F103C8微控制器通常有多个定时器模块,比如通用定时器(TIM1、TIM2、TIM3等)和高级定时器(TIM1)等。定时器可以配置为不同的工作模式,如计数模式、PWM输出模式、输入捕获模式等。

2024-05-31 15:19:13 252

原创 HAL库LED点灯

2.接上,再用GPIO端某一管脚接2个开关(用杜邦线模拟代替)。采用中断模式编程,当2分开关接高电平时,对应的两个LED灯停止工作(即停止周期性闪烁),接低电平时,恢复工作。了解并掌握HAL库函数开发方法。安装 stm32CubeMX,配合Keil,使用HAL库方式完成下列任务。1.重做上一个LED流水灯作业,用GPIO端口完成2只LED灯的周期闪烁。对stm32CubeMX进行安装配置,详细过程可以参考一下博客。2.2打开项目,添加必要的函数代码。2.1设置输出引脚和中断引脚。

2024-05-26 20:49:09 278

原创 中断编程入门

当中断请求发生时,处理器会根据中断号查找中断向量表,找到相应的中断处理函数的地址,并跳转到该地址开始执行中断服务程序。一旦中断被触发,处理器会暂停当前任务,跳转到中断服务程序,执行相应的操作。中断控制器:STM32芯片内部集成了一个中断控制器(Nested Vectored Interrupt Controller,NVIC),用于管理和分配中断优先级以及处理器的中断向量表。中断源:STM32芯片内部或外部的各种外设、模块或传感器都可以作为中断源,当其中的某个事件发生时,会触发相应的中断请求。

2024-05-19 20:51:15 277 1

原创 stm32串口通信入门

其中,RS-232是一种常见的串口通信标准,定义了数据通信的物理层和部分数据链路层规范。该标准在早期的计算机和外设中广泛使用,但随着技术的发展,逐渐被更先进的通信标准所取代。TTL(Transistor-Transistor Logic)电平则是一种常见的数字电平标准,适用于逻辑电路。TTL电平中,逻辑0通常被定义为低电平(约0至0.8V),逻辑1被定义为高电平(约2至5V)。RS-232标准使用负逻辑电平表示逻辑状态,即逻辑0为高电平(通常约+3至+15V),逻辑1为低电平(通常约-3至-15V)。

2024-05-12 22:52:18 1369

原创 stm32F103的LED亮灭之版本1(寄存器地址版)

1.STM32最小系统核心板(STM32F103C8T6,国际上称为 STM32 Blue Bill开发板) 的电路原理图,用Proteus 设计一个STM32最小系统板+LED流水灯实验原理图,仿真运行。2.用STM32最小系统核心板子出厂时已经焊接好了1个led灯完成流水灯。3、使用GPIO引脚,外接LED灯,编写程序让LED灯周期性亮灭。1、了解stm32f103c8t6最小核心板的主要引脚接口;2、掌握Keil 开发stm32程序的环境搭建和设置;将PA4、PB1、PC15的代码设置为。

2024-05-05 17:54:09 175

原创 单总线温度采集

3.1内容:利用DS18B20和L ED数码管实现单总线温度测量系统,原理电路见图如下。2、使用51单片机的一个 IO 口模拟单总线时序与温度传感器DS18B20通信,将检测的环境温度读取出来。2.1、初始化:主机发送初始化信号(拉低总线一段时间),传感器检测到后准备接收命令。2.3、数据传输:传感器将温度数据转换为数字信号,并通过1-Wire总线传输给主机。2.4、主机接收数据:主机接收并解析传感器发送的数据,以获取温度信息。2.2、发送命令:主机发送指令(如读取温度命令),传感器接收并执行。

2024-04-25 22:28:27 350

原创 单片机定时器与串口通信

乙机接收到的8位二进制数据有可能出错,需进行奇偶校验,其方法是将乙机的RB8和PSW的奇偶校验位P进行比较,如果相同,接收数据;1.用2位数码管显示计时时间,最小计时单位为“百毫秒”,计时范围0.1~9.9s。第2次按一下计时功能键时,停止计时,将计时的时间值送到数码管显示;将单片机串口与笔记本电脑串口模块相连,单片机每隔2秒发送“Hello C51”,笔记本电脑用串口助手软件接收。系统时钟为12MHz。方波音频信号周期1ms,因此T1的定时中断时间为0.5 ms,进入中断服务程序后,对P1.7求反。

2024-04-20 20:26:17 423

原创 中断与定时计数

3.电路见图如上图例2,设计一中断嵌套程序:要求K1和K2都未按下时,P1口8只LED呈流水灯显示,当按一下K1时,产生一个低优先级外中断0请求(跳沿触发),进入外中断0中断服务程序,上下4只LED交替闪烁。当显示5次后,再从外中断1返回继续执行外中断0中断服务程序,即P1口控制8只LED,上、下4只LED交替闪烁。设置外中断0为低优先级,外中断1为高优先级。要求K1和K2都未按下时,P1口的8只LED呈流水灯显示,仅K1(P3.2)按下再松开时,上下各4只LED交替闪烁10次,然后再回到流水灯显示。

2024-04-07 21:11:06 981

原创 汇编程序与周期性

指令时间:如果外部晶振频率为12MHz,则一个指令周期的时间大致为1μs,执行”MOV R6,#250执行了250次,其对应的时钟周期总数为250us执行“DJNZ R6,D2”执行了250x250=62500次,其对应的时钟周期总数为125000us,DELAY延迟函数总调用了1+250+62500+250=63001次,时钟周期总数为1+250+(62500+250)x2=125751us,约为126ms,则这个LED灯大约126ms才变化一次亮灭状态。如果结果等于零,则继续执行下一条指令。

2024-03-24 20:17:21 305 1

原创 基于SDCC和Edsim51的代码仿真

基于SDCC和Edsim51的代码仿真可以帮助我调试和验证单片机程序的功能,对于我们来说是一个很好的学习工具。

2024-03-16 19:29:35 1719

原创 用Proteus8软件设计一个LED流水灯电路

3.在保存生成main.c文件,再在keil中右键点击 Source Group 1 ,再点击 Add Existing Files to Group “Source Group 1”。选中刚刚创建的 main.c 文件,并点击 Add。1.回到Proteus软件的原理图内,双击 AT89C51 芯片后,在弹出的窗口的 Program File 一栏从刚才 keil 软件编译后的路径中添加 .hex 文件,再点击 OK。1.需要使用到AT89C51芯片、LED-YELLOW、8个10k的电阻、电源。

2024-03-10 22:43:27 492 1

原创 verilog编程基础练习

2.在 Verilog 中,reg 变量用于存储时序逻辑的状态信息,而 wire 变量用于传递组合逻辑的输出信号。在 3-8 译码器中,我们需要使用 reg 型变量来存储输出信号的状态,因为它们的值会随着时钟信号的变化而改变。因此,我们需要使用 reg 型变量来存储输出信号的状态。如果我们将输出信号定义为 wire 型变量,则编译器将其解释为组合逻辑,从而导致输出信号无法随着时钟信号的变化而改变。采用Verilog模块调用子模块的方式,用4个上面的“1位全加器”级联方式,构成一个“4位全加器。

2023-12-17 21:46:05 413 1

原创 触发器电路仿真与硬件实现

前面RS触发器当输入R=1,S=1的情况时,输出是不确定的状态,这种情况比较棘手。因此为了解决这个问题,又引入了D触发器。当CP为0时,无论D如何改变都不会影响Q的值,当CP为1时,Q始终与D的值相等。

2023-11-21 17:19:11 73 1

原创 编码器-解码器电路设计及Multisim软件仿真

此次学习让我们把数字逻辑电路应用到生活中,十分有用。

2023-11-16 14:28:59 91 1

原创 组合逻辑电路的分析与设计

根据设计任务的要求建立输入、 输出变量, 并列出真值表。然后用逻辑代数或卡诺图化简法求出简化的逻辑表达式。并按实际选用逻辑门的类型修改逻辑表达式。根据简化后的逻辑表达式, 画出逻辑图, 用标准器件构成逻辑电路。最后, 用实验来验证设计的正确性。使用中、 小规模集成电路来设计组合电路是最常见的逻辑电路。设计组合电路的一般步骤如图 3-1 所示。掌握组合逻辑电路的分析与设计。掌握真值表、逻辑函数表达式、卡诺图化简基本概念和方法。

2023-11-03 17:50:47 56

原创 基本逻辑门电路硬件验证与仿真分析

通过这次仿真模拟可以论证到该数字电路箱结果的真实性,让我们对知识也有充分的理解.

2023-10-25 19:27:20 339 1

原创 二进制数原码-反码和补码的数字电路

当A和B同时为1时,C等于1,其余都为零,逻辑关系为与。所以我们可以得到如下的逻辑表达式: 根据上述的真值表,当A和B相同时SUM为0,否则为1;当A和B同时为1时,C等于1,其余都为零,逻辑关系为与。(2) 负数的补码,将其原码除符号位外的所有位取反(0变1,1变0,符号位为1不变)后加1。比如10进制数值-15的二进制原码是10001111,其补码在8位二进制中是11110001,然而在16位二进制补码表示中,不足位数要用符号位补全,也就是1111111111110001。相加,输出一个结果位和。

2023-10-22 13:03:11 164 1

原创 在Ubuntu系统下用C语言编写一个简单的输出

这将在终端中打开一个文本编辑器,并创建一个名为 “hello.c” 的新文件。打开 VMware 虚拟机,启动 Ubuntu 操作系统。这将生成一个名为 “hello” 的可执行文件。终端将输出 “Hello, World!在 Ubuntu 上打开终端。保存文件并退出文本编辑器。

2023-10-21 21:15:30 83

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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