点亮led灯c语言程序,求最简单点亮LED灯单片机c语言程序

本文提供了一个简单的C语言程序,用于控制单片机点亮和熄灭LED灯。程序包括LED初始化、延时函数和主函数,实现依次点亮和熄灭四个LED灯的循环效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*    添加包含芯片的头文件    */

#include  /*  头文件 */

//由原理图得知,给LED一个低电平,LED亮。否则LED不亮。

#define         LED1_ON()         PD_ODR_bit.ODR0 = 0     //使LED1亮

#define         LED2_ON()         PD_ODR_bit.ODR2 = 0     //使LED2亮

#define         LED3_ON()         PD_ODR_bit.ODR3 = 0     //使LED3亮

#define         LED4_ON()         PC_ODR_bit.ODR4 = 0     //使LED4亮

#define         LED1_OFF()        PD_ODR_bit.ODR0 = 1     //使LED1灭

#define         LED2_OFF()        PD_ODR_bit.ODR2 = 1     //使LED2灭

#define         LED3_OFF()        PD_ODR_bit.ODR3 = 1     //使LED3灭

#define         LED4_OFF()        PC_ODR_bit.ODR4 = 1     //使LED4灭

/*******************************************************************************

**函数名称:void delay(unsigned int ms)     Name: void delay(unsigned int ms)

**功能描述:大概延时

**入口参数:unsigned int ms   输入大概延时数值

**输出:无

*******************************************************************************/

void delay(unsigned int ms)

{

unsigned int x , y;

for(x = ms; x > 0; x--)           /*  通过一定周期循环进行延时*/

for(y = 3000 ; y > 0 ; y--);

}

/*******************************************************************************

**函数名称:void InitLED()

**功能描述:初始化LED函数

**入口参数:无

**输出:无

*******************************************************************************/

void InitLED()

{

//初始化LED1

PD_DDR_bit.DDR0 = 1;    //设置端口PD->0的输入输出方向寄存器为输出方向

PD_CR1_bit.C10 = 1;     //推挽输出

PD_CR2_bit.C20 = 1;     //输出速度最大为10MHZ

//初始化LED2

PD_DDR_bit.DDR2 = 1;    //设置端口PD->2的输入输出方向寄存器为输出方向

PD_CR1_bit.C12 = 1;

PD_CR2_bit.C22 = 1;

//初始化LED3

PD_DDR_bit.DDR3 = 1;    //设置端口PD->3的输入输出方向寄存器为输出方向

PD_CR1_bit.C13 = 1;

PD_CR2_bit.C23 = 1;

//初始化LED4

PC_DDR_bit.DDR4 = 1;    //设置端口PC->4的输入输出方向寄存器为输出方向

PC_CR1_bit.C14 = 1;

PC_CR2_bit.C24 = 1;

}

/* 主函数 */

int main(void)

{

CLK_CKDIVR = 0x00;      //内部时钟为1分频 = 16Mhz

InitLED();              //调用LED初始化函数

while(1)

{

LED1_ON();

delay(1000);

LED1_OFF();

LED2_ON();

delay(1000);

LED2_OFF();

LED3_ON();

delay(1000);

LED3_OFF();

LED4_ON();

delay(1000);

LED4_OFF();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值