ATmega16开发板教程(2)——KEY点灯
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点灯相关推荐
- ATmega16开发板教程(1)——LED点灯
2.LED点灯 作为通用数字IO使用时,AVR单片机的IO具备读.写.修改功能.每个端口具有3个寄存器:DDRx.PORTx.PINx. DDRx:1-输出,0-输入.当配置为输入时,PORTx=1 ...
- ATmega16开发板教程(8)——ADC
9.ADC 在将ADC之前,先聊聊其前因后果--由于计算机在自动控制.检测以及其他领域广泛应用数字电子技术,而大自然的信号全是模拟信号,如果通过计算机保存自然信号呢?那么就需要ADC(模数转换器An ...
- ATmega16开发板教程(4)——定时器
5.定时器 这里主要编写定时器0和1的定时功能,通过数码管显示. 定时器T0 首先T0是一个8位定时器,其主要由TCNT0(初值寄存器).TCCR0(控制寄存器). TCCR0:FOC0,WGM00, ...
- ATmega16开发板教程(5)——外部中断
6.外部中断 这里主要编写外部中断0和1的边沿触发,通过LED状态显示. 外部中断0 外部中断我们要知道的是:①如何触发?上升沿.下降沿还是高低电平:②外部中断使能:③中断服务函数的编写. AVR提 ...
- ATmega16开发板教程(7)——LCD1602
8.LCD1602 LCD1602作为最基础的字符型液晶显示屏,能过显示16x02=32个字符.那么时序的操作--读写是最主要的内容,今天就带大家一起读读时序. 在看时序图前,对LCD的引脚功能要了 ...
- ATmega16开发板教程(6)——串口通信
7.串口通信 串口通信的基本概念就是用一根线收RX和另外一根线发TX数据,那么什么时候发?什么时候开始收呢?例如,古时候的暗号--天王盖地虎.小鸡炖蘑菇,说完就开始交易. 串口通信最重要的参数就是波特 ...
- ATmega16开发板仿真教程——前言
1.基础知识 简单介绍单片机ATmega16的硬件资源,以及IAR软件使用,Proteus8.9仿真软件的基本操作. AVR单片机分类: ATtiny系列:tiny13/15/26属于低档,适合功能相 ...
- 厦门理工嵌入式开发LPC1768开发板教程
LPC1768开发板教程 注意:本文档基于LPC1768.h头文件和EZ1768.h头文件(在文档结尾附出) 文章目录 LPC1768开发板教程 1.GPIO 1.1 设置GPIO 1.2 设置输入输 ...
- LIVE MINI ESP32开发板教程系列(三)drv2605L模块+手机常用振动器实现117种震动效果
LIVE MINI ESP32开发板教程系列(三)drv2605L模块+手机常用振动器实现117种震动效果 LIVE MINI ESP32引脚图 手机振动器介绍 DRV2605L模块 硬件连线图 DR ...
最新文章
- ADC的有效位数和信纳比计算
- umi搭建react+antd项目(六)父子组件通讯
- js实现图片轮播效果
- wasm + ffmpeg实现前端截取视频帧功能
- 数据库系统(四)——触发器
- Hive的hiveserver2后台开启和关闭
- python关闭对象语法_Python基础及语法(七)
- 学好Python爬取京东知乎价值数据
- as3 转义html,html和xml中的转义字符在Flash as3中的用法浅析
- 微信改号?我用 Python 发现了六大隐藏秘密......
- 利用google closure管理javascript模块依赖
- 《JAVA程序设计基础(第3版)实验指导》pdf 附下载链接
- 小学三年级英语听力测试软件,小学三年级英语听力练习题及参考答案
- cad导出pdf_办公神器(四)完全免费cad批量打印软件,支持导出pdf
- log4j2-rce-cve-2021-44228 漏洞复现
- 软考中级嵌入式系统设计师备考攻略
- springboot基于微信小程序的在线办公系统+java+uinapp+Mysql
- 微信支付可能改变的六大行业
- 【LiteOS】小白进阶之系统移植配置解析
- 26 27 28 副词
热门文章
- Python中的文本替换
- java毕业生设计在线辅导答疑系统计算机源码+系统+mysql+调试部署+lw
- Python 通过URL打开图片的几种方式
- 关于Textview maxline=1 ellipsize=end 导致中英文数字混合分割错误的问题
- QImage 图像格式小结 Format_RGB32
- 如何有效地设置QTextEdit的背景
- Latex 表格整体居中(含实例)
- 今日头条 爬虫 java_爬虫实例:今日头条爬虫
- 如何在三天内使用Thinkphp搭建商城系统(一)
- 字符串匹配 - Overview