- 博客(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
原创 组合逻辑电路的分析与设计
根据设计任务的要求建立输入、 输出变量, 并列出真值表。然后用逻辑代数或卡诺图化简法求出简化的逻辑表达式。并按实际选用逻辑门的类型修改逻辑表达式。根据简化后的逻辑表达式, 画出逻辑图, 用标准器件构成逻辑电路。最后, 用实验来验证设计的正确性。使用中、 小规模集成电路来设计组合电路是最常见的逻辑电路。设计组合电路的一般步骤如图 3-1 所示。掌握组合逻辑电路的分析与设计。掌握真值表、逻辑函数表达式、卡诺图化简基本概念和方法。
2023-11-03 17:50:47 56
原创 二进制数原码-反码和补码的数字电路
当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关注的人