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

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

ID:56126113

大小:301.00 KB

页数:11页

时间:2020-06-20

单片机原理及应用实验六  按键识别数码管显示实验.doc_第1页
单片机原理及应用实验六  按键识别数码管显示实验.doc_第2页
单片机原理及应用实验六  按键识别数码管显示实验.doc_第3页
单片机原理及应用实验六  按键识别数码管显示实验.doc_第4页
单片机原理及应用实验六  按键识别数码管显示实验.doc_第5页
资源描述:

《单片机原理及应用实验六 按键识别数码管显示实验.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

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

2、阵按键,在数码管上分别显示0~9,A,B,C,D,E,F。用Keil编译、Proteus仿真,代码下载到单片机实验箱上验证。3、实验仪器(1)PC微机1台(2)实验箱1台开始4、实验程序流程图初始化程序N有键按下延时去抖动YN有键按下Y判断哪个键按下显示相应的数字结束5、实验程序(实验程序清单作为附件放在最后)6、实验步骤1)keil中C语言程序实现。2)在proteus中完成电路图设计,并实现仿真。3)硬件实验部分:用一条8PIN数据排线,把矩阵按键部份的JP50,接到CPU部份的P1口JP44;接8位数码管的数据线。将数码管部份的数据口JP5接

3、到CPU部份的P0口JP51;接8位数码管的显示位线。将数码管部份的显示位口JP8接到CPU部份的P2口JP52.7、实验数据及结果8、思考题采用P3口控制矩阵按键输入,程序应该如何修改?答:本实验的程序中可以不用蜂鸣器驱动线,把以下程序的sbitBEEP=P3^7;及函数voidbeep()等删掉后;需要把扫描键值的函数改一下:unsignedcharkeyscan(){unsignedcharscan1,scan2,keycode,j;P13=0xf0;scan1=P3;if(scan1!=0xf0)//判键是否按下{delayms(10);s

4、can1=P3;if(scan1!=0xf0)//二次判键是否按下{P1=0x0f;scan2=P3;keycode=scan1

5、scan2;//组合成键扫描编码for(j=0;j<16;j++){if(keycode==key_code[j])//查表得键值{key=j;return(key);//返回有效键值}}}}elseP3=0xff;return(key=16);//返回无效码}即P1口换成P3口,而键编码数组是固定的,可以不变;此外主函数中的P1口也要改为P3口:voidmain(void){P0=0xf7;//数码管初始显示"-"P2

6、=0xfd;//数码管显示在第二位P3=0xff;while(1){keyscan();if(key<16)//有效键值{P0=disp_code[key];//显示键值}}}<附件>实验程序清单#include#includesbitBEEP=P3^7;//蜂鸣器驱动线unsignedcharkey;unsignedcharcodedisp_code[]={0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xc0,0x86,0x8e,0

7、xc0};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++);}}/****

8、*********x*0.14MS延时子函数****************/voiddelayus(unsignedcharx){unsignedchari;while(x--){for(i=0;i<14;i++){;}}}/******************蜂鸣器驱动子函数*****************/voidbeep(){unsignedchari;for(i=0;i<250;i++){delayus(6);BEEP=!BEEP;//BEEP取反}BEEP=1;//关闭蜂鸣器delayms(150);//延时}/***********

9、*******键盘扫描子函数*********************/unsignedcharkeyscan(){uns

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。