按键检测驱动实验报告.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式系统开发课程实验报告 PAGE 1 班级_08网络一班_ 学号__20080611052_ 姓名__袁晓洋___ 按键检测实验 [实验目的] 深入理解单片机IO输入的特性和编程方法 理解4×4键盘的工作原理和扫描原理 掌握利用单片机单IO口实现对4×4键盘扫描输入的方法 [实验内容] 采用单片机的IO口实现对4×4键盘的低电平扫描,将扫描输入的结果按照按钮与数码的对应关系显示到7段数码管上。 [实验步骤] 在此填写在proteus中的操作步骤,并附绘制的电路图 首先加入 根据课本121页,连接电路,一个P0端口连接按键,P2端口连接数码管,设置按钮,设置8个10K的电阻,如图所示: 在此填写keil C51代码并附详细注释 #include reg51.h 添加头文件 #define KEYP P0 定义键盘连接到P0 #define SEG7P P2 定义七段数码管连接到P2 Char code TAB[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80 ,0x98,0xa0,0x83,0xa7,0xa1,0x84,0x8e,0xbf,0x7f}; 0-9,a-f的显示 char disp=0x7f; 声明七段显示器初值只显示小数点 unsigned char scan[4]={0xef,0xdf,0xbf,0x7f}; 显示器及键盘的扫描码 void delay(int); 声明延迟函数 void scanner(void); 声明扫描函数 main() 主程序 { while(1) 无穷循环 { scanner(); 一直扫描键盘和显示七段显示器 } } void scanner(void) 扫描函数开始 { unsigned char col,row,dig; 定义变量col:列,row:行dig:显示位 unsigned char rowkey,kcode; 定义变量rowkey:行键值kcode:按键码 for(col=0;col4;col++) for循环扫描第col列 { KEYP=scan[col]; 高4位输出扫描信号,低4位输入行值 SEG7P=disp; 输出数字 rowkey=~KEYP0x0f; 读入KEYP值,取反,再相与消除高4位if(rowkey!=0) 若按键被按下 { if(rowkey==0x01) row=0; 说明第0行被按下 else if(rowkey==0x02) row=1; 说明第1行被按下 else if(rowkey==0x04) row=2; 说明第2行被按下 else if(rowkey==0x08) row=3; 说明第3行被按下 kcode=4*col+row; 计算出按键的号码 disp=TAB[kcode]; 将键值编码后写入最右侧 while(rowkey!=0) 当按钮未放开 rowkey=~KEYP0x0f; 再读入行键值 } delay(4); 延迟函数延迟4ms } } void delay(int x) 延迟函数 { int i,j; 声明变量i,j for(i=0;ix;i++) for(j=0;j600;j++); 延迟约5ms } [实验总结] 总结试验中遇到的问题和问题的解决方法。 刚开始做时在P2端口和数码管直接连接了电阻,而且总是不亮,后来通过老师的提醒,查看P2端口的内部构造知道了P2内部带有上拉电阻不用再加电阻,后来通过多次的尝试,完成了实验!

文档评论(0)

_______ + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档