按键识别数码管Word文档格式.docx

上传人:b****6 文档编号:19985694 上传时间:2023-01-13 格式:DOCX 页数:7 大小:204.77KB
下载 相关 举报
按键识别数码管Word文档格式.docx_第1页
第1页 / 共7页
按键识别数码管Word文档格式.docx_第2页
第2页 / 共7页
按键识别数码管Word文档格式.docx_第3页
第3页 / 共7页
按键识别数码管Word文档格式.docx_第4页
第4页 / 共7页
按键识别数码管Word文档格式.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

按键识别数码管Word文档格式.docx

《按键识别数码管Word文档格式.docx》由会员分享,可在线阅读,更多相关《按键识别数码管Word文档格式.docx(7页珍藏版)》请在冰豆网上搜索。

按键识别数码管Word文档格式.docx

可参考xl2000实验仪操作指导手册之实验7

三、实验接线图

接线方法:

1.用一条8PIN数据排线,把矩阵按键部份的JP50,接到CPU部份的P1口JP44;

2.接8位数码管的数据线。

将数码管部份的数据口JP5接到CPU部份的P0口JP51;

3.接8位数码管的显示位线。

将数码管部份的显示位口JP8接到CPU部份的P2口JP52.

四、实验结果

五、思考题

采用P3口控制矩阵按键输入,程序应该如何修改?

本实验的程序中可以不用蜂鸣器驱动线,把以下程序的sbitBEEP=P3^7;

及函数voidbeep()等删掉后;

需要把扫描键值的函数改一下:

unsignedcharkeyscan()

{

unsignedcharscan1,scan2,keycode,j;

P13=0xf0;

scan1=P3;

if(scan1!

=0xf0)//判键是否按下

{

delayms(10);

=0xf0)//二次判键是否按下

P1=0x0f;

scan2=P3;

keycode=scan1|scan2;

//组合成键扫描编码

for(j=0;

j<

16;

j++)

if(keycode==key_code[j])//查表得键值

key=j;

return(key);

//返回有效键值

}

else

P3=0xff;

return(key=16);

//返回无效码

}即P1口换成P3口,而键编码数组是固定的,可以不变;

此外主函数中的P1口也要改为P3口:

voidmain(void)

P0=0xf7;

//数码管初始显示"

-"

P2=0xfd;

//数码管显示在第二位

while

(1)

keyscan();

if(key<

16)//有效键值

P0=disp_code[key];

//显示键值

}

 

附件:

实验程序清单

#include<

reg52.h>

intrins.h>

sbitBEEP=P3^7;

//蜂鸣器驱动线

unsignedcharkey;

unsignedcharcodedisp_code[]=

0x28,0xa9,0x20,0x30,0xa1,0x60,0x21,0x62,0xb1,0x20,0x61,0xa2,0x28,0x7a,0x74,0x7e

};

//显示码数组0,C,8,A,E,9,6,3,f,8,5,2,0,7,4,1

unsignedcharcodekey_code[]=

0xee,0xed,0xeb,0xe7,0xde,0xdd,0xdb,0xd7,0xbe,0xbd,0xbb,

0xb7,0x7e,0x7d,0x7b,0x77//键编码数组

charcodeSST516[3]_at_0x003b;

//保留仿真器

/********************延时子函数***************/

voiddelayms(unsignedintms)

unsignedchart;

while(ms--)

for(t=0;

t<

114;

t++);

}

/*************x*0.14MS延时子函数****************/

voiddelayus(unsignedcharx)

unsignedchari;

while(x--)

for(i=0;

i<

14;

i++)

{;

/******************蜂鸣器驱动子函数*****************/

voidbeep()

250;

delayus(6);

BEEP=!

BEEP;

//BEEP取反

BEEP=1;

//关闭蜂鸣器

delayms(150);

//延时

/******************键盘扫描子函数*********************/

P1=0xf0;

scan1=P1;

scan2=P1;

P1=0xff;

/*************************主函数***********************/

beep();

//蜂鸣器响一声

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1