- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
AVR I/O输入之矩阵按键扫描程序
系统功能
使用AVR扫描4*4矩阵按键,一旦扫描到按键被按,做岀被按的按键号指示。
硬件设计
AVR的I/O引脚配关于AVR的I/O
AVR的I/O引脚配
置表:
AVR I/O 口引脚配置表
DDRXn
PORTXn
PUD
I/O方式
内部上 拉电阻
引脚状态说明
0
0
X
输入
无效
二态(咼阻)
0
1
0
输入
有效
外部引脚拉低时输出电
流(uA)
0
1
1
输入
无效
二态(咼阻)
1
0
X
输出
无效
推挽0输出,吸收电流
(20mA)
1
1
X
输出
无效
推挽1输出,输出电流
(20mA)
wjj jXt nH: H-vcn.
rr,v ;
上
专 *
w\b:
£^nrr
1刖処那r
w Enr
AVF主控电路原理图
JOTTED 1-
■nti.TD]寸
lfJTi/FD33-
1CF/PM
LED控制电路原理图
4*4矩阵按键扫描电路原理图
软件设计
//目标系统:基于AVR单片机
//应用软件:ICC AVR
/*01010101010101010101010101010101010101010101010101010101010101010101
实验内容:
循环扫描PA 口接入的按键,并使用 PB 口的LED指示灯指示按键的码值。
硬件连接:
将PB 口的LED指示灯使能开关切换到ON状态,使其指示按键的码值。
MatrixKeyBoard : K0----K7
I I
SMK1632: PA0--PA7 注意事项:
ICC_H文件夹拷到D盘
ICC_H文件夹拷到D盘
SMK系列SMK1632说明资料”
(2)请详细阅读:光盘根目录下的“产品资料开发板实验板 10101010101010101010101010101010101010101010101010101010101010101010*/
#include iom16v.H
#include D:ICC_HCmmICC.H
#define LED_DDR DDRB
#define LED_PORT PORTB
#define KEY_DDR DDRA
#define KEY_PORT PORTA
#define KEY_PIN PINA
/*
程序名称: 4*4 按键扫描程序 程序功能:键盘扫描 注意事项:
提示说明:
输 入:
返 回:
*/
/*
TOC \o 1-5 \h \z K4 K5 K6 K7
| | | |
03H 02H 01H 00H - K0
07H 06H 05H 04H - K1
0BH 0AH 09H 08H - K2
0FH 0EH 0DH 0CH -K3
*/
const uint8 setSta_[4]={0xfe,0xfd,0xfb,0xf7};
const uint8 getSta_[4]={0x70,0xb0,0xd0,0xe0};
uint8 GetKeyVal()
{
uint8 i,j,getSta,keyVal;
for(i=0;i4;i++)
{
KEY_PORT = setSta_[i];
delay50us(1);
if(KEY_PIN!=setSta_[i])
{
getSta=KEY_PIN0xf0;
for(j=0;j4;j++) if(getSta==getSta_[j])
{
keyVal=j+i*4;
return keyVal;
}
}
}
return 0xFF;
}
/*
程序名称:
程序功能:
注意事项:
提示说明:
输 入:
返 回:
*/ void main()
{
uint8 keyVal;
LED_DDR = 0XFF;
KEY_DDR = 0X0F;
while(1)
{
keyVal = GetKeyVal();
if( keyVal!=0xFF )
LED_PORT = keyVal;
}
}
系统调试
(1)按键,观察LED的指示。
( 2 )去除“ delay50us(1); ”观察效果
您可能关注的文档
最近下载
- 《低钠血症的中国专家共识(2023)》解读PPT课件.pptx VIP
- 初中语文通用版 现代文阅读答题技巧(公式化模板 + 完整版提分攻略).docx VIP
- 期刊合作办刊协议书.docx VIP
- 驭胜s350维修手册及电路图n351整车电路图全.pdf VIP
- 混凝土热工计算软件.xls VIP
- 小学信息技术教学计划.docx VIP
- 八 观察物体(二)(单元教学设计)苏教版 三年级上册数学2025版.pdf
- 七上语文常考必背重点知识梳理总结(答案版)【2024新版】.pdf VIP
- 最全面总工会招聘考试工会知识模拟试卷及答案(共五套).docx
- 2020年总工会招聘考试工会知识模拟试卷及答案(一).docx VIP
原创力文档


文档评论(0)