单片机原理及应用实验六按键识别数码管显示实验_第1页
单片机原理及应用实验六按键识别数码管显示实验_第2页
单片机原理及应用实验六按键识别数码管显示实验_第3页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

1、电子信息学院实验报告书课 程 名:单片机原理及应用实验题 目:实验六 按键识别数码管显示实验软件 +硬件实验实验类别:【设计】班 级:电子 1313学 号:26姓 名:吴限评语:(1)电路连接调试:正确基本正确不正确(2)实验程序编写:正确基本正确不正确(3)数据测量分析:准确基本准确不准确成绩: A BC D,指导教师:王英赫台1、实验内容或题目1)题目 :按键识别数码管显示实验2) 实验内容 :数码管显示矩阵按键号2、实验目的与要求1)实验目的:掌握按键识别及数码管显示的实现方法。2)实验要求 :用 Keil通过 XL2000 的 16 位矩阵按键,在数码管上分别显示 09,A,B,C,D

2、,E,F 编译、 Proteus 仿真,代码下载到单片机实验箱上验证。3、实验仪器(1) PC微机1(2)实验箱1台4、实验程序流程图结束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;组合成键

4、扫描编码keycode = scan1 | scan2; / for (j = 0; j < 16; j+)查表得键值if (keycode = key_codej)/key = j;return (key); /返回有效键值elseP3 = 0xff;return (key = 16); /返回无效码 即 P1 口换成 P3 口,而键编码数组是固定的,可以不变; 此外主函数中的 P1口也要改为 P3口: void main(void)P0 = 0xf7; /数码管初始显示 "-"P2 = 0xfd;/数码管显示在第二位P3 = 0xff;while (1)keysc

5、an();if (key < 16) /有效键值P0 = disp_codekey; / 显示键值<附件 > 实验程序清单#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_cod

6、e =0xee, 0xed, 0xeb, 0xe7, 0xde, 0xdd, 0xdb, 0xd7, 0xbe, 0xbd, 0xbb,0xb7, 0x7e, 0x7d, 0x7b, 0x77 / 键编码数组;char code SST5163 _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-)

7、for (i = 0; i < 14; i+);蜂鸣器驱动子函数void beep()unsigned char i;for (i = 0; i < 250; i+)delayus(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); / 延时 10msscan1 = 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); /elseP1 = 0xff;返回无效码return (key = 16); /void main(void)P0 = 0xf7; /数码管初始显示 &

温馨提示

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

评论

0/150

提交评论