数码管显示和键盘扫描实验资料_第1页
数码管显示和键盘扫描实验资料_第2页
数码管显示和键盘扫描实验资料_第3页
免费预览已结束,剩余7页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、天津机电职业技术学院教师备课纸实验三LED 数码管动态显示及4 X4 键盘控制实验一、实验目的1巩固多位数码管动态显示方法。2掌握行扫描法矩阵式按键的处理方法。3熟练应用 AT89S52 学习板实验装置,进一步掌握keil C51 的使用方法。二、实验内容使用 AT89S52 学习板上的 4 位 LED 数码管和 4 X 4 矩阵键盘阵列做多位数码管动态显示及行扫描法键盘处理功能实验。用P0 口做数据输出,利用P1 做锁存器74HC573 的锁存允许控制,编写程序使 4 位 LED 数码管按照动态显示方式显示一定的数字;按照行扫描法编写程序对 4 X 4 矩阵键盘阵列进行定期扫描,计算键值并在

2、数码管上显示。三、实验系统组成及工作原理1 4 位 LED 数码管和 4 X 4 矩阵键盘阵列电路原理图第页天津机电职业技术学院教师备课纸2.多位数码管动态显示方式IO(1)a b c d e f g dpa b c d e f g dpa b c d e f g dpa b c d e f g dpcomcomcomcomD3D2D1D0IO(2)说明 4 位共阴极 LED 动态显示 3456 数字的工作过程首先由 I/O 口( 1)送出数字 3 的段选码 4FH 即数据 01001111到 4 个 LED 共同的段选线上,接着由 I/O 口( 2)送出位选码 0111 到位选线上,其中数据

3、的高 4 位为无效的,唯有送入左边第一个 LED 的 COM 端 D3 为低电平 “0”,因此只有该 LED 的发光管因阳极接受到高电平 “1”的 g、d、c、 b、 a 段有电流流过而被点亮,第页天津机电职业技术学院教师备课纸也就是显示出数字3,而其余 3 个 LED 因其 COM 端均为高电平 “1”而无法点亮; 显示一定时间后,再由 I/O 口(1)送出数字 4 的段选码 66H 即 01100110到段选线上,接着由 I/O 口( 2)送出点亮左边第二个 LED 的位选码 1011 到位选线上,此时只有该 LED 的发光管因阳极接受到高电平 “1”的 g、f 、c、b 段有电流流过因而

4、被点亮,也就是显示出数字 4,而其余 3 位 LED 不亮;如此再依次送出第三个 LED 、第四个 LED 的段选与位选的扫描代码,就能一一分别点亮各个 LED ,使 4 个 LED 从左至右依次显示 3、4、5、6。3.4 X 4 矩阵式按键扫描处理程序行扫描法又称逐行零扫描查询法, 即逐行输出行扫描信号 “0”,使各行依次为低电平,然后分别读入列数据,检查此(低电平)行中是否有键按下。如果读得某列线为低电平,则表示此(低电平)行线与此列线的交叉处有键按下,再对该键进行译码计算出键值,然后转入该键的功能子程序入口地址;如果没有任何一根列线为低电平,则说明此 (低电平 )行没有键按下。接着进行

5、下一行的 “0”行扫描与列读入,直到 8 行全部查完为止,若无键按下则返回。有时为了快速判断键盘中是否有键按下,也可先将全部行线同时置为低电平,然后检测列线的电平状态,若所有列线均为高电平,则说明键盘中无键按下,立即返回;若要有一列的电平为低,则表示键盘中有键被控下,然后再如上那样进行逐行扫描。四、实验设备和仪器PC机一台AT89S52 单片机学习板、下载线一套五、实验步骤1按时实验要求编写源程序(实验前写)进行软件模拟调试。2软件调试好,连接硬件电路。第页天津机电职业技术学院教师备课纸3下载程序,进行硬件调试,观察数码管显示的情况,与设计的是否相同。六、实验参考程序1. 4 位 LED 数码

6、管动态显示扫描程序ORG 0000HMAIN:MOV 30H,#0;定义 4 个字节空间,放置待显示数字“1、 2、 3、4”MOV 31H,#1MOV 32H,#2MOV 33H,#3MOV P0,#00HDISP:MOV R0,#30H;把待显示数字首地址送给R0 寄存器MOV R1,#4;把 R1 作为显示数码管位数计数器MOV R2,#0FEH;把首位数码管的位选码暂存在R2 寄存器中MOV DPTR,#TAB ;把段选码存储空间的首地址给 DPTR LOOP1:MOV A,R0;把待显示数字的段选码提取出来MOVC A,A+DPTR;MOV P0,A;把段选码放在数据总线上SETB

7、P1.1;段选码锁存器的锁存允许置位NOPCLR P1.1MOV P0, R2;把位选码放在数据总线上SETB P1.2;位选码锁存器的锁存允许置位NOPCLR P1.2RL A;下一位待显示数码管位选码预处理MOV R2,AINC R0ACALL DEL;调用延时子程序DJNZ R1,LOOP1;4 位没有显示完,转去显示下一位第页天津机电职业技术学院教师备课纸SJMP DISP;4 位显示完,再次进行新一轮的扫描/* 定义段选码 */TAB:DB0C0H;0DB0F9H;1DB0A4H;2DB0B0H;3DB099H;4DB092H;5DB082H;6DB0F8H;7DB080H;8DB0

8、90H;9/* 延时 5ms 子程序 */DEL:MOV R7,#10LOOP2:MOV R6,#250DJNZ R6,$DJNZ R7,LOOP2RETEND2. 键盘扫描及数码管动态显示程序ORG 0000HMAIN:MOV 30H,#10;定义 4 个字节空间,放置待显示数字MOV 31H,#10MOV 32H,#10MOV 33H,#10MOV P0,#00HMOV 40H,#0FFH; 定义 1 个字节空间,放置键值第页天津机电职业技术学院教师备课纸KEY:ACALL KEYSCAN ; 调用键盘全扫描子程序JNC LK1;有按键按下,转去延时去抖ACALL DISPLAY;无按键按

9、下,调用显示子程序AJMPKBZ;送无键按下标志LK1:ACALL DISPLAY;两次调用显示,实现延时功能ACALL DISPLAYACALL KEYSCAN;延时去抖后,再次调用键盘全扫描子程序JNZLK2;确实有按键按下,转入逐行扫描AJMPKBZ;抖动,无按键/* 逐行扫描程序模块 */LK2:MOV R7,#0EFH ; 第一行行线置为 0MOV R6,#00H;行数寄存器COL0: MOV P3,R7;第一行行线置为 0MOV A,P3;读入列线状态JB ACC.0,COL1 ;若不是第一列按键按下,转查第二列 MOV A,#01H ;若是第一列按键按下,则记下列值为 1AJMP

10、 LKP;转去计算键值COL1: JB ACC.1,COL2; 若不是第二列按键按下,转查第三列MOV A,#02H;若是第二列按键按下,则记下列值为2AJMP LKP;转去计算键值COL2: JB ACC.2,COL3; 若不是第三列按键按下,转查第四列 MOV A,#03H ;若是第三列按键按下,则记下列值为 3AJMP LKP;转去计算键值COL3:JB ACC.3,NEXTR ; 若不是第四列按键按下,转去扫描下一行MOV A,#04H;若是第四列按键按下,则记下列值为4AJMP LKP;转去计算键值/* 键值计算程序键值行值 4列值 */第页天津机电职业技术学院教师备课纸LKP:MO

11、V R5,A;MOV A,R6MOV B,#04HMUL ABADD A,R5MOV 40H,AMOV A,40HMOV B,#10 ;DIV ABMOV 32H,AMOV 33H,BACALL DISPLAY ;AJMP KEY/* 下一行扫描值预处理 */NEXTR: INC R6;MOV A,R7;JNB ACC.7,KBZ;RLA;MOV R7,AAJMP COL0KBZ:MOV 40H,#0FFH; 若无按键按下,则用FF 表示键值AJMP KEY/* 键盘全扫描子程序 */KEYSCAN:MOV P3,#0FH ;NOPMOV P3,#0FH;MOV A,P3CPL AANL A,#0FHRET第页天津机电职业技术学院教师备课纸/*LED 数码管显示键值子程序 */DISPLAY:MOV R0,#30H;MOV R1,#4;MOV R2,#0FEH;MOV DPTR,#TAB;LOOP1:MOV A,R0; 把待显示数字的段选码提取出来MOVC A,A+DPTR;MOV P0,A; 把段选码放在数据总线上SETB P1.1;锁存器的锁存允许置位NOPCLR P1.1MOV A,R2; 把段选码放在数据总线上MOV P0,ASETB P1.2;NOPCLR P1.2RL AMOV R2,AINC R0ACALL DELDJNZ R1,LOOP1RET/* 定义段选码

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论