​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 <main.h>
​
void main(void)
{  LED.LED_Init(0xFF);         //LED ALL OUTPUTKEY.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
********************************************************/

如需Proteus和IAR安装包以及AVR编程参考手册,请关注公众号:

Proteus仿真店子

可通过查看历史记录,查看例程

(若需Proteus和IAR安装包以及AVR编程参考手册,后台回复:AVR;若需其它设计,后台回复:AVR设计

ATmega16开发板教程(2)——KEY点灯相关推荐

  1. ATmega16开发板教程(1)——LED点灯

    ​2.LED点灯 作为通用数字IO使用时,AVR单片机的IO具备读.写.修改功能.每个端口具有3个寄存器:DDRx.PORTx.PINx. DDRx:1-输出,0-输入.当配置为输入时,PORTx=1 ...

  2. ATmega16开发板教程(8)——ADC

    ​9.ADC 在将ADC之前,先聊聊其前因后果--由于计算机在自动控制.检测以及其他领域广泛应用数字电子技术,而大自然的信号全是模拟信号,如果通过计算机保存自然信号呢?那么就需要ADC(模数转换器An ...

  3. ATmega16开发板教程(4)——定时器

    5.定时器 这里主要编写定时器0和1的定时功能,通过数码管显示. 定时器T0 首先T0是一个8位定时器,其主要由TCNT0(初值寄存器).TCCR0(控制寄存器). TCCR0:FOC0,WGM00, ...

  4. ATmega16开发板教程(5)——外部中断

    ​6.外部中断 这里主要编写外部中断0和1的边沿触发,通过LED状态显示. 外部中断0 外部中断我们要知道的是:①如何触发?上升沿.下降沿还是高低电平:②外部中断使能:③中断服务函数的编写. AVR提 ...

  5. ATmega16开发板教程(7)——LCD1602

    ​8.LCD1602 LCD1602作为最基础的字符型液晶显示屏,能过显示16x02=32个字符.那么时序的操作--读写是最主要的内容,今天就带大家一起读读时序. 在看时序图前,对LCD的引脚功能要了 ...

  6. ATmega16开发板教程(6)——串口通信

    7.串口通信 串口通信的基本概念就是用一根线收RX和另外一根线发TX数据,那么什么时候发?什么时候开始收呢?例如,古时候的暗号--天王盖地虎.小鸡炖蘑菇,说完就开始交易. 串口通信最重要的参数就是波特 ...

  7. ATmega16开发板仿真教程——前言

    1.基础知识 简单介绍单片机ATmega16的硬件资源,以及IAR软件使用,Proteus8.9仿真软件的基本操作. AVR单片机分类: ATtiny系列:tiny13/15/26属于低档,适合功能相 ...

  8. 厦门理工嵌入式开发LPC1768开发板教程

    LPC1768开发板教程 注意:本文档基于LPC1768.h头文件和EZ1768.h头文件(在文档结尾附出) 文章目录 LPC1768开发板教程 1.GPIO 1.1 设置GPIO 1.2 设置输入输 ...

  9. LIVE MINI ESP32开发板教程系列(三)drv2605L模块+手机常用振动器实现117种震动效果

    LIVE MINI ESP32开发板教程系列(三)drv2605L模块+手机常用振动器实现117种震动效果 LIVE MINI ESP32引脚图 手机振动器介绍 DRV2605L模块 硬件连线图 DR ...

最新文章

  1. ADC的有效位数和信纳比计算
  2. umi搭建react+antd项目(六)父子组件通讯
  3. js实现图片轮播效果
  4. wasm + ffmpeg实现前端截取视频帧功能
  5. 数据库系统(四)——触发器
  6. Hive的hiveserver2后台开启和关闭
  7. python关闭对象语法_Python基础及语法(七)
  8. 学好Python爬取京东知乎价值数据
  9. as3 转义html,html和xml中的转义字符在Flash as3中的用法浅析
  10. 微信改号?我用 Python 发现了六大隐藏秘密......
  11. 利用google closure管理javascript模块依赖
  12. 《JAVA程序设计基础(第3版)实验指导》pdf 附下载链接
  13. 小学三年级英语听力测试软件,小学三年级英语听力练习题及参考答案
  14. cad导出pdf_办公神器(四)完全免费cad批量打印软件,支持导出pdf
  15. log4j2-rce-cve-2021-44228 漏洞复现
  16. 软考中级嵌入式系统设计师备考攻略
  17. springboot基于微信小程序的在线办公系统+java+uinapp+Mysql
  18. 微信支付可能改变的六大行业
  19. 【LiteOS】小白进阶之系统移植配置解析
  20. 26 27 28 副词

热门文章

  1. Python中的文本替换
  2. java毕业生设计在线辅导答疑系统计算机源码+系统+mysql+调试部署+lw
  3. Python 通过URL打开图片的几种方式
  4. 关于Textview maxline=1 ellipsize=end 导致中英文数字混合分割错误的问题
  5. QImage 图像格式小结 Format_RGB32
  6. 如何有效地设置QTextEdit的背景
  7. Latex 表格整体居中(含实例)
  8. 今日头条 爬虫 java_爬虫实例:今日头条爬虫
  9. 如何在三天内使用Thinkphp搭建商城系统(一)
  10. 字符串匹配 - Overview