查看: 918|回复: 11

[天问STC8]单片机学习笔记(20210713)——GPIO的基础知识

[复制链接]

6

主题

40

帖子

112

积分

注册会员

Rank: 2

积分
112
发表于 2021-7-14 00:27:06 | 显示全部楼层 |阅读模式
本帖最后由 陈畅南 于 2021-7-14 11:07 编辑

大家好啊,我是一名大二的学生,这个暑假开始学习单片机,使用的是天问的stc8板子和软件。虽然是计算机系的学生,但在计算机硬件上,我只有一些理论上的基础,直接动手实践单片机对我而言还是一件非常新鲜的事,学习过程中也可能遇到一些困惑,希望与论坛的各位互勉。


平时时间也不太多,所以我的笔记会聚焦于我认为遇到的难点,记录我对这些难点的理解和理解过程。


废话不多说,开始。

目录
1.基础知识
2.点亮cmp灯
3.四种模式的区别
4.寄存器的配置。




回复

使用道具 举报

6

主题

40

帖子

112

积分

注册会员

Rank: 2

积分
112
 楼主| 发表于 2021-7-14 00:28:08 | 显示全部楼层
本帖最后由 陈畅南 于 2021-7-14 11:11 编辑

基础知识
    由于之前没有系统学习过计算机的硬件,所以在学习GPIO前,先了解了一下三极管的原理。

1.三极管的原理:(1条消息) 三极管和MOS管工作原理详解_技术交流是便宜的的博客-CSDN博客_mos管工作原理
2.PN结:(1条消息) PN结的形成及PN结工作原理(单向导电)讲解_weixin_34023982的博客-CSDN博客
回复

使用道具 举报

6

主题

40

帖子

112

积分

注册会员

Rank: 2

积分
112
 楼主| 发表于 2021-7-14 00:30:14 | 显示全部楼层
本帖最后由 陈畅南 于 2021-7-14 11:28 编辑

点亮CMP灯

打开天问STC8板,设置有引脚P4_1,有四种模式可供选择,除了高阻输入,其他三种都是可以点亮cmp灯的,这里分别实验。

1.推挽输出点亮cmp灯。


单击运行,发现cmp灯可以正常点亮。

2.双向I/O口点亮cmp灯。

运行之后,cmp灯可以点亮,但是亮度比推挽输出要暗很多。

3.开漏输出点亮cmp灯

如果像推挽输出和I/O口那样配置,cmp灯并不会亮。

但是如果选择上拉电阻4k,则cmp灯会亮起。

那么,这四种模式到底有哪里不同?

2.PNG
1.PNG
5.PNG
4.PNG
3.PNG
回复

使用道具 举报

6

主题

40

帖子

112

积分

注册会员

Rank: 2

积分
112
 楼主| 发表于 2021-7-14 00:31:30 | 显示全部楼层
本帖最后由 陈畅南 于 2021-7-14 11:40 编辑

四种模式的区别
1.推挽输出。
推挽输出的电路是由一个NPN三极管和一个PNP三级管组成的。


Vin输入的是V+时,则Vout得到高电平。

Vin输入的是V-时,则Vout得到的是低电平

结合三极管的工作原理((1条消息) 三极管和MOS管工作原理详解_技术交流是便宜的的博客-CSDN博客_mos管工作原理),不难理解推挽输出如何达到可以清晰分别高电平输出和低电平输出的原理。


回复

使用道具 举报

6

主题

40

帖子

112

积分

注册会员

Rank: 2

积分
112
 楼主| 发表于 2021-7-14 00:32:55 | 显示全部楼层
本帖最后由 陈畅南 于 2021-7-14 11:51 编辑

2.开漏输出。
开漏输出也是利用三极管或者mos管的性质,进行输出。
在设置引脚P4_1为开漏输出时,如果没有加上上拉电阻。实际上电路相当于一个开集输出。


如果Vout这一端接的是cmp灯,可以发现在开集输出中,Vout实际上不会有电流通过
而如果加上一个上拉电阻

当Vin没有电流,Q5断开时,LED亮。
当Vin流入电流,Q5导通时,LED灭。
当然,在开漏输出电路中,上图中的所有三极管,时替换为MOS管的。开漏电路概念中提到的“漏”就是指MOS FET的漏极。开漏主要是为了获得更大的驱动而来的,一般外面需要加上拉电阻,或下拉电阻。开楼电路的内部所有上拉全部断开,若要使用,必须在外部加上拉电阻。这样的话,其驱动能力完全由设计人员决定。




回复

使用道具 举报

6

主题

40

帖子

112

积分

注册会员

Rank: 2

积分
112
 楼主| 发表于 2021-7-14 00:36:04 | 显示全部楼层
本帖最后由 陈畅南 于 2021-7-14 12:22 编辑

3.双向I/O口

对I/O口的理解,我主要参考了这个网站(51单片机IO口工作原理 (360doc.com)

如果抛开原理电路图,I/O口很容易理解,就是既可以输入又可以输出的口子。

回复

使用道具 举报

6

主题

40

帖子

112

积分

注册会员

Rank: 2

积分
112
 楼主| 发表于 2021-7-14 00:37:06 | 显示全部楼层
本帖最后由 陈畅南 于 2021-7-14 12:30 编辑

4.高阻输入。
理解高阻输入,先要理解数字电路中高阻态的这个概念。
<span]高阻态这是一个数字电路里常见的术语,指的是电路的一种输出状态,既不是高电平也不是低电平。
如果高阻态再输入下一级电路的话,对下级电路无任何影响,和没接一样,如果用万用表测的话有可能是高电平也有可能是低电平,随它后面接的东西定
高阻态这是一个数字电路里常见的术语,指的是电路的一种输出状态,既不是高电平也不是低电平。
如果高阻态再输入下一级电路的话,对下级电路无任何影响,和没接一样,如果用万用表测的话有可能是高电平也有可能是低电平,随它后面接的东西定。

在总线连接的结构上。总线上挂有多个设备,设备于总线以高阻的形式连接。这样在设备不占用总线时自动释放总线,以方便其他设备获得总线的使用权。 

大部分单片机I/O使用时都可以设置为高阻输入。高阻输入可以认为输入电阻是无穷大的,认为I/O对前级影响极小,而且不产生电流(不衰减),而且在一定程度上也增加了芯片的抗电压冲击能力。

回复

使用道具 举报

6

主题

40

帖子

112

积分

注册会员

Rank: 2

积分
112
 楼主| 发表于 2021-7-14 00:38:25 | 显示全部楼层
本帖最后由 陈畅南 于 2021-7-14 14:14 编辑

四、理解寄存器
寄存器是CPU的组成部分,用来暂存指令、数据、地址。但单片机的可操作寄存器一般都是特殊寄存器。每个寄存器中每个位都有特定功能,通过置位复位来控制。



上图是51单片机的存储器及寄存器目录。

理解寄存器的功能,要从cpu和内存的工作方式说起。
电脑中数据的运算流程:
CPU <— > 寄存器<— > 缓存<— >内存

CPU要取寄存器AX的值,只需要一步:把AX给我拿来,AX就拿来了。
CPU要取L1 cache的某个值,需要1-3步(或者更多):把某某cache行锁住,把某个数据拿来,解锁,如果没锁住就慢了。
CPU要取L2 cache的某个值,先要到L1 cache里取,L1说,我没有,在L2里,L2开始加锁,加锁以后,把L2里的数据复制到L1,再执行读L1的过程,上面的3步,再解锁。
CPU取L3 cache的也是一样,只不过先由L3复制到L2,从L2复制到L1,从L1到CPU。
CPU取内存则最复杂:通知内存控制器占用总线带宽,通知内存加锁,发起内存读请求,等待回应,回应数据保存到L3(如果没有就到L2),再从L3/2到L1,再从L1到CPU,之后解除总线锁定。

总结:大致来说数据是通过内存-Cache-寄存器,Cache缓存则是为了弥补CPU与内存之间运算速度的差异而设置的的部件。


(参考:(1条消息) 寄存器、内存和Cache的关系_WordHard的博客-CSDN博客

单片机中我们可以设置的大多为特殊寄存器。
7.PNG
回复

使用道具 举报

6

主题

40

帖子

112

积分

注册会员

Rank: 2

积分
112
 楼主| 发表于 2021-7-14 00:40:25 | 显示全部楼层
本帖最后由 陈畅南 于 2021-7-14 15:23 编辑

GPIO的设置实验

在单片机中,对寄存器的设置,是通过对引脚或是端口的设置完成的,接下来通过实验进行演示。


1、输入输出实验
通过P3_2控制cmp灯的亮灭。


c语言的编程:




c语言编程中,如何给引脚进行定义,主要通过对端口的定义和“|”、“&”符号。

像上图,给四个引脚分别定义不同的模式,与生成的C语言代码对比可知,“|”和“&”用于定义四种模式(也因为这两种符号只有四种排列,所以只有四种模式),而等于号后的十六进制代码则用于确定引脚,比如说“0x01”是第一个引脚。


8.1.PNG
8.2.PNG
9.1.PNG
9.PNG
回复

使用道具 举报

6

主题

40

帖子

112

积分

注册会员

Rank: 2

积分
112
 楼主| 发表于 2021-7-14 00:41:54 | 显示全部楼层
本帖最后由 陈畅南 于 2021-7-14 15:16 编辑

流水灯的实现方式
8颗led的芯片图如下,说明要实现流水灯,得在编程时对引脚按位取反。


1.第一个程序



c语言:


第二个程序:
通过移位的方式。




10.5.PNG
10.4.PNG
10.3.PNG
10.2.PNG
10.1.PNG
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|好好搭搭在线 ( © 好好搭搭在线 浙ICP备19030393号-1 )

GMT+8, 2024-3-28 20:41 , Processed in 0.339967 second(s), 25 queries .

Powered by Discuz!

© 2001-2024 Comsenz Inc.

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