单片机考试复习题及答案 下载本文

14、变量tmp=0x15,经运算tmp>>=4;后的tmp值为21。

15、液晶LCD1602模块,实际显示区有2行,每行显示16个5*7点阵的ASICII字符。

16、当系统处于正常工作状态且振荡稳定后,在RST引脚上加一个高 电平并维持两个个机器周期,可将系统复位。

17、中断请求信号有边缘触发和电平触发两种触发方式。 18. 当系统处于正常工作状态且振荡稳定后,在RST引脚上加一个高电平并维持 (两) 个机器周期,可将系统复位。

19. 中断请求信号有 电平触发 和 脉冲触发 两种触发方式。

20. 在8051单片机中,如采用6MHZ晶振,一个机器周期,一个周期为(2)us。 21. 8051单片机有 5个中断源, 2 级中断优先级别。

22. MCS-51单片机中有 2 个 16 位的定时/计数器,可以被设定的工作方式有 4种。

23. 消除键盘抖动的常用两种方法,一是采用 硬件去抖电路 ,用基本RS触发构成;二是采用 软件去抖程序 ,既测试有键输入时需延时 5-10ms 后再测试是否有键输入,此方法可判断是否有键抖动。

24. 计算机的系统总线有 数据局总线 、 系统总线 、和 控制总线 。

25. 8051有两个16位可编程定时/计数器,其中定时作用是指对单片机对内部晶振频率 内部时钟 脉冲进行计数,而计数器的作用是指对单片机外部事件。

26.已知1只共阴极LED显示器,其中a笔端为字型代码的最低位,若需显示数字5,它的字型代码应为 0x6d;若需显示字符‘A’,其字型代码为 0x77 。

27.完整的中断处理的过程包括三个阶段,即 中断请求 、中断响应、以及 中断处理 。 28.MCS-51内有5个中断源,按其自然优先级从高到低的排列顺序为 外部0

、 定时器/计数器0、 外部1 、 定时器/计数器1 、 串口,它们所对应的c51中断入口序号分别为0、1、2、3、4。

29.8051单片机一个字节所能表示的无符号数的范围为 00-255 ,而带符号所能表示的无符号数的范围为 -128-127 。

简答题

1、什么叫中断?设置中断有什么优点?

使CPU暂停运行原来的程序而应更为急迫事件的需要转向去执行为中断源服务的程序,待该程序处理完后,再返回运行源程序

优点:可以提高cpu工作效率。具有故障处理功能。实现时分操作,控制多个外设同时工作。

2、AT89S51采用6MHz的晶振,写出用定时器方式1时产生2ms定时中断的初值计算过程并确定其初值(16进制数)是多少?

对于12MHz的时钟,51单片机的机器周期就为 1/(12000000/12)=1us

那么对于定时1ms,需要定时器计数的个数就为 1ms/1us=1000

那么,对于方式1,需要装入的时间常数就为 2^16-1000=64536——0xfc18

3、简述中断的概念。

使CPU暂停运行原来的程序而应更为急迫事件的需要转向去执行为中断源服务的程序,待该程序处理完后,再返回运行源程序

4、什么是单片机?简述单片机的应用领域。

单片机又称单片微控制器,是把一个计算机系统集成到一个芯片上。

1、智能产品2、智能仪表3、测控系统4、 数控系统

5、什么叫中断?中断有什么特点?

中断:使CPU暂停运行原来的程序而应更为急迫事件的需要转向去执行为中断源服务的程序,待该程序处理完后,再返回运行源程序。 中断特点:(1)中断类型码或者由指令给出.或者是预先规定的;(2)不执行INTA*(中断应答)总线周期; (3)除单步中断外,任何内部中断都无法禁止;(4)除单步中断外,任何内部中断的优先级都比外部中断高。 完整中断的基本功能:(1)响应中断、处理中断与返回;(2)实现优先权排队;(3)高级中断源能中断低级的中断处理

6、单片机用内部定时器方法产生频率为100KHz等宽距形波,假设单片机的晶振频率为12MHz,请编程实现。

void Timer0Init(void) // 定时1ms@12.000MHz {

AUXR |= 0x80; //定时器时钟1T模式 TMOD &= 0xF0; //设置定时器模式 TMOD |= 0x01; //设置定时器模式 TL0 = 0xA8; //设置定时初值 TH0 = 0xFD; //设置定时初值 TF0 = 0; //清除TF0标志 ET0 = 1; //中断使能 TR0 = 1; //定时器0开始计时 }

//定时器0中断服务函数

//定时器0中断服务函数 bit flag=0;//用于电平翻转

void timer0_isr(void) interrupt 1 {

TL0 = 0xA8; //设置定时初值 TH0 = 0xFD; //设置定时初值 P1.7=~flag;//电平翻转 }

7. 利用T0的工作模式0产生定时,在P1.0引脚输出周期为10ms的方波。设晶振频率fosc=12MHz.编程实现其功能(分别采用查询方式和中断方式) 中断:#include //52单片机头文件

#include //包含有左右循环移位子函数的库 #define uint unsigned int //宏定义 #define uchar unsigned char //宏定义 sbit P1_0=P1^0; uchar tt;

void main() //主函数 { TMOD=0x01;//设置定时器0为工作方式1 TH0=(65536-50000)/256; TL0=(65536-50000)%6; EA=1;//开总中断

}

ET0=1;//开定时器0中断 TR0=1;//启动定时器0 while(1);//等待中断产生

void timer0() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%6; tt++; if(tt==100) { tt=0; P1_0=~P1_0; } }

8. 如何消除键盘的抖动?

消除键盘抖动的常用两种方法,一是采用 硬件去抖电路 ,用基本RS触发构成;二是采用 软件去抖程序

9. 在使用8051的定时器/计数器前,应对它进行初始化,其步骤是什么? TMOD 选择定时器 以及定时器工作模式 THn TLn 设定初始值 TRn 开始运行

10. 已知P3口接有发光二极管的阴极,编写程序使发光二极管闪烁三次。

11. 共阳极数码管,写出0~9的显示编码。

0:0xc0 1:0xf9 2:0xa4 3:0xb0 4:0x99 5:0x92 6:0x82 7:0xf8 8:0x80 9:0x90

12. 89C51单片机晶振fosc=6MHz,T0中断工作在模式1,最大定时的时长是多少? 方式0:13位定时器,所以定时时间范围最大为2^13 * 2us = 16.384ms 方式1:16位定时器,所以定时时间范围最大为2^16 * 2us = 131.072ms 方式2:8位重装定时器,所以定时时间范围最大为2^8 * 2us = 512us 12mhz

12MHz时一个指令周期为1μs。

模式0是13位计数器,因此最大定时时长2的13次方 = 8192μs。 模式1是16位计数器,因此最大定时时长2的16次方 = 65536μs。 模式2是可重载8位计数器,单次定时时长2的8次方 = 256μs

13.已知focs=12MHZ,利用定时器T1使P1.1口发光二极管进行秒闪烁。即亮500ms,暗500ms,用C51写出程序。 #include #define th1 0x36

#define tl1 0xb0 //500ms @12MHz Fosc sbit LED=P1^7;

void Timer1()interrupt 3 {

TL1=tl1; TH1=th1; LED=~LED; }

void TimerInit() {

TMOD=0x01; TH1=th1; TL1=tl1; EA=1; ET1=1; TR1=1; }

void main() {

TimerInit(); while(1); }

14.已知单片机系统晶振频率为6MHZ,若要求定时值为10ms时,定时器T0工作方式1时,定时器T0 对应的初值是多少?TMOD的值是多少?TH0=? TL0=? TMOD=0X01;

TH0=(65536-5000)/256;=0xec TL0=(65536-5000)%6;=0x78

15.请说明为什么使用LED需要接限流电阻,当高电平为+5V时,正常点亮一个LED需要多大阻值的限流电阻(设LED的正常工作电流为10mA,导通压降为2V),为什么? R=(5-2)/10mA=300欧

16.简述LED数码管动态扫描的原理及其实现方式。

数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划\的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。 通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动

17.指出下面程序的语法错误并改正。 #include main() { a=C;

Int a=7,C