
51单片机完全学习
文章平均质量分 71
小A159
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
51单片机完全学习——红外遥控
红外接收头内部本身有一个反相,意思就是:平时发送方无信号时接收到的是1,发送方有发送载波时接收头引脚输出的是0,写代码的时候注意这一点。红外协议,你也可以理解成,他对0和1重新做了一些定义:560微秒的高电平加上1.69毫秒定义为逻辑1,560微秒的高电平加上560微秒的低电平定义为逻辑0。需要注意的是这里有一个反相,写代码一定要注意。简单点就是上面说的低电平其实是高电平,高电平其实是低电平。也就是下面的黑色部分其实是低电平,没有黑色的部分是高电平。原创 2024-10-27 10:23:04 · 1154 阅读 · 0 评论 -
51单片机完全学习——LCD1602液晶显示屏
通过看数据手册我们需要知道,这个屏幕每个引脚的定义以及如何进行发送和接收。通过下面这张图我们就可以知道,这些引脚和我们的编程是有关的,需要注意的是,这里我们在接线的时候,一定要把DB0-DB7接到同一个端口,意思就是要接P0就都接P0。这样方便我们直接去处理。我们这里使用的是并行数据传输,也就是说并不像我们之前学习的I2C和SPI接口,需要一位一位的接收和发送。这里的8位数据是同时进行传输的。因此时序上也会有一些区别。原创 2024-10-23 11:04:04 · 1960 阅读 · 0 评论 -
51单片机完全学习——AD转换
由于51单片机内部并没有AD转换的相关模块,因此使用外接外部芯片的方式,来进行AD转换的操作,我们使用的是XPT2046这个芯片来做的,这个芯片使用的是SPI的接口,主要有4根线来进行通讯:DCLK:外部时钟信号输入 CS:片选信号,低电平时芯片使能。针对上面的函数,其实你只需要使用最后一个就可以了,前面的函数都会在这个函数里面调用,需要注意的是,最后这个函数的输出量是采集到的12位的AD输出,还没有进行电压值的转换。对于程序里面的一些端口的定义,宏定义,函数声明等我就没有写在里面,自己补充就可以了。原创 2024-10-18 12:32:29 · 1142 阅读 · 0 评论 -
51单片机完全学习——定时器和计数器
定时器的本质是对脉冲进行计数,51定时器T0和T1是加法计数器。(需要注意定时时时间的设置为65535-需要定的时间)如果计数脉冲来自系统时钟,则为定时方式。如果技术脉冲来自单片机外部引脚,则为计数方式,每来一个脉冲加1。T0有4种模式,T1有3种方式。定时器相关寄存器:TCON、TMOD、TL0、TL1、TH0、TH1。其中MSB表示高位,LSB表示低位。具体的寄存器功能看数据手册就可以了,这里就不赘述了。原创 2024-08-06 17:56:29 · 663 阅读 · 0 评论 -
51单片机完全学习——独立按键
这种方式需要CPU不断地去检测用户的按键是否按下,CPU对于按键什么时候按下是未知的,因此就需要不断地去检测,而且检测的周期需要的时间不能太长,不然会错过用户的按键。也不能太短不然CPU的资源都会浪费在这个地方。原创 2024-07-27 16:41:18 · 1029 阅读 · 0 评论 -
51单片机完全学习——LED点阵
通过看下面的原理图我们发现,LED点阵的每个引脚并没有直接接在单片机的IO口上面,而是和74HC595芯片接在了一起,我们通过查看资料发现,74HC595芯片是一个串行输入转并行输出的一个芯片。那它是如何进行串行转并行的呢?首先这个芯片需要一定的时序才能正常工作,我们主要使用它的3个引脚,分别是RCLK(锁存时钟)、SCLK(移位时钟)、SER(串行采样输入)。原创 2024-07-27 11:57:44 · 2045 阅读 · 0 评论 -
51单片机第一课——点亮一颗LED灯
想让LED闪烁,他就不能一直亮着,需要亮一会,灭一会。但是单片机一旦运行起来他就得一直执行指令,因此我们可以让单片在这期间执行一些,没有意义的指令,这样就好像单片机,暂停了一会。流水灯无非就是,第1颗LED亮,延时一段时间然后灭,然后再让第2颗亮,延时一段时间,依次类推,就可以达到流水灯的目的。由于51单片机的端口可以支持,按8位直接进行操作,因此我们只需要进行如上的赋值即可,由于我们只连接了一根线,因此只有一颗LED是亮的。我们知道一颗LED我们给正极一个高电平,负极给一个低电平,这颗LED就可以亮。原创 2024-07-20 10:31:38 · 1753 阅读 · 0 评论