找回密码
 立即注册
楼主: z1r343l

“32位8051单片机原理及应用”学习 个人汇总

[复制链接]
  • 打卡等级:偶尔看看II
  • 打卡总天数:27
  • 最近打卡:2025-02-02 23:49:06
已绑定手机

1

主题

18

回帖

149

积分

注册会员

积分
149
发表于 2024-12-29 15:15:53 | 显示全部楼层

第七集:按键点灯 下

数组的使用

image-20241229152310920

程序部分

image-20241229151417253

测试部分

测试移位okciya

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:27
  • 最近打卡:2025-02-02 23:49:06
已绑定手机

1

主题

18

回帖

149

积分

注册会员

积分
149
发表于 2024-12-30 22:59:29 | 显示全部楼层

第八集:蜂鸣器的应用

蜂鸣器种类

有源与无源

image-20241230225703009

控制原理

image-20241230225802458

也就是高低电平控制dabing

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:27
  • 最近打卡:2025-02-02 23:49:06
已绑定手机

1

主题

18

回帖

149

积分

注册会员

积分
149
发表于 2024-12-30 23:04:02 | 显示全部楼层

第九集:数码管的静态使用

数码管

共阳共阴 的接法

image-20241230230124137

**也就是说,一个数码管是由8个led组成,8个led点亮的方式,如果是共阴(0)也就是端口0灭,如果是共阳(1)就是端口1灭,挺好速记ciya **

**先这样,还没实验箱,测试不了shuai **

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:27
  • 最近打卡:2025-02-02 23:49:06
已绑定手机

1

主题

18

回帖

149

积分

注册会员

积分
149
发表于 2025-1-5 22:31:39 | 显示全部楼层

第十集:数码管的动态使用

动态刷新

数码管动态刷新,也就是一位一位慢慢的刷新,但是人眼看不出来,利用视觉残留,动态刷新,

**我的想法是,利用一个for循环的嵌套,现扫描位码,再在每个位码内部扫描段码,从而达到数码管的刷新显示yiwen **

image-20250105221747721

因为最近花了一点时间整理,第十一集和第十集一起出

第十一集:定时器的使用

image-20250105222356680

**我觉得定时器的存在是为了防止程序的阻塞,delay会造成程序的卡死,定时器不会,但是我想到一个问题,定时器中断如果过于频繁的出发,并且中断内部程序的内容太长,我觉得会干扰中断以外的主程序,同时中断自己也会造成干扰,所以我推荐定时器中断尽量频率弄小一点,也就是周期弄大一点。dabing **

image-20250105222430735

定时器本质是加法计数器

image-20250105222607171

定时器模式的使用,利用isp可以轻而易举的生成想要的时间

image-20250105222718115

我整合了一下之前学的led 按键 和数码管,结合定时器的中断功能,我实现的数码管的闪烁以及按键的切换界面,led的亮灭。

以下是实现方式(接了别人的板子,实验箱还没有)

可能不太清楚,我是两个按键切换不同的界面,一个界面是F01-21bb,同时这个界面F01每秒闪烁一次,另一个界面是A 0;这两个界面led对应的位数也不一样

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:27
  • 最近打卡:2025-02-02 23:49:06
已绑定手机

1

主题

18

回帖

149

积分

注册会员

积分
149
发表于 2025-1-8 17:56:16 | 显示全部楼层
实验箱已到,过几天再记录,最近有点忙
截图202501081756139572.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:27
  • 最近打卡:2025-02-02 23:49:06
已绑定手机

1

主题

18

回帖

149

积分

注册会员

积分
149
发表于 2025-1-9 23:33:28 | 显示全部楼层

第十二集:计数器的使用

以定时器1计数寄存器为例

!image-20250109221523549

配置示例代码

上框为定时器中断函数,下框为定时器配置

image-20250109221834409

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:27
  • 最近打卡:2025-02-02 23:49:06
已绑定手机

1

主题

18

回帖

149

积分

注册会员

积分
149
发表于 2025-1-10 21:15:06 | 显示全部楼层

第十三集:简易多任务处理 上

程序模块化编写

创建程序文件三步

新建文件并保存

添加到工程

添加引用路径

引脚定义都在.h文件

sbit名称=P10;

#define名称P10

函数定义三步

定义

声明

调用

修饰符extern用在变量或者函数的声明前,用来说明“此变量/函数是在别处添加到工程定义的,要在此处引用”。

bdata位寻址变量的使用

主函数我把我的程序压缩成一套标准化流程xieyanxiao

image.png

其他文件如图所示

image.png

User就存放main和common所有的头文件

Driver存放底层驱动文件

App存放控制函数文件

COMM存放usb文件

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:27
  • 最近打卡:2025-02-02 23:49:06
已绑定手机

1

主题

18

回帖

149

积分

注册会员

积分
149
发表于 2025-1-16 20:22:11 | 显示全部楼层

第十三集:简易多任务处理

整合了smg数码管的程序,参考了官方demo的移位寄存器的方法,采用sprintf提取字符串的方法显示

image-20250116201103381

添加任务函数,也就是扫描数码管移位寄存器函数

image-20250116201234760

对于真正的显示,可以采用sprintf提取

image-20250116201308769

image-20250116202035238

回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-6 16:22 , Processed in 0.122611 second(s), 95 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表