单片机io口控制led实验报告
时间: 2023-08-16 10:04:29 浏览: 343
单片机io口控制实验报告.docx
本次实验旨在了解单片机控制IO口实现LED灯的亮灭。实验所用的单片机为STM32F103C8T6,IDE使用的是Keil uVision5,开发板为STM32F1开发板。
实验步骤如下:
1. 首先,在Keil uVision5中新建一个工程,选择适合的单片机型号,并设置工作频率为72MHz。
2. 在工程中添加一个.c文件,命名为“main.c”。
3. 编写程序代码。代码如下:
```c
#include "stm32f10x.h"
void Delay(uint32_t nCount);
int main(void)
{
RCC->APB2ENR |= RCC_APB2ENR_IOPCEN;
GPIOC->CRH &= ~(GPIO_CRH_MODE13 | GPIO_CRH_CNF13);
GPIOC->CRH |= GPIO_CRH_MODE13_0;
while (1)
{
GPIOC->BSRR = GPIO_BSRR_BR13;
Delay(1000000);
GPIOC->BSRR = GPIO_BSRR_BS13;
Delay(1000000);
}
}
void Delay(uint32_t nCount)
{
for (uint32_t i = 0; i < nCount; i++);
}
```
代码解释:
首先,我们需要在代码中包含STM32F10x.h头文件,以便使用单片机的IO口等资源。
然后,在main函数中,我们需要配置IO口。这里我们选择了C13口,将其设置为输出模式,并设置输出模式为推挽输出模式。
接下来,我们进入无限循环,通过IO口控制LED灯的亮灭。首先将C13口拉低,然后延时一段时间,再将C13口拉高,再延时一段时间,这样就实现了LED灯的闪烁。
最后,我们编写了一个简单的延时函数Delay,用于延时控制LED灯的亮灭时间。
4. 编译程序并下载到开发板上,即可看到LED灯闪烁。
实验结果:
经过实验,我们成功地控制了开发板上的LED灯进行闪烁。
总结:
本次实验主要是了解了单片机控制IO口实现LED灯的亮灭,通过使用Keil uVision5进行编程,我们成功地掌握了如何使用单片机控制IO口,并实现了一个简单的LED灯闪烁程序。
阅读全文