单片机原理及应用实验六按键识别数码管显示实验Word文档格式.docx
- 文档编号:15379369
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:8
- 大小:270.31KB
单片机原理及应用实验六按键识别数码管显示实验Word文档格式.docx
《单片机原理及应用实验六按键识别数码管显示实验Word文档格式.docx》由会员分享,可在线阅读,更多相关《单片机原理及应用实验六按键识别数码管显示实验Word文档格式.docx(8页珍藏版)》请在冰豆网上搜索。
名:
吴限
评语:
(1)电路连接调试:
□正确
□基本正确
□不正确
(2)实验程序编写:
(3)数据测量分析:
□准确
□基本准确
□不准确
1、实验内容或题目
1)题目:
按键识别数码管显示实验
2)实验内容:
数码管显示矩阵按键号。
2、实验目的与要求
1)实验目的:
掌握按键识别及数码管显示的实现方法。
2)实验要求:
通过XL2000的16位矩阵按键,在数码管上分别显示0~9,A,B,C,D,E,F。
用Keil
编译、Proteus仿真,代码下载到单片机实验箱上验证。
3、实验仪器
(1)pc微机
(2)实验箱
4、实验程序流程图
5、实验程序
(实验程序清单作为附件放在最后)
6、实验步骤
f
结束
L」
1)keil中C语言程序实现。
2)在proteus中完成电路图设计,并实现仿真
3)硬件实验部分:
用一条8PIN数据排线,把矩阵按键部份的JP50,接到CPU部份的P1口JP44;
接8位数码管的数据线。
将数码管部份的数据口JP5接到CPU部份的P0口
JP51;
接8位数码管的显示位线。
将数码管部份的显示位口JP8接到CPU部份
的P2口JP52.
7、实验数据及结果
&
思考题
采用P3口控制矩阵按键输入,程序应该如何修改
答:
本实验的程序中可以不用蜂鸣器驱动线,把以下程序的sbitBEEP=P3A7;
及函数voidbeep()
等删掉后;
需要把扫描键值的函数改一下:
unsignedcharkeyscan()
{
unsignedcharscan1,scan2,keycodej;
P13=OxfO;
scan1=P3;
if(scan1!
=0xf0)〃判键是否按下
delayms(10);
scan1=P3;
=0xf0)〃二次判键是否按下
P1=0x0f;
scan2=P3;
keycode=scanl|scan2;
组合成键扫描编码
for(j=0;
j<
16;
j++)
if(keycode==key_code[j])〃查表得键值
key=j;
return(key);
//返回有效键值
}
else
P3=Oxff;
return(key=16);
〃返回无效码
}即P1口换成P3口,而键编码数组是固定的,可以不变;
此外主函数中的P1口也要改为P3口:
voidmain(void)
P0=0xf7;
//数码管初始显示"
-"
P2=0xfd;
//数码管显示在第二位
P3=0xff;
while
(1)
keyscan();
if(key<
16)//有效键值
P0=disp_code[key];
〃显示键值
<
附件>
实验程序清单
#inelude<
>
#include<
sbitBEEP=P3A7;
〃蜂鸣器驱动线
unsignedcharkey;
unsignedcharcodedisp_code[]=
0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,
0x90,0x88,0x83,0xc6,
0xc0,0x86,0x8e,0xc0};
unsignedcharcodekey_code[]=
Oxee,Oxed,Oxeb,0xe7,Oxde,Oxdd,Oxdb,0xd7,Oxbe,Oxbd,Oxbb,
0xb7,Ox7e,Ox7d,Ox7b,Ox77〃键编码数组
};
charcodeSST516[3]_at_OxOO3b;
〃保留仿真器
延时子函数
**************
*/
voiddelayms(unsignedintms){
unsignedchart;
while(ms--)
for(t=0;
t<
114;
t++);
voiddelayus(unsignedcharx){
unsignedchari;
while(x--)
for(i=0;
i<
14;
i++)
{;
蜂鸣器驱动子函数
voidbeep()
250;
delayus(6);
BEEP=!
BEEP;
//BEEP取反
BEEP=1;
delayms(150);
〃关闭蜂鸣器
//延时
键盘扫描子函数
unsignedcharkeyscan()
unsignedcharscan1,scan2,keycode,j;
P1=OxfO;
scan1=P1;
//延时10ms
sean1=P1;
P1=OxOf;
scan2=P1;
for(j=0;
if(keycode==key_code[j])//查表得键值
P1=0xff;
^主函^数***********************
voidmain(void){
〃数码管显示在第二位
P1=Oxff;
16)//有效键值
beep();
〃蜂鸣器响一声
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 原理 应用 实验 按键 识别 数码管 显示