单片机概述
单片机,就是一种基于集成电路技术的微型计算机系统。相对于传统的PC机,单片机系统的体积小巧、功耗低、价格便宜。单片机的应用领域非常广泛,如军事、医疗、工业自动化等。
LED实验原理
LED(Light Emitting Diode,发光二极管)是一种半导体器件,是将电能转换成光能的固态发光器件。LED的发光原理是当电流通过半导体材料时,会释放出能量,导致靠近PN结的发光区产生发光现象,由此产生可见光量。LED可以用于电子产品的指示灯、背光、灯具等。
本文讲述的LED实验是通过单片机驱动LED的实验,主要是使用STM32单片机编写程序,通过单片机的IO口控制LED的亮灭。
实验步骤
1.硬件连接
将单片机和LED连接起来,STM32的GND(地)接在LED的负极,STM32的IO口接在LED的正极。
2.编写程序
选用Keil C语言编辑器,编写如下程序:
void delay(uint32_t time) //延时函数,time的单位为毫秒
{
uint32_t i = 0;
while(time--)
{
for(i = 0; i < 72000; i++);
}
}
int main(void)
{
GPIO_InitTypeDef GPIO_InitStructure;//定义 GPIO初始化结构体变量
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);//使能GPIOA时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;//将IO口定义为GPIO_Pin_8
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//将IO口定义为输出模式
GPIO_Init(GPIOA, &GPIO_InitStructure);//GPIO初始化
while(1)
{
GPIO_SetBits(GPIOA, GPIO_Pin_8);//LED亮
delay(100);//延时100ms
GPIO_ResetBits(GPIOA, GPIO_Pin_8);//LED灭
delay(100);
}
}
3.编译并下载程序
将编写好的程序编译生成hex文件,用ST-Link下载器烧写至STM32单片机上。
4.实验效果
当LED灯亮时,程序延时100ms,当LED灯熄灭时程序延时100ms,不断循环,实现LED灯的亮灭。
总结
LED实验是单片机初学者了解单片机IO口输出控制的基础实验。实验要点有:硬件的正确连接,程序的正确编写和程序的正确下载。
本实验使用的是STM32单片机,如果使用其他品牌的单片机,需要根据数据手册的IO口控制寄存器和位定义修改程序。
实验过程中需要注意的是,由于LED为单向电流元件,所以需要注意LED连接的极性,否则LED将不能正常工作。
本文来自投稿,不代表亲测学习网立场,如若转载,请注明出处:https://www.qince.net/mcuds-3.html
郑重声明:
本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
我们不承担任何技术及版权问题,且不对任何资源负法律责任。
如遇到资源无法下载,请点击这里失效报错。失效报错提交后记得查看你的留言信息,24小时之内反馈信息。
如有侵犯您的版权,请给我们私信,我们会尽快处理,并诚恳的向你道歉!