- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
AVR IO输入之独立按键检测程序
系统功能
使用AVR检测八个独立按键,一旦检测到按键被按,立马做出指示,非常牛(吹一下)!
硬件设计
关于AVR的I/O结构及相关介绍详见Datasheet,这里仅对作部分简单介绍,下面是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)
AVR主控电路原理图LED控制电路原理图独立按键电路原理图
软件设计
下面部分从TXT拷出,拷到网页,代码部分缺省了很多空格,比较凌乱,请谅解!//目标系统: 基于AVR单片机//应用软件: ICC AVR
/*01010101010101010101010101010101010101010101010101010101010101010101----------------------------------------------------------------------实验内容:循环扫描PA口接入的8位独立按键,并使用PD口的LED指示灯指示按键的码值。----------------------------------------------------------------------硬件连接:将PD口的LED指示灯使能开关切换到ON状态,使其指示按键的码值。SingleKeyBoard:K0----K7???????????????? |??? |SMK1632:?????? PA0--PA7----------------------------------------------------------------------注意事项: (1)若有加载库程序,请将光盘根目录下的“库程序”下的“ICC_H”文件夹拷到D盘(2)请详细阅读:光盘根目录下的“产品资料开发板实验板SMK系列SMK1632说明资料”----------------------------------------------------------------------10101010101010101010101010101010101010101010101010101010101010101010*/
#include iom16v.h#include D:ICC_HCmmICC.H
#define LED_DDR? DDRD#define LED_P0RT PORTD#define KEY_DDR? DDRA#define KEY_PORT PORTA#define KEY_PIN? PINA
/*--------------------------------------------------------------------程序名称:独立键盘扫描程序功能:注意事项:提示说明:输??? 入:返??? 回:--------------------------------------------------------------------*/void scanKey(){??? ??? KEY_PORT=0xFF;??//设置按键输出“1”,之后语句检测按键,若端口变为“0”,则表示被按?????? if(KEY_PIN==0xFE) ??//1111 1110 -- 说明最低位的按键可能被按??? {??????? delay50us(1);??//去抖??????? if(KEY_PIN==0xFE)?//1111 1110 -- 确认最低位的按键被按??????????? LED_P0RT=0xFE;?//进行LED指示??? }??? if(KEY_PIN==0xFD) ??//1111 1101 -- 说明最低位的按键可能被按??? {??????? delay50us(1);??//去抖??????? if(KEY_PIN==0xFD)?//1111 1101 -- 确认最低位的按键被按??????????? LED_P0RT=0xFD;?//进行LED指示??? }??? if(KEY_PIN==0xFB) ????? {??????? delay50us(1);??????? if(KEY
您可能关注的文档
- 2013年德国慕尼黑国际体育用品及运动时尚贸易博览会.doc
- 2013年年度成长总结报告.docx
- 2013年衢州市第四届运动会举重比赛总结.doc
- 2013年我国无纺布产量分析及区域分布.doc
- 2013年烟花爆竹从业人员培训计划.doc
- 保护我们的校园环境.doc
- 保龄球的曲线全中的问题_用伯努利方程解决生活中的实际问题.doc
- 堡塞达汽车用品会员章程.doc
- 北航《法理学》在线作业二.docx
- 北京交通大学棒球队队规.doc
- 小学科学:ESP8266智能插座电路原理与动手实践研究教学研究课题报告.docx
- 《金融开放浪潮下我国多层次监管体系构建与创新研究》教学研究课题报告.docx
- 区域教育质量监测中人工智能应用的数据质量分析与优化策略教学研究课题报告.docx
- 《金融科技监管中的数据治理与合规性要求》教学研究课题报告.docx
- 《3D打印技术在航空航天领域中的多材料制造与复合材料应用》教学研究课题报告.docx
- 《绿色金融发展中的政府职能与市场机制研究》教学研究课题报告.docx
- 《植物工厂多层立体栽培光环境调控技术对植物生长发育节律的调控机制探讨》教学研究课题报告.docx
- 销售团队年度业绩总结.docx
- 银行风险管理与金融危机防范.docx
- 银行网络攻击预警与快速响应机制.docx
文档评论(0)