ATmega16开发板教程(2)——KEY点灯

发布者:缘到泉最新更新时间:2022-01-06 来源: eefocus关键字:ATmega16  开发板教程 手机看文章 扫描二维码
随时随地手机看文章

3、KEY点灯

KEY引脚的寄存器定义与LED相同,还是3个寄存器:DDRx、PORTx、PINx(具体介绍可参见LED点灯部分)。


DDRx:1-输出,0-输入。当配置为输入时,PORTx=1,上拉使能,PORTx=0,高组态,但要注意SDIOR的第三位引脚,用于禁止上拉,所以配置上拉时要注意,否则就是高组态。

图2- 2 SFIOR寄存器图


代码说明:


Ø定义3个按键引脚寄存器的对应比特位,再次提示,通过下划线来取该寄存器的bit位。

Ø按键初始化,同时允许上拉

Ø通过按键扫描程序来检测3个按键是否触发,若有返回对应的键值,否则返回0,这里面通过key变量来判断按键是否触发,检测效果更好

其它说明见原工程,同样采用面向对象的结构体函数思维进行编程,提高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);         //LED ALL OUTPUT

    KEY.KEY_Init();             //KEY 0/1/2 INPUT   

    

    while(1)

    {

        switch(KEY.KEY_Scan())

        {

            case 1:

                LED.LED_Reverse(0);     //LED0 翻转

                break;

            case 2:

                LED.LED_Reverse(1);     //LED1 翻转

                break;

            case 3:

                LED.LED_Reverse(2);     //LED2 翻转

                break;

            default:   

                break;            

        }

    }

}

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

  End Of File

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

关键字:ATmega16  开发板教程 引用地址:ATmega16开发板教程(2)——KEY点灯

上一篇:ATmega16开发板教程(3)——74HC595驱动数码管显示
下一篇:ATmega16开发板教程(1)——LED点灯

推荐阅读最新更新时间:2024-11-04 00:40

ATmega16单片机(AVR)主要特点总结
下面就总结一下AVR单片机ATmega16的主要特点: (注: 括号内有红色 *x* 符号的表示文章下方会有解释/扩展) 1) 采用 RISC 结构的AVR内核单片机. 131 条机器指令, 大多数指令为单个系统时钟周期执行的指令; 32 个 8 位通用工作寄存器; 全静态工作方式(Fully Static Operation). (*A*) 工作在 16 MHz 时具有 16 MIPS 的性能.(注: ATmega16L 系列最大工作频率为 8 MHz); 内部配备有 2 个时钟周期的硬件乘法器. 2)片内自带大容量, 非易失的程序和数据存储器 (*B*) 16KB 在线可编程(ISP, In-Sys
[单片机]
<font color='red'>ATmega16</font>单片机(AVR)主要特点总结
AVR单片机(ATMEGA16)矩阵键盘扫描程序
程序思路与缺陷参考:51单片机(AT89C52)矩阵键盘检测程序 #include iom16v.h typedef unsigned char uchar; typedef unsigned int uint; #define dula_h PORTD|=0x01 #define dula_l PORTD&=0xfe #define wela_h PORTD|=0x02 #define wela_l PORTD&=0xfd #define keyport PORTB #define keypin (PINB) #define keydre DDRB #define keystate0 0 //按键确认
[单片机]
AVR单片机(<font color='red'>ATMEGA16</font>)矩阵键盘扫描程序
B001-Atmega16-位域的汇编实现
------------------------------------------------------------------------------------------------------------------------------------- 开发环境:AVR Studio 4.19 + avr-toolchain-installer-3.4.1.1195-win32.win32.x86 芯片型号:ATmega16 芯片主频:8MHz ---------------------------------------------------------------------------------------
[单片机]
ATmega16 通用中断控制寄存器GICR
· Bit 1 – IVSEL: 中断向量选择 当IVSEL 为 0“ 时,中断向量位于Flash 存储器的起始地址;当IVSEL 为 1“ 时,中断向量转移到Boot 区的起始地址。实际的Boot 区起始地址由熔丝位BOOTSZ 确定。具体请参考P234“ 支持引导装入程序 – 在写的同时可以读(RWW, Read-While-Write) 的自我编程能力” 。 为了防止无意识地改变中断向量表,修改IVSEL 时需要遵照如下过程: 1. 置位中断向量修改使能位IVCE 2. 在紧接的4 个时钟周期里将需要的数据写入IVSEL,同时对IVCE 写”0” 执行上述序列时中断自动被禁止。其实,在置位IVCE 时中断就被禁止了,并一直
[单片机]
<font color='red'>ATmega16</font> 通用中断控制寄存器GICR
ATmega16 看门狗复位
看门狗定时器溢出时将产生持续时间为1 个CK 周期的复位脉冲。在脉冲的下降沿,延时定时器开始对tTOUT 记数。请参见P40 以了解看门狗定时器的具体操作过程。
[单片机]
<font color='red'>ATmega16</font> 看门狗复位
ATmega16计算器代码(数码管显示)
单片机源程序如下: /**********************************************************************/ /**计数器按键** (1) (2) (3) (4) (5) (6) (7) (8) (9) (0) (C) (=) (+) (-) (*) (/) 10:清零 11:确认 12:加 13:减 14:乘 15:除 **********************************************************************/ //头文件 #include iom1
[单片机]
基于ATmega16单片机的数字电子秤的设计
0 引言 随着电子技术和自动化测量技术的不断发展,传统的称重系统在功能、精度、性价比等方面已难以满足人们的需要,尤其在智能化、便携式、对微小质量的测量方面更显得力不从心。近年来,新型单片机的出现和集成电路技术的发展为更新产品设计,研制高性价比的称重控制器提供了条件。本设计采用AVR单片机为控制核心,结合电阻应变式压力传感器和相应的信号采集电路,设计出一种高精度、多功能、低成本的新型电子秤。 1 系统总体设计 首先由称重传感器采集因压力变化而产生的电压信号,通过A/D转换器将模拟信号转换为数字信号,把数字信号送入AVR单片机,单片机做相应的处理后,得到当前物体重量的数据,并通过LCD显示出来。系统硬件结构如图1所示。
[单片机]
基于<font color='red'>ATmega16</font>单片机的数字电子秤的设计
基于ATMEGA16的DS18B20测温程序
完整程序源代码下载:http://www.51hei.com/f/avrds.rar main函数: /* 程序功能:18B20测温结果在1602液晶上显示 作者:朱波 时间:2012年1月31日 说明:PA5为输入端口 18B20参数:测温范围:-55~+125℃,在-10~+85℃精确度为±5 通信方式:单总线 */ #include iom16v.h #include macros.h #include "delay.h" #include "display.h" #include "18B20.h" #define uchar unsigned char #define uint unsigned int ui
[单片机]
基于<font color='red'>ATMEGA16</font>的DS18B20测温程序
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved