键盘接口实验报告
更新时间:2024-02-29 15:04:01 阅读量: 综合文库 文档下载
实验六 键盘接口实验
姓名: 专业:通信工程 学号: 成绩: 一:实验目的
1 掌握keil c51和proteus软件联合仿真调试的方法; 2 掌握单片机的键盘接口电路 3 掌握单片机键盘扫描的原理 4 掌握键盘的去抖原理与处理方法 二:实验内容
1. 用proteus设计一个接盘接口电路,要求利用P1口接4*4矩阵键盘,通过74ls164接一
个共阴的数码管
2. 用中断方式编写程序,要求无按键按下时,数码管循环画8,有按键按下时产生中断显
示按键值0-f通过串行口输出,在数码管上显示3秒后返回,数码管继续画8。
3. 将P1口接7个独立按键,要求用定时扫描的方式检测按键,并显示按键值,其中要求
第七个开关计数。 三:实验原理及步骤 实验步骤
1.用proteus设计键盘接口电路;
2.在keil c51中编写控制程序,编译通过后,与proteus联合调试; 3.按动任意键,观察键是否能显示正确。 实验原理说明
矩阵键盘识别一般应包括一下几个内容: 1 判别有无按键按下
2 键盘扫描取得闭合的行列值 3 用计算法或查表法得到按键值
4 判断闭合键是否释放,如没释放则继续等待
5 将闭合键的按键值保存,同时转去执行该闭合键的功能 四:电路设计及调试 1.程序:
(1)矩阵键盘: #include
#define uchar unsigned char #define uint unsigned int uchar temp,key,num,n;
uchar code table1[]={0x01,0x21,0x61,0x65, 0x6d,0x7d,0x7d,0x7f}; uchar code table2[]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; uchar code KEY_TABLE[]={0xee,0xde,0xbe,0x7e, 0xed,0xdd,0xbd,0x7d, 0xeb,0xdb,0xbb,0x7b, 0xe7,0xd7,0xb7,0x77};
void delayMs(uint k) {uint i,j;
for(i=k;i>0;i--)
for(j=110;j>0;j--); }
void INT_0() interrupt 0 {EX0=0;
delayMs(20); EX0=1; P1=0xf0; if(P1!=0xf0) {delayMs(20); if(P1!=0xf0) {temp=P1; P1=0x0f; key=P1|temp; for(n=0;n<16;n++) if(key==KEY_TABLE[n]) {num=n;break;} } SBUF=table2[num]; while(!TI); TI=0;
delayMs(3000); } P1=0xf0; }
void main() {uchar m; SM0=0; SM1=0; EA=1; EX0=1; IT0=1; P1=0xf0; while(1)
{for(m=0;m<=7;m++) {SBUF=table1[m]; while (TI==0); TI=0; delayMs(500); } } }
(2)独立键盘: #include
#define uchar unsigned char #define uint unsigned int bit flag;
uchar key,num,n,m;
uchar code table1[]={0x01,0x21,0x61,0x65, 0x6d,0x7d,0x7d,0x7f};
uchar code table2[]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; uchar code KEY_TABLE[]={0xfe,0xfd,0xfb,0xf7, 0xef,0xdf,0xbf,0x7f,}; void delayMs(uint k) {uint i,j;
for(i=k;i>0;i--)
for(j=110;j>0;j--); }
void T_1() interrupt 3 {TH1=(65536-10000)/256; TL1=(65536-10000)%6; if(P1!=0xff) {delayMs(20); if(P1!=0xff&&flag==0) {key=P1; for(n=0;n<8;n++) if(key==KEY_TABLE[n]) {num=n;break;} if(num==7)
{SBUF=table2[m++]; if(m==7) m=0; } else {SBUF=table2[num];} flag=1; while(!TI);
TI=0;
delayMs(1000); } } else flag=0; }
void main() {uchar m;
SM0=0;SM1=0; EA=1;
ET1=1;TR1=1;
TH1=(65536-10000)/256; TL1=(65536-10000)%6; TMOD=0x10; while(1)
{for(m=0;m<=7;m++) {SBUF=table1[m]; while (TI==0); TI=0; delayMs(500); } } } 电
路图:
C222pfC1X122pfU1CRYSTAL19XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617U298RSRG8C1/->30102030405060718XTAL2C3920uFR11k293031RST12&1D4075605101103121301020406PSENALEEAP10P11P12P13P14P15P16P1712345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51net=02474LS1646U3:A74LS2112048124523P10P11P12P13P17P16P15P14
C222pfC1X122pfU1CRYSTAL19XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617U298RSRG8C1/->30102030405060718XTAL2C3920uFR11k293031RST12&1D4075605101103121301020406PSENALEEA12345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51net=02474LS164 2.调试
(一)矩阵键盘程序调试 1加载程序,点击仿真按钮;
2程序出现乱码,分析发现74LS164与数码管的高低位相连,但和编码的高低位不匹配,重新编码;
3调试矩阵键盘时,中断不执行,主函数没给P1口赋值,中断函数里if语句无法执行,在主函数里给P1口赋值后,中断函数里可以显示按键值零,其他的键值不显示; 4分析后发现应在中断里给P1口赋值,则键值正常显示; (二)独立键盘程序调试 1加载程序,点击仿真按钮;
2显示键值零后,只中断,不再显示键值,分析程序发现中断函数后面没给flag赋值,执行一次按键后,if语句不再满足条件,给flag赋零后,可正常显示。 3.实验结果及分析 (一) 矩阵键盘
无中断时,正常画8,中断产生时,可正确显示键值。 (二) 独立键盘
无中断时,正常画8,中断产生时,按按键0—6正确显示键值,按按键7逐次加1。
五:实验后的经验总结
1学习完理论知识后,通过实验可以发现新的问题,会对所学的知识有所思考,从而对所学知识理解并掌握。
2通过本次实验我理解了键盘的线反转法,定时扫描法,更加深刻地体会了for循环和if语句的用法。
正在阅读:
键盘接口实验报告02-29
人民日报评论员文章05-17
重庆十八中2018-2019学年八年级上学期期中考试数学试卷11-17
环境标准样品数值对照表(质控样)09-04
2017年北京大学中国语言文学系334新闻与传播专业综合能力之广告学概论考研冲刺密押题05-03
黑龙江省哈尔滨市第六中学2015届高三下学期第一次模拟考试理科综合试题 Word版答案06-01
通信:基金持仓2000年以来最低,看好通信一季度行情06-06
清洁工阿姨作文02-04
春联大全带横批02-19
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 接口
- 键盘
- 实验
- 报告
- C++程序设计上机题
- 苏教版初中二年级语文下册《送东阳马生序》教学设计
- 公路工程试验检测人员考试题 - --公路(试题)
- Protel总结报告
- 2018届毕业典礼暨学位授予仪式讲话稿:与时代同行向未来致敬
- 尔雅通识课程 大学生心理健康教育习题库
- 关于东方航空估值介绍 - 图文
- 气功修炼十奥妙
- 正己烷-正庚烷分离过程筛板精馏塔课程设计- 副本 - 图文
- 公开选拔副科级领导干部公共科目试题1
- 小学营养餐工作计划
- 内部管理审计增值功能探微
- 家长会
- 压力管道作业人员试题
- 应用文写作练习
- 舞蹈室设备项目可行性研究报告 - 图文
- 注册采矿(矿物加工)工程师考试大纲
- 10.23-宜昌合美通讯广场商户和销售人员管理规定
- 部编版人教版二年级语文上册看图写话专项练习
- 烤烟地膜覆盖与施肥技术