《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 页 - - - - - - - - -