当前位置:首页 >> 电子/电路 >>

单片机原理及应用实验六 按键识别数码管显示实验_图文

电子信息学院 实验报告书

课 程 名: 题 目:

《单片机原理及应用实验》 实验六 按键识别数码管显示实验

软件+硬件实验

实验类别: 班 级: 学 号: 姓 名:

【设计】 电子 1313
26 吴限

评语:

(1)电路连接调试: □正确 □基本正确 (2)实验程序编写: □正确 □基本正确 (3)数据测量分析: □准确 □基本准确

□不正确 □不正确 □不准确

成绩:□A □B □C □D ,指导教师: 王英赫 批阅时间:2016 年 月 日

1

1、实验内容或题目
1)题目:按键识别数码管显示实验
2)实验内容:数码管显示矩阵按键号。

2、实验目的与要求
1)实验目的: 掌握按键识别及数码管显示的实现方法。
2)实验要求:
通过 XL2000 的 16 位矩阵按键,在数码管上分别显示 0~9,A,B,C,D,E,F。用 Keil 编译、Proteus 仿真,代码下载到单片机实验箱上验证。

3、实验仪器
(1)PC 微机 (2)实验箱
4、实验程序流程图

1台 1台
开始

初始化程序
N 有键按下 Y 延时去抖动
N 有键按下 Y
判断哪个键按下

显示相应的数字

结束

2
5、实验程序
(实验程序清单作为附件放在最后)
6、实验步骤
1)keil 中 C 语言程序实现。
2)在 proteus 中完成电路图设计,并实现仿真。
3)硬件实验部分:
用一条 8PIN 数据排线,把矩阵按键部份的 JP50,接到 CPU 部份的 P1 口 JP44; 接 8 位数码管的数据线。将数码管部份的数据口 JP5 接到 CPU 部份的 P0 口 JP51;接 8 位数码管的显示位线。将数码管部份的显示位口 JP8 接到 CPU 部份 的 P2 口 JP52.
7、实验数据及结果

3

8、思考题

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

答:本实验的程序中可以不用蜂鸣器驱动线,把以下程序的 sbit BEEP = P3 ^ 7;及函数 void beep() 等删掉后;需要把扫描键值的函数改一下:unsigned char keyscan()

{

unsigned char scan1, scan2, keycode,j;

P13= 0xf0;

scan1 = P3;

if (scan1 != 0xf0)

//判键是否按下

{

delayms(10);

scan1 = P3;

if (scan1 != 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); //返回无效码

4
} 即 P1 口换成 P3 口,而键编码数组是固定的,可以不变; 此外主函数中的 P1 口也要改为 P3 口:void main(void) {
P0 = 0xf7; //数码管初始显示"-" P2 = 0xfd;//数码管显示在第二位 P3 = 0xff; while (1) {
keyscan(); if (key < 16) //有效键值
{ P0 = disp_code[key]; //显示键值 } } }

<附件> 实验程序清单

#include <reg52.h>

#include <intrins.h> sbit BEEP = P3 ^ 7;

//蜂鸣器驱动线

unsigned char key;

unsigned char code disp_code[] =

{

0xf9,0xa4,0xb0,0x99,

0x92,0x82,0xf8,0x80,

0x90,0x88,0x83,0xc6,

0xc0,0x86,0x8e,0xc0};

unsigned char code key_code[] =

{

5

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

0xb7, 0x7e, 0x7d, 0x7b, 0x77

//键编码数组

}; char code SST516[3] _at_ 0x003b; //保留仿真器 /********************延时子函数***************/

void delayms(unsigned int ms)

{

unsigned char t;

while (ms--)

{

for (t = 0; t < 114; t++);

}

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

void delayus(unsigned char x)

{

unsigned char i;

while (x--)

{

for (i = 0; i < 14; i++)

{;

}

}

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

void beep()

{

unsigned char i;

for (i = 0; i < 250; i++)

{

delayus(6);

6

BEEP = !BEEP; //BEEP 取反

} BEEP = 1; delayms(150);

//关闭蜂鸣器 //延时

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

unsigned char keyscan()

{

unsigned char scan1, scan2, keycode, j;

P1 = 0xf0;

scan1 = P1; if (scan1 != 0xf0) //判键是否按下

{ delayms(10);

//延时 10ms

scan1 = P1; if (scan1 != 0xf0) //二次判键是否按下

{

P1 = 0x0f;

scan2 = P1; keycode = scan1 | scan2; //组合成键扫描编码

for ( j = 0; j < 16; j++)

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

{

key = j; return (key); //返回有效键值

}

}

}

}

else

7
P1 = 0xff; return (key = 16); //返回无效码 } /*************************主函数***********************/ void main(void) { P0 = 0xf7; //数码管初始显示"-" P2 = 0xfd;//数码管显示在第二位 P1 = 0xff; while (1) {
keyscan(); if (key < 16) //有效键值
{ P0 = disp_code[key]; //显示键值 beep(); //蜂鸣器响一声 } } }


相关文章:
单片机原理及应用实验六 按键识别数码管显示实验_图文.doc
电子信息学院 实验报告书课程名:《单片机原理及应用实验》 题目:实验六按键识别数码管显示实验 软件+硬件实验 实验类别:【设计】 班级:电子 1313 学号:26 姓名:...
《单片机原理及应用》“实验五 按键及显示实验”任务书....doc
单片机原理及应用随堂实验报告 实验按键与显示实验...当按下第一个键时,数码 管显示 1,第一个 led ...六、 实验小结 本次按键与显示实验难度适中,虽然...
单片机原理及应用A实验报告-数码管、键盘动态扫描_图文.doc
单片机原理及应用A实验报告-数码管、键盘动态扫描_工学_高等教育_教育专区。数码...(2)矩阵键盘的扫描则是让按不同的按键,一数码管显示不同的字符。 3、将...
按键识别数码管显示实验.doc
按键识别数码管显示实验_电子/电路_工程科技_专业资料。实验六 按键识别数码管显示实验(软件+硬件实验) 一、实验目的要求 实验目的: 掌握按键识别数码管显示的...
单片机实验-电子1511-刘志鹏-151003400110_图文.doc
电子信息学院 实验报告书课 程名: 题目: 《单片机原理及应用实验》 数据排序...《单片机原理及应用实验按键识别数码管显示实验 【软件+硬件实验】 电子 1511...
单片机实验报告LED数码管显示实验_图文.doc
单片机实验报告LED数码管显示实验_电子/电路_...#002h 六、程序测试方法结果、软件性能分析软件调试...单片机应用实验报告 2键... 暂无评价 4页 1下载...
单片机实验报告矩阵键盘数码管显示.doc
按一个键(0-F)用数码管将该建 对应的名字显示...二、实验目的 1、 学习独立式按键的查询识别方法。...6、 会根据实际功能, 正确选择单片机功能接线, 编制...
单片机原理 数码管动态显示实验-单片机原理-实验报告_图文.doc
单片机原理 数码管动态显示实验-单片机原理-实验报告_...,如“ 13-23-
键盘、数码管显示综合实验.doc
单片机原理及应用实验报告 姓班 名: 级: 学 号 ...P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3....按键识别数码管显示实验 暂无评价 6页 免费 单片机...
单片机原理 独立按键识别-单片机原理-实验报告.doc
单片机原理 独立按键识别-单片机原理-实验报告_电子/...//共阳数码管显示 0~9 的段码表 uchar dispBuf[...[6]=sec/10; dispBuf[5]=disp_null; dispBuf[...
实验四单片机原理及应用实验报告SPI按键显示接口设计.doc
六、程序流程图 2 宁波大学信息学院 2013(2) “单片机原理及应用 1”实验报告...xxx.xx;计时最大值为 999.99s.按下 1 键,计时暂停,按下 2 键,数码管...
实验二、8段数码管显示实验_图文.ppt
实验二、8段数码管显示实验---采用DTLED_6显示驱动芯片 LED 数码管的结构显示段码 备注:第一脚的识别很简单,看管脚的底部,有一个方块型的就是第一脚。...
51单片机键盘数码管显示(带程序)_图文.doc
【利用 8255 51单片机实现数码管显示按键数值的程序...【实验电路图】 【单片机源程序】 #include <reg51...对数码管进行位选,选中六个数码管 delay(100); /...
《单片机原理及应用》实验指导书-proteus版资料_图文.doc
实验一 实验二 实验三 实验四 实验五 实验六 实验...9 LED 数码管显示实验 ... 11 键盘实验 ....最后 在 proteus 仿真电路中的单片机模块左键双击,弹出如下...
独立按键识别-单片机原理-实验报告.doc
独立按键识别-单片机原理-实验报告_电子/电路_工程科技_专业资料。宁德师范学院...(共阳/共阴自选),将 P2 口作数据输出口 7 段数码管数据引脚相连 ,P3 ...
超经典!PIC单片机原理及应用实验(含代码).doc
超经典!PIC单片机原理及应用实验(含代码)_电子/电路_工程科技_专业资料。超经典...有按键显示编码; 1、 使用实验箱上的模块是独立按键模块: 2、六位数码管...
单片机原理与应用 实验四 单片机键盘及显示实验.pdf
单片机原理与应用 实验四 单片机键盘及显示实验_电子...“0” ,然后每按一次按键,都在最右边显示该键的...键盘及数码管显示接口 相应口线连接 6 7 8 9 ~...
单片机原理及应用实验报告 2_图文.doc
数码管的基本应用 实验项目五 单片机键盘的基本应用 实验项目六 单片机串口通讯...();//调用按键识别函数 move();//调用 led 移动函数 P1=0xff;} } /**...
《单片机原理及应用》实验报告.doc
按键值的数码管显示子程序 ***/ void display(unsigned char k)...} 实验六:LCD 循环显示实验 1.实验目的 (1)掌握单片机驱动显示屏的方法 (2)掌握 LCD1602 ...
《单片机原理及应用》实验九江学院电子学院专用_图文.ppt
单片机原理及应用实验九江学院电子学院专用_工学_高等教育_教育专区。《...5 电路连线 D1 LDS3 6 6 1 DH VCC 数码管 动态显示 区 共 阴极 a b ...