单片机实用技术(钱游)项目二课后习题及答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2-1、什么是按键抖动,去抖动有哪些方法?
在键按下或弹起时,接触片会抖动,导致按键通断很多次,所以需要去抖。去抖方法很多,硬件可以加电容,软件可以多次判断。
软件方面:读进按键后延时,再读取按键。相当于判断按键是否在一段时间按下,一般人的动作是ms级别的。硬件方面:作去抖动的电路,可以接电容或RS触发器等,然后设计好充放时间常数,不能太大,要不按键不够灵敏。
下图所示的RS触发器为常用的硬件去抖。
图中两个“与非”门构成一个RS触发器。当按键未按下时,输出为1;当键按下时,输出为0。此时即使用按键的机械性能,使按键因弹性抖动而产生瞬时断开(抖动跳开B),中要按键不返回原始状态A,双稳态电路的状态不改变,输出保持为0,不会产生抖动的波形。也就是说,即使B点的电压波形是抖动的,但经双稳态电路之后,其输出为正规的矩形波。这一点通过分析RS触发器的工作过程很容易得到验证。
2-2、去抖动用软件延时的方法,软件延时一般多久?
通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动,为了不产生这种现象而作的措施就是按键消抖。用软件方法去抖,即检测出键闭合后执行一个延时程序,5ms~10ms的延时,让前沿抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下。当检测到按键释放后,也要给5ms~10ms的延时,待后沿抖动消失后才能转入该键的处理程序。
2-3、在本项目2-15电路图基础上,在6个数码管上分别显示自己学号的后六位数字。
#include
char code code1[]={0xa4,0xc6,0x92,0x82,0x82,0xf8};
sbit p1_0=P1^0;
char num;
void delay(int timer)
{
while(timer)
{
--timer;
}
}
void main()
{
int i;
while(1)
{
num =0xFE;
for(i=0;i<6;i++)
{
P1=num;
P2=code1[i];
delay(1000);
num=(num<<1)|1;
}
}
}
2-4、请自己设计电路,在4个数码管上稳定显示出“A”“C”“E”“P”四个字符。
#include
char code style[4]={0x88,0xc6,0x86,0x8c};
void main()
{
while(1)
{
P0=style[0];
P2=style[1];
P3=style[2];
P1=style[3];
}
}