/* 添加包含芯片的头文件 */
#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();
}
}
如果觉得《点亮led灯c语言程序 求最简单点亮LED灯单片机c语言程序》对你有帮助,请点赞、收藏,并留下你的观点哦!