华大单片机教程

入门第二步——HC32L196点灯

LED又叫做发光二极管,是一种能够将电能转化为可见光的固态的半导体器件,它可以直接把电转化为光。注意LED具备单向导电性,所以注意正负极别接反了。引脚较长的就是正极,而引脚较短的就是负极。贴片式二极管在底部会有倒三角符号,一横的一边是正极,另一边是负极,三角形符号的边靠近的是正极,角靠近的是负极。

点亮LED灯的原理就是正极接高电平,负极接低电平。这里就要说到单片机驱动能力了。由于单片机的I/O口的结构决定了它灌电流能力较强,所以基本都采用低电平点亮led的方式。即单片机IO口接led负极,LED正极接高电平,考虑到安全性,再串联一个电阻。如果不加电阻限流,单片机引脚的输出电压将直接施加在LED发光管上,而发光管的导通电压都在2V以下,这会导致流过发光管的电流远远超过极限,要么烧坏单片机,要么烧坏发光管。
言归正传,本次项目的原理图如下:
在这里插入图片描述

根据原理图可看出,LED的正极接在VCC上,负极接在单片机上,单片机在初始化的时候如果不对引脚设计的时候,这个LED就被点亮了,因为引脚默认为低电平,在这里就处于导通状态。
下面看程序:
首先新建一个App_Gpio_Init.c和App_Gpio_Init.h文件,写程序得建立一个良好的习惯。
main.c

#include "main.h"

int main()
{
	App_LedInit();
	Gpio_WriteOutputIO(GpioPortA, GpioPin0, FALSE); //点亮LED
	while(1);
}


App_Gpio_Init.c

#include "App_Gpio_Init.h"

void App_LedInit(void)
{
    stc_gpio_cfg_t stcGpioCfg;	///定义结构体变量
    
    Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio, TRUE); ///< 打开GPIO外设时钟门控
    
    stcGpioCfg.enDir = GpioDirOut;				///< 端口方向配置->输出(其它参数与以上(输入)配置参数一致)
    stcGpioCfg.enPu = GpioPuDisable;			///< 端口上拉配置->不使能
    stcGpioCfg.enPd = GpioPdDisable;			///< 端口下拉配置->不使能
	stcGpioCfg.bOutputVal=TRUE;				 	///< 端口低电平驱动,初始化为高电平,使LED处于熄灭状态
    Gpio_Init(GpioPortA, GpioPin0, &stcGpioCfg); ///< GPIO IO LED端口初始化
}


循环点亮LED

#include "main.h"

int main()
{
	App_LedInit();
	
	while(1)
	{
		delay1ms(500);			//进来先延时500ms
		Gpio_WriteOutputIO(GpioPortA, GpioPin0, FALSE); //点亮LED
		delay1ms(500);			//再延时500ms
	}
}

本章完

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值