单片机交流
直播中

木頭瓶子

13年用户 557经验值
擅长:353304
私信 关注
[问答]

如何利用ATmega16开发板实现LED点灯?

如何利用ATmega16开发板实现LED点灯?

回帖(1)

卢家辉

2021-11-2 11:43:25
2、LED点灯

作为通用数字IO使用时,AVR单片机的IO具备读、写、修改功能。每个端口具有3个寄存器:DDRx、PORTx、PINx。
DDRx:1-输出,0-输入。当配置为输入时,PORTx=1,上拉使能,PORTx=0,高组态;配置为输出时,PORTx=1,输出高电平,PORTx=0,输出低电平。



图2- 1IO寄存器配置图
代码说明:
ØLED引脚宏定义
#define   MCU_LED                   DDRC
#define   MCU_LED_Port          PORTC
(如果只需单独定义某一位IO,则可通过_下划线来指定,如DDRC_DDC0,同理PORTC_PORTC0 = 1)
ØLED引脚初始化



ØLED_ON点亮LED,选择8位中的1位



其它说明见原工程,采用面向对象的结构体函数思维进行编程,提高C语言水平,与时代接轨。
仿真视频

/**
******************************************************************************
*   @file      main.c
*   @author    Alex——小白
*   @version   V1.0
*   @date      2021.1.20
*   @brief     LED 点灯
*   @store     Proteus仿真店子
*   @Link      https://shop484534014.taobao.com/
*   @Email     844545015@qq.com
******************************************************************************
*   @attention  All Rights Reserved  
**/


#include


void main( void )
{  
    LED.LED_Init(0xFF);        //ALL I/O OUTPUT
    while(1)
    {
        LED.LED_ON(0);          //LED0亮
        Delay.DelayMs(500);     //Delay 500ms
        LED.LED_OFF(0);         //LED0灭
        Delay.DelayMs(500);     //Delay 500ms
        
        LED.LED_Reverse(1);     //LED1取反        
    }
}

Proteus仿真店子
查看历史记录,第一篇LED点灯
举报

更多回帖

发帖
×
20
完善资料,
赚取积分