文件名称:LED电路图-51单片机c语言编程入门以及keil_uvision使用方法介绍(详讲版)
文件大小:5.88MB
文件格式:PDF
更新时间:2024-07-05 15:04:18
STM8S
图 3.1 LED电路图 3个 LED均是通过灌流驱动方式与 STM8的 I/O管脚相连,当 I/O输出低电平时,LED导通,LED 被点亮;当 I/O输出高点平时,LED截止,LED熄灭;当 I/O周期性的交替输出高电平、低电平,LED 就会闪烁。 3.4.1使用寄存器来控制 LED 通过前述章节对 GPIO相关寄存器以及 LED驱动原理的讲解,我们可以分析出,只需要将与 LED相 连的 PC3、PE0、PD3全部输出高电平,则 3个 LED均不点亮;将它们全部输出低电平,则 3个 LED全 部点亮。明白这一点后,我们可以想办法通过代码来实现 LED的闪烁。 首先,对与 LED相连的 GPIO进行初始化,将它们设置为推挽输出模式。具体代码为: void InitLED(void) { PC_DDR|=0x08;//设置 PC3为输出模式 PC_CR1|=0x08;//设置 PC3为推挽输出 PC_CR2|=0x00;//设置 PC3为 10MHz快速输出 PE_DDR|=0x01;//设置 PE0为输出模式 PE_CR1|=0x01;//设置 PE0为推挽输出 PE_CR2|=0x00;//设置 PE0为 10MHz快速输出 PD_DDR|=0x08;//设置 PD3为输出模式 PD_CR1|=0x08;//设置 PD3为推挽输出 PD_CR2|=0x00;//设置 PD3为 10MHz快速输出 } 在代码中出现的|=是在嵌入式 C语言开发中比较常用的位操作方式,PC_DDR|=0x08;这句代码用来将 PC_DDR寄存器的[3]位置位,而不影响寄存器的其他位。这句代码实质上是将 PC_DDR寄存器的值与 0x08 进行或操作,然后再赋值给 PC_DDR寄存器。