单片机实验4报告.doc

上传人:w****2 文档编号:6564266 上传时间:2020-02-29 格式:DOC 页数:10 大小:70KB
返回 下载 相关 举报
单片机实验4报告.doc_第1页
第1页 / 共10页
单片机实验4报告.doc_第2页
第2页 / 共10页
单片机实验4报告.doc_第3页
第3页 / 共10页
点击查看更多>>
资源描述
学号 14142200277 序号 19 单片机原理与接口技术 实验报告实验项目序号 实验四 实验项目名称 动态显示与矩阵式键盘实验 姓 名 卢志雄 专 业 电子信息工程 班 级 电信14-2BF 完成时间 2016-05-10 一、实验目的1、 进一步理解数码管与单片机的接口原理与动态显示原理,理解单片机矩阵式键盘按键识别的原理;2、 掌握单片机动态显示应用和编程方法;3、 掌握单片机矩阵式键盘按键识别的方法。 二、实验内容实验内容为3项,其中第1、2项必做。1、动态显示。未按键不显示,按K1键,动态显示 “19491001”;按K2键,动态显示 “20141210”。2、动态显示与按键识别。矩阵式键盘键值分别是0-F,未按键不显示。每按键一次,键值在最低位显示,原键值向高位移一位。3、可控动态显示与按键识别。矩阵式键盘键值分别是0-9,最下面一排键位功能键,左右两个键分别为“清0键”“C”,和”“回车键”“8 ”,其它键无效。未按键不显示,每按键一次,键值在最低位显示,原键值向高位移一位。按8个键后,再按键无效。按清0键全显示“0”。按“8 ”后全部熄灭,再按键重新开始。三、实验原理图图3.4 动态显示与矩阵式键盘实验电路原理图动态显示共8个共阴极数码管,采用两片74LS573进行驱动,74LS573与74LS373都是8D锁存器,只是573引脚排列更易于布线。其引脚功能为:D1-D8为数据输入端;Q1-Q8为数据输出端;LE为数据输入锁存端,LE=1数据输入D锁存器,LE=0数据不能输入D锁存器,即LE下降沿锁存当前输入数据;地址输出允许端,=0输出锁存数据,=1输出高阻。电路中,U1输出段码a b c d e f g db,控制显示的字形与小数点,U2输出位选码,控制第几个数码管显示。单片机P14、P15分别连接到U1、U2的LE,连接U1、U2的。四、源程序第一项:#include#define uchar unsigned chardata uchar f8;data uchar a,b,num,y,k,g;data uchar c=0;table18=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00;/共阴极数码管显示段码(0-F)void delay( j )/延时函数data uchar j; data uchar i; while(j-) for(i=0;i1;i+);uchar code sled_bit=0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80;/定义点亮数码管位选码data uchar d=1,9,4,9,1,0,0,1;data uchar e=2,0,1,4,1,2,1,0;sbit oe=P13; /2个573的三态使能端sbit dula=P14; /段码573控制信号sbit wela=P15; /位码573控制信号/延时函数void main(void) TMOD=0x01;/ 设置定时器T0为方式1定时 TH0=(65536-500)/256;/ 给T0装入初值 TL0=(65536-500)%256; / 给T0装入初值 ET0=1; / 允许T0中断EA=1;EX0=1;IT0=1;g=0;P0=0X00;while(1);/CPU开中断 void EX0_int(void) interrupt 0TR0=1; y=P2; y=y; if(y=1)for(g=0;g8;g+)fg=dg; if(y=2)for(g=0;g=8)g=0;/ 打开2个573三态门,输出段码和位码 第二项#include#define uchar unsigned char#define uint unsigned intsbit oe=P13; /数码管段选、位选锁存器输出控制信号sbit dula=P14; /数码管段选锁存器控制信号sbit wela=P15; /数码管位选锁存器控制信号uchar j=0;uchar code sled_bit=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;/定义点亮数码管位选码data uchar disp8=16,16,16,16,16,16,16,16;uchar code table18=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00;/共阴极数码管显示段码(0-F)void delay( n )/延时函数data uchar n; data uchar m; while(n-) for(m=0;m1;m+);void main(void) uchar a,b,c,i,num;TMOD=0x01;/ 设置定时器T0为方式1定时 TH0=(65536-500)/256;/ 给T0装入初值 TL0=(65536-500)%256; / 给T0装入初值 ET0=1; / 允许T0中断 EA=1;/ CPU开中断 TR0=1;/ 启动T0oe=0;P2=0xff;while(1) P2=0xf0;delay(5);P2=0xf0;a=P2;P2=0x0f;delay(5);P2=0x0f;b=P2;a=a|b;if(a!=0xff)while(P2!=0x0f); switch(a) case 0xee: num=0;break; case 0xde: num=1;break; case 0xbe: num=2;break; case 0x7e: num=3;break; case 0xed: num=4;break; case 0xdd: num=5;break; case 0xbd: num=6;break; case 0x7d: num=7;break; case 0xeb: num=8;break; case 0xdb: num=9;break; case 0xbb: num=10;break; case 0x7b: num=11;break; case 0xe7: num=12;break; case 0xd7: num=13;break; case 0xb7: num=14;break; case 0x77: num=15; for(i=0;i=8)j=0; 五、实验结果第一项:给单片机上电,未按键不显示,按K1键,动态显示 “19491001”;按K2键,动态显示 “20141210”。第二项:给单片机上电,未按键不显示,按矩阵式键盘键值从小到大依次按键,依次显示为:0,01,012,0123,01234,012345,0123456,01234567,12345678,23456789,3456789A,456789Ab,56789AbC,6789AbCd,789AbCdE,89AbCdEF。六、实验思考题1、 电路中为什么要用74LS573,不用74LS573,可用什么器件代替?如果U1、U2的都直接接地,应如何编程?答:电路中需要2片74LS573来驱动8个共阴极数码管,所以不能用74LS573,可用74LS373代替。如果U1、U2的都直接接地,即一直为0,74LS573总是输出锁存数据,所以应控制数据输入锁存端LE,使之在需要锁存时置1。2、 为什么要等键弹起,才进行键值分析?答:因为在按键前后都有一个过渡期,在这个阶段电平忽高忽低,最好等这个时期过去再判断是否按键,同样,最好等键弹起,才进行键值分析,这样才能分析准确。3、 如果用简单按键与矩阵式键盘构成组合按键,组合按键如何编程得到键值?答:采用线反转法,将行和列得到的键值相或来得到键值。七、实验心得通过这次实验,使我学到了不少实用的知识,更重要的是做实验的过程,思考问题的方法,这与其他的实验师通用的,真正使我受益匪浅。在做实验之前,我没有完全将课本上的理论知识掌握透彻,但在老师的讲解中,以及实践中对这些知识的理解有了很大一步的掌握。对单片机编程有了比较深刻的认识,希望在以后的学习以及实验中可以更加得心应手!实验要认真分析问题,然后针对要求编写相应程序,对程序应该尽量简单化,符合要求的同时要简单有效,只有这样才能一步一步的进步,提高!
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 工作总结


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!