单片机试验4报告材料_第1页
单片机试验4报告材料_第2页
单片机试验4报告材料_第3页
单片机试验4报告材料_第4页
单片机试验4报告材料_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、实用文档学号号 _19_单片机原理与接口技术实验报告实验工程序实验工程名称动态显示与矩阵式键盘实验姓 名 卢志雄 专 业 电子信息工程 班 级 电信14-2BF完成时间2021-05-10、实验目的1、 进一步理解数码管与单片机的接口原理与动态显示原理,理解单片机矩 阵式键盘按键识别的原理;2、掌握单片机动态显示应用和编程方法;3、掌握单片机矩阵式键盘按键识别的方法.、实验内容实验内容为3项,其中第1、2项必做.1、动态显示.未按键不显示,按 K1键,动态显示 “ 19491001 ;按K2键,动态显示“ 20211210'.2、动态显示与按键识别.矩阵式键盘

2、键值分别是0-F,未按键不显示.每按键一次,键值在最低位显 示,原键值向高位移一位.3、可控动态显示与按键识别.矩阵式键盘键值分别是0-9,最下面一排键位功能键,左右两个键分别为“清 0键 “C',和 “回车键“,其它键无效.未按键不显示,每按键一次,键值在最低位显示,原键值向高位移一位.按8个键后,再按键无效.按清0键全显示“ 0.按“ 后全部熄灭,再按键重新开始.三、实验原理图189 -K1K2JK329K4AT89C51U4AND_4U374HC573U274HC5733031_199876 5432u 12 3 4 5 6 7 QQQQQQQQ2 3 4 5 6 / Q Q Q

3、 Q QQDDDDDDDD F ORP81kDDDDDDDD F OU112_3 ,4 :5 6 ,XTAL1P0.0/AD0P0.2/AD2XTAL2P0.3/AD3P0.4/AD4RSTP0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10PSENALEP2.3/A11P2.4/A12EAP2.5/A13P2.6/A14P2.7/A15P1.0P3.0/RXDP1 1P3 1/TXDP1.2P1.3P1.4P3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P1.5P1.6P3.6/WRP1.7P3.7/RD 25 26 27图3.4 动态

4、显示与矩阵式键盘实验电路原理图动态显示共8个共阴极数码管,采用两片 74LS573进行驱动,74LS573与 74LS373都是8D锁存器,只是573引脚排列更易于布线.其引脚功能为:D1-D8 为数据输入端;Q1-Q8为数据输出端;LE为数据输入锁存端,LE=1数据输入D 锁存器,LE=0数据不能输入D锁存器,即LE下降沿锁存当前输入数据;°E地 址输出允许端,OE =0输出锁存数据,°E =1输出高阻.电路中,U1输出段码a b c d e f g db,限制显示的字形与小数点,U2输出位选码,限制第几个数码管显示.单片机P14 P15分别连接到U1、U2的LE, 连接

5、U1、U2的OE.四、源程序第一项:#in clude<reg51.h>#defi ne uchar un sig ned 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,0x7 C,0x39,0x5e,0x79,0x71,0x00;/ 共阴极数码管显示段码(0-F)void delay( j )/ 延时函数data uchar j; data uchar i;while(j-)for(

6、i=0;i<1;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=P1A3; /2sbit dula=P1A4;sbit wela=P1A5;/延时函数void ma in (void)TMOD=0x01;TH0=(65536-500)/256;TL0=(65536-500)%256;ET0=1;EA=1;EX0=1;IT0=1;g=0;P0=0X00;whi

7、le(1);void EX0_in t(void) in terrupt 0TR0=1;个573的三态使能端/段码573限制信号/位码573限制信号/设置定时器T0为方式1定时/给T0装入初值/给T0装入初值/允许T0中断/CPU开中断y=P2;y=y;if(y=1)for(g=0;g<8;g+)fg=d g;if(y=2)for(g=0;g<8;g+)fg=e g;/T0中断函数void T0_i nt(void) in terrupt 1 TH0=(65536-500)/256;TL0=(65536-500)%256;oe=1;/关闭2个573输出,预防送数据时相互影响k =

8、fg;/每次显示dispj的数据P0= tablek;/相应显示数字段码dula=1;dula=0;/锁存段码P0=sled_bit g;/选择相应数码管位选wela=1;wela=0;/锁存位码oe=0;g+;if(g>=8)g=0;/翻开2个573三态门,输出段码和位码第二项#in clude<reg52.h>#defi ne uchar un sig ned char#defi ne uint un sig ned intsbit oe=P1A3;/数码管段选、位选锁存器输出限制信号sbit dula=P1A4;/数码管段选锁存器限制信号sbit wela=P1A5;/

9、数码管位选锁存器限制信号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;uchartable18=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7C,0x39,0x5e,0x79,0x71,0x00;/ 共阴极数码管显示段码(0-F)/codevoid delay( n )data uchar n; data uchar m;while

10、( n-)for(m=0;m<1;m+);/延时函数void ma in (void)uchar a,b,c,i ,num;TMOD=0x01;TH0=(65536-500)/256;TL0=(65536-500)%256;ET0=1;EA=1;TR0=1;oe=0;/设置定时器T0为方式1定时/给T0装入初值/给T0装入初值/允许T0中断/ CPU开中断/启动T0P2=0xff;while(1)P2=0xf0;dela y(5);P2=0xf0;a=P2;P2=0x0f;dela y(5);P2=0x0f;b=P2;a=a|b;if(a!=0xff)while(P2!=0x0f);sw

11、itch(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 Oxbb: num=10;break;case 0x7 b: num=11;break;case 0xe7: num=12;brea

12、k;case 0xd7: num=13;break;case 0xb7: num=14;break;case 0x77: num=15;for(i=0;i<7;i+) dispi=dispi+1; disp7=num;delay(255); void T0_i nt(void) in terrupt 1 data uchar k;TH0=(65536-1000)/256;/关闭2个573输出,预防在送数据时相/每次显示arj的数据TL0=(65536-1000)%256; oe=1;互影响k = dispj;P0 = tablek;/相应显示数字段码dula=1;dula=0;/锁存段码

13、P0=sled_bitj;/选择相应数码管位选wela=1;wela=0;/锁存位码oe=0;/翻开2个573三态门,输出段码和位码/为下一个显示做准备j+; if(j>=8)j=0;五、实验结果第一项:给单片机上电,未按键不显示,按K1键,动态显示“ 19491001; 按K2键,动态显示“ 20211210.第二项:给单片机上电,未按键不显示,按矩阵式键盘键值从小到大依次按 键,依次显示为:0,01,012,0123,01234,012345,0123456,01234567,12345678,23456789,345 6789A,456789Ab, 56789AbC,6789AbC

14、d,789AbCdE,89AbCdEF六、实验思考题1、电路中为什么要用74LS573,不用74LS573,可用什么器件代替?如果U1、U2的OE都直接接地,应如何编程?答:电路中需要2片74LS573来驱动8个共阴极数码管,所以不能用74LS573可用74LS373代替.如果U1、U2的OE都直接接地,即OE 直为0,74LS573总是输出锁存数据,所以应限制数据输入锁存端LE,使之在需要锁存时置1.2、为什么要等键弹起,才进行键值分析 ?答:由于在按键前后都有一个过渡期,在这个阶段电平忽高忽低,最 好等这个时期过去再判断是否按键,同样,最好等键弹起,才进行键 值分析,这样才能分析准确.3、如果用简单按键与矩阵式键盘构成组合按键,组合按键如何编程得到 键值?答:采用线反转法,将行和列得到的键值相或来得到键值.七、实验心得通过这次

温馨提示

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

评论

0/150

提交评论