单片机原理及应用期末复习题库(含答案)(6)

2019-08-30 20:44

44.89C52中SCON的SM2、TB8、RB8有何作用?

答:SM2:多机通信控制位。TB8:发送数据的第9位。RB8:接收数据的第9位。

45.为什么要消除键盘的机械抖动?有哪些方法?

答:键抖动会引起一次按键被误读多次。为了确保CPU对键的一次闭合仅做一次处理,必须去除键抖动。在键闭合稳定时,读取键的状态,并且必须判别;在键释放稳定后,再作处理。按键的抖动,可用硬件或软件两种方法消除。如果按键较多,常用软件方法去抖动,即检测出键闭合后执行一个延时程序,产生12~20ms的延时,让前沿抖动消失后,再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下。当确认有键按下或检测到按键释放后,才能转入该键的处理程序。

46.访问片内RAM低128字节使用哪些寻址方式?访问片内RAM高128字节使用什么寻址方式?访问SFR使用什么寻址方式? 答:访问片内RAM低128字节使用直接寻址,寄存器间接寻址,位寻址;访问片内RAM高128字节使用寄存器间接寻址;访问SFR使用直接寻址,位寻址。

47、简述在使用普通按键的时候,为什么要进行去抖动处理,如何处理。

答:因为普通的按键都是金属触点的,金属触点在接触的瞬间会有一个撞击力导致接触点分开,然后又接触在一起,这样反复直到稳固接触在一起。这种现象叫做按键的抖动,这种抖动如果不进行处理的话,会导致按键误判断。去除抖动的方法有两种硬件和软件。硬件的方法就是在按键连接处使用RS触发器,软件的方法就是在编写程序的时候有个延时操作,利用延时越过抖动状态。

48、什么是LED数码管静态扫描和动态扫描。简述LED数码管动态扫描的原理及其实现方式。

答:数码管静态就是指在给数码管送字型码,这个字形能保持至下一次字型码到来,多于两个数码管的电路只能每个显示一个字型码,而不能显示两个不同的字形,如果要显示不同的字形则要等到下一次送入新的字型码为止。而对于动态显示在多于两个数码管一起显示时,可以先给一个数码管送入一个字型码,让这个字形在这个数码管上显示一段很短的时间,这个时间必须短于人眼的识别时间即几十毫秒一下,然后又接着给另外一个数码管送入不同的字型码,也让这个字形在这个新的数码管上显示一段很短的时间,其实就是让所有的数码管显示的字型码轮流在各个数码管上面显示,就这样重复多次,这样我们利用人眼的惰性看到的显示数码管上面的字形就好像是同时显示一样。数码管采用动态扫描显示时,所有数码管的笔画段的同名端连接在一起共用一个控制引脚,而每个数码管的公共极各自独立,分别与不同控制引脚相连。 编程题

1.设fsoc=11.0592MHz,试编写一段程序,其功能为对串行口初始化,使之工作于方式1,波特率为1200b/s;并用查询串行口状态的方法,读出接收缓冲区的数据并回送到发送缓冲区。#include Void main() {

unsigned char temp; SCON=0x50; TMOD=0x20; TH1=0xE8; TL1=0xE8; TR1=1; while(1) {

while(RI==0); RI=0;

temp=SBUF; SBUF=temp; while(TI==0); TI=0;

}

}

2.若晶振为11.0592MHz,串行口工作于方式1,波特率为4800b/s,用T1作为波特率发生器。编写出函数名为Init的串行口初始化子程序。

void Init(void) {

SCON=0x50; TMOD=0x20; TH1=0xE8; TL1=0xE8; }

3.MCS-51单片机P1端口上,经驱动器连接有8只发光二极管,若fosc=6MHz,试编写程序,使这8只发光二极管每隔2s循环发光一次(要求T0定时)。 #include unsigned char data cou; unsigned int data tim; void main() {

TMOD=0x02; TL0=16; TH0=16; TR0=1; ET0=1; EA=1; P1=0; cou=0; tim=1; While(1); }

void serve() interrupt 1 {

tim++;

if(tim==500) {

P1=0x01<

}

4.用AT89S51单片机的P2口控制8个LED(共阳接法)依次右移1位点亮(亮200ms)。即P2.7亮→P2.6亮→……→P2.1→P2.0亮,重复循环。

#include delay() {}

void main( ) {

inti;

chartable[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe}; while(1) {

for(i=0;i<8;i++) {

P2=tabel[i]; delay(200); } } }

5.利用AT89C51的P1口控制8个发光二极管LED。相邻的4个LED为一组,使2组每隔0.5S交替发亮一次,周尔复始。画出电路图(含最小系统及与外设的连接图)并编写程序。 #include delay() {}

void main() {

inti; while(1) {

P2=0x0f; delay(500); P2=0Xf0; delay(500); }

}

6.编制一个循环闪烁的程序。有8个发光二极管,每次其中某个灯闪烁点亮10次后,转到下一个闪烁10次,循环不止。画出电路图。#include delay() {}

void main() {

inti,j;

chartable[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe}; while(1) {

for(i=0;i<8;i++) {

for(j=0;j<10;j++) {

P2=tabel[i]; delay(200); P2=0XFF; delay(200); } } } }

7.已知51单片机晶振频率是12MHz,使用定时器T1,产生周期为200ms的等宽正方波连续脉冲由P1.2输出,要求以中断方式完成。 #include sbit P12=P1^2; int count=0;


单片机原理及应用期末复习题库(含答案)(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:NL公司-答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: