2022年2022年汇编实验之矩阵键盘 .pdf

上传人:Che****ry 文档编号:33685195 上传时间:2022-08-12 格式:PDF 页数:9 大小:377.83KB
返回 下载 相关 举报
2022年2022年汇编实验之矩阵键盘 .pdf_第1页
第1页 / 共9页
2022年2022年汇编实验之矩阵键盘 .pdf_第2页
第2页 / 共9页
点击查看更多>>
资源描述

《2022年2022年汇编实验之矩阵键盘 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年汇编实验之矩阵键盘 .pdf(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、计算机工程系计算机原理实验报告1 计算机原理实验室实验报告课程名称:姓名学 号班 级成 绩设备名称及软件环境实验名称矩阵键盘实验日期一实验内容掌握 44 矩阵式键盘程序识别原理及44 矩阵式键盘按键的设计方法。二理论分析或算法分析用单片机的并行口P3 连接 44 矩阵键盘, 并以单片机的P3.0P3.3 各管脚作输入线,以单片机的P3.4P3.7 各管脚作输出线,在数码管上显示每个按键“0F”的序号。44 矩阵式键盘识别电路原理图:键盘中对应按键的序号排列:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - -

2、 - - - - 第 1 页,共 9 页 - - - - - - - - - 计算机工程系计算机原理实验报告2 电路硬件说明(1)在“单片机系统”区域中,把单片机的P3.0P3.7 端口通过8 联拨动拨码开关JP3 连接到“ 44行列式键盘”区域中的M1 M4,N1N4 端口上。(2)在“单片机系统”区域中,把单片机的P0.0P0.7 端口连接到“静态数码显示模块”区域中的任何一个 ah 端口上;要求:P0.0 对应着 a,P0.1 对应着 b,, ,P0.7 对应着 h。三实现方法(含实现思路、程序流程图、实验电路图和源程序列表等)1、44 矩阵键盘识别处理。2、每个按键都有它的行值和列值,

3、行值和列值的组合就是识别这个按键的编码。矩阵的行线和列线分别通过两并行接口和CPU通信。 键盘的一端 (列线) 通过电阻接VCC ,而接地是通过程序输出数字“ 0”实现的。键盘处理程序的任务是:确定有无键按下,判断哪一个键按下,键的功能是什么?还要消除按键在闭合或断开时的抖动。两个并行口中,一个输出扫描码,使按键逐行动态接地;另一个并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键,通过软件查表,查出该键的功能。3、程序流程图:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - -

4、 第 2 页,共 9 页 - - - - - - - - - 计算机工程系计算机原理实验报告3 4、汇编源程序:;定义单元 ; COUNT EQU 30H ;入口地址 ; ORG 0000H LJMP START ORG 0003H RETI ORG 000BH RETI ORG 0013H RETI ORG 001BH RETI ORG 0023H RETI ORG 002BH RETI ;主程序入口 ; ORG 0100H START: LCALL CHUSHIHUA LCALL PANDUAN LCALL XIANSHI LJMP START ;初始化程序 ; CHUSHIHUA: MO

5、V COUNT,#00H RET ;判断哪个按键按下程序; PANDUAN: MOV P3,#0FFH CLR P3.4 MOV A,P3 ANL A,#0FH XRL A,#0FH JZ SW1 LCALL DELAY10MS JZ SW1 MOV A,P3 ANL A,#0FH CJNE A,#0EH,K1 MOV COUNT,#0 LJMP DK K1: CJNE A,#0DH,K2 MOV COUNT,#4 LJMP DK K2: CJNE A,#0BH,K3 MOV COUNT,#8 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - -

6、 - - - 名师精心整理 - - - - - - - 第 3 页,共 9 页 - - - - - - - - - 计算机工程系计算机原理实验报告4 LJMP DK K3: CJNE A,#07H,K4 MOV COUNT,#12 K4: NOP LJMP DK SW1: MOV P3,#0FFH CLR P3.5 MOV A,P3 ANL A,#0FH XRL A,#0FH JZ SW2 LCALL DELAY10MS JZ SW2 MOV A,P3 ANL A,#0FH CJNE A,#0EH,K5 MOV COUNT,#1 LJMP DK K5: CJNE A,#0DH,K6 MOV C

7、OUNT,#5 LJMP DK K6: CJNE A,#0BH,K7 MOV COUNT,#9 LJMP DK K7: CJNE A,#07H,K8 MOV COUNT,#13 K8: NOP LJMP DK SW2: MOV P3,#0FFH CLR P3.6 MOV A,P3 ANL A,#0FH XRL A,#0FH JZ SW3 LCALL DELAY10MS JZ SW3 MOV A,P3 ANL A,#0FH CJNE A,#0EH,K9 MOV COUNT,#2 LJMP DK K9: CJNE A,#0DH,KA MOV COUNT,#6 LJMP DK KA: CJNE A,

8、#0BH,KB MOV COUNT,#10 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 9 页 - - - - - - - - - 计算机工程系计算机原理实验报告5 LJMP DK KB: CJNE A,#07H,KC MOV COUNT,#14 KC: NOP LJMP DK SW3: MOV P3,#0FFH CLR P3.7 MOV A,P3 ANL A,#0FH XRL A,#0FH JZ SW4 LCALL DELAY10MS JZ SW4 MOV A,P3

9、 ANL A,#0FH CJNE A,#0EH,KD MOV COUNT,#3 LJMP DK KD: CJNE A,#0DH,KE MOV COUNT,#7 LJMP DK KE: CJNE A,#0BH,KF MOV COUNT,#11 LJMP DK KF: CJNE A,#07H,KG MOV COUNT,#15 KG: NOP LJMP DK SW4: LJMP PANDUAN DK: RET ;显示程序 ; XIANSHI: MOV A,COUNT MOV DPTR,#TABLE MOVC A,A+DPTR MOV P0,A LCALL DELAY SK: MOV A,P3 ANL

10、 A,#0FH XRL A,#0FH JNZ SK RET ;10ms延时程序 ; DELAY10MS: MOV R6,#20 D1: MOV R7,#248 DJNZ R7,$ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 9 页 - - - - - - - - - 计算机工程系计算机原理实验报告6 DJNZ R6,D1 RET ;200ms延时程序 ; DELAY: MOV R5,#20 LOOP: LCALL DELAY10MS DJNZ R5,LOOP RET

11、;共阴码表 ; TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H ;结束标志 ; END 八、 C语言源程序#include unsigned char code table=0 x3f,0 x66,0 x7f,0 x39, 0 x06,0 x6d,0 x6f,0 x5e, 0 x5b,0 x7d,0 x77,0 x79, 0 x4f,0 x07,0 x7c,0 x71; void main(void) unsigned char i,j,k,key; while(1) P3=0 xff;

12、/给 P3 口置 1/ P3_4=0; /给 P3.4 这条线送入0/ i=P3; i=i&0 x0f; /屏蔽低四位 / if(i!=0 x0f) /看是否有按键按下/ for(j=50;j0;j-) /延时 / for(k=200;k0;k-); if(i!=0 x0f) /再次判断按键是否按下/ switch(i) /看是和 P3.4 相连的四个按键中的哪个/ case 0 x0e: key=0; break; case 0 x0d: key=1; break; case 0 x0b: key=2; break; case 0 x07: key=3; break; P0=tablekey

13、; /送数到 P0口显示 / 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 9 页 - - - - - - - - - 计算机工程系计算机原理实验报告7 P3=0 xff; P3_5=0; /读 P3.5 这条线 / i=P3; i=i&0 x0f; /屏蔽 P3 口的低四位 / if(i!=0 x0f) /读 P3.5 这条线上看是否有按键按下/ for(j=50;j0;j-) /延时 / for(k=200;k0;k-); i=P3; /再看是否有按键真的按下/ i

14、=i&0 x0f; if(i!=0 x0f) switch(i) /如果有 , 显示相应的按键/ case 0 x0e: key=4; break; case 0 x0d: key=5; break; case 0 x0b: key=6; break; case 0 x07: key=7; break; P0=tablekey; /送入 P0 口显示 / P3=0 xff; P3_6=0; /读 P3.6 这条线上是否有按键按下/ i=P3; i=i&0 x0f; if(i!=0 x0f) for(j=50;j0;j-) for(k=200;k0;k-); i=P3; i=i&0 x0f; i

15、f(i!=0 x0f) switch(i) case 0 x0e: key=8; break; case 0 x0d: key=9; break; case 0 x0b: key=10; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 9 页 - - - - - - - - - 计算机工程系计算机原理实验报告8 break; case 0 x07: key=11; break; P0=tablekey; P3=0 xff; P3_7=0; /读 P3.7 这条线上是否有按

16、键按下/ i=P3; i=i&0 x0f; if(i!=0 x0f) for(j=50;j0;j-) for(k=200;k0;k-); i=P3; i=i&0 x0f; if(i!=0 x0f) switch(i) case 0 x0e: key=12; break; case 0 x0d: key=13; break; case 0 x0b: key=14; break; case 0 x07: key=15; break; P0=tablekey; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - -

17、- - - - 第 8 页,共 9 页 - - - - - - - - - 计算机工程系计算机原理实验报告9 四实验结果分析(含执行结果验证、输出显示信息、图形、调试过程中所遇的问题及处理方法等)五结论报告提交日期(注意:内容写不下时允许表格添加新行。A4纸张(全班要求统一)边距上下左右2 厘米,表格要求满页,字体宋体5 号,固定单倍行距,文字部分用汉字排版格式,左对齐) (本备注允许删除)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 9 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁