实验四 单键识别与计数中断(3课时)

实验四 单键识别与计数中断(3课时)

ID:46405355

大小:31.50 KB

页数:5页

时间:2019-11-23

实验四 单键识别与计数中断(3课时)_第1页
实验四 单键识别与计数中断(3课时)_第2页
实验四 单键识别与计数中断(3课时)_第3页
实验四 单键识别与计数中断(3课时)_第4页
实验四 单键识别与计数中断(3课时)_第5页
资源描述:

《实验四 单键识别与计数中断(3课时)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验四单键识别与计数中断(3课时)参考“实验板使用手册P27中的原理图”1.对独立键盘S2键的按键次数进行统计,并在与P1口相连的八个发光二极管上以二进制形式显示出来。(判断是否按下键盘,当单片机上电时所有IO口为高电平,S2键一端接地另一端接P3.4,所以当键被按下时P3.4口直接接地,此时检测P3.4肯定为低电平。)2.利用T1计数中断方式实现对独立键盘S3键,每按2次(非双击,2次按键要有一定的时间间隔)切换P1口相连的八个发光二极管的一种显示方式(方式1:间隔300ms一个管亮,循环流动,方式2:间隔300ms两个管亮,循环流动)。注意:关于按键去抖动

2、的解释,我们在手动按键的时候,由于机械抖动或是其它一些非人为的因素很有可能会造成误识别,一般手动按下一次键然后接着释放,按键两片金属膜接触的时间大约为50ms左右,在按下瞬间到稳定的时间为5-10ms,在松开的瞬间到稳定的时间也为5-10ms,如果我们在首次检测到键被按下后延时10ms左右再去检测,这时如果是干扰信号将不会被检测到,如果确实是有键被按下,则可确认,以上为按键识别去抖动的原理。实验报告实验四1.实验目的和要求①对独立键盘S2键的按键次数进行统计,并在与P1口相连的八个发光二极管上以二进制形式显示出来。(判断是否按下键盘,当单片机上电时所有IO口为

3、高电平,S2键一端接地另一端接P3.4,所以当键被按下时P3.4口直接接地,此时检测P3.4肯定为低电平。)②利用T1计数中断方式实现对独立键盘S3键,每按2次(非双击,2次按键要有一定的时间间隔)切换P1口相连的八个发光二极管的一种显示方式(方式1:间隔300ms一个管亮,循环流动,方式2:间隔300ms两个管亮,循环流动)。注意:关于按键去抖动的解释,我们在手动按键的时候,由于机械抖动或是其它一些非人为的因素很有可能会造成误识别,一般手动按下一次键然后接着释放,按键两片金属膜接触的时间大约为50ms左右,在按下瞬间到稳定的时间为5-10ms,在松开的瞬间到

4、稳定的时间也为5-10ms,如果我们在首次检测到键被按下后延时10ms左右再去检测,这时如果是干扰信号将不会被检测到,如果确实是有键被按下,则可确认,以上为按键识别去抖动的原理。2.主要仪器设备①笔记本电脑②51单片机3.实验内容①对独立键盘S2键的按键次数进行统计,并在与P1口相连的八个发光二极管上以二进制形式显示出来。(判断是否按下键盘,当单片机上电时所有IO口为高电平,S2键一端接地另一端接P3.4,所以当键被按下时P3.4口直接接地,此时检测P3.4肯定为低电平。)源程序:#include#defineucharunsignedcha

5、r#defineuintunsignedintsbitBY1=P3^4;//S2ucharcount;voiddelay_ms(uintt)//延时ms{uinti;for(t;t>0;t--)for(i=114;i>0;i--);}voidkeyscan()//对独立键盘S2键的按键次数进行统计{if(BY1==0){delay_ms(10);if(BY1==0){count++;if(count==256){count=0;}}while(BY1==0);}}voiddisplay()//以二进制形式显示出来{P1=~count;}voidmain(voi

6、d)//main{count=0;P1=0xff;while(1){keyscan();display();}}②利用T1计数中断方式实现对独立键盘S3键,每按2次(非双击,2次按键要有一定的时间间隔)切换P1口相连的八个发光二极管的一种显示方式(方式1:间隔300ms一个管亮,循环流动,方式2:间隔300ms两个管亮,循环流动)。源程序:#include#defineucharunsignedchar#defineuintunsignedintbitflag=0;//用于显示方式切换uchartemp;voiddelay_ms(uintt)

7、//延时{uinti;for(t;t>0;t--)for(i=114;i>0;i--);}voiddisplay()//循环显示{uchari;for(i=0;i<8;i++){P1=~temp;delay_ms(150);temp=temp<<1;P1=0xff;delay_ms(150);}}voidmain()//mainT1计数器{TMOD=0x50;TH1=0xff;TL1=0xfe;EA=1;ET1=1;TR1=1;while(1){if(flag==0){temp=0x01;//方式1:间隔300ms一个管亮,循环流动display();}els

8、e{temp=0x03;//方式2:间

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

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

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