单片机实用技术(钱游)项目二课后习题及答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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];

}

}

相关文档
最新文档