单片机考试复习题与答案-(13149) 下载本文

```

4、单片机89C51的时钟频率为6MHZ,若要求定时1ms,定时/计数器工作于模式1,其定时/计数器的初值为 FE0CH 。

5、 函数 是C语言的基本单位。

6、定时/计数器T0作为计数器使用时,其计数频率不能超过晶振频率fosc的 1/24 。 7、单片机C51语言源程序从 main函数 开始执行。每个C语言程序必须有一个且只能有一个 main函数 。C51程序的函数由 函数首部 和 函数体 两部分构成。

8、C51定义可寻址位,使用关键字为 sbit ,定义特殊功能寄存器当中的某位用关键字 sfr 。 9、修饰符interrupt m中m的取值为0对应的中断情况是 外部int0 中断。 10、8051子系列单片机片内有两个 16 位的定时/计数器。 11、LED数码管的显示方式有 共阴 和 共阳 两种。 12、变量a1=0x92,if(a1)结果是 (真/假)。

13、运算符号“=”用于 赋值 ,符号“==”用于 恒等于 。 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); }

````