文库文章 >> 所有标签  >> 文库文章  >> 单片机编程笔试题技巧
单片机编程笔试题技巧
51米多多54842022-03-04

单片机编程是很多大型企业的常见招聘岗位,在招聘从业人员时,用人单位所出具的笔试题目往往涉及的知识点较为全面。

单片机编程重要知识点

1、51单片机

51单片机是最常见的单片机类型,考频较高。51单片机分许多产品,比如常见的有Intel的8031、8051、8751,ATMEL的8951、8952等,考试的时候可能会直接出现某一单片机的产品名,因此要熟记这些常见产品单片机的类型、特点及其功能。同时,单片机中断也是重要考点,对此要记住中断的概念、中断的过程、中断的类型以及编中断程序时需要注意的问题等等。而在单片机实操方面,例如“单片机上电后没有运转,检查步骤是什么”、“单片机主要逻辑功能部件有哪些”等问题也应重点关注。

2、C语言重要语法

单片机编程最基础的是C语言,但单片机C语言和普通C语言语法有差异,对此需要知道区别,比如调用的头文件不一样、编译器的不同会造成单片机C程序编写过程中细节的差异等。另外,51单片机里是要用到指针的,一般在头文件里,而且有些参数比较多的情况下,用指针做为函数间数据调用很方便,因此关于C语言数组、指针语法的使用一定要重点复习。

3、模拟电路重要知识

因为单片机编程属于软硬结合的工程师,在硬件方面,模拟电路肯定是绕不开的。重点应掌握两块必考知识——三极管和运算放大器。三极管的重点在于三极管基本放大电路的原理、模型、电路图和负反馈等,运算放大器则要记住反相比例运算电路、同向比例运算电路、加法减法运算电路、积分微分运算电路等,要求能画出电路图,并写出或推出公式。

单片机编程笔试题集锦

题目1:要求设置一绝对地址为0x67a9的整型变量的值为0xaa66,编译器是一个纯粹的ANSI编译器,写代码去完成这一任务。

答:

int *ptr;

ptr = (int *)0x67a9;

*ptr = 0xaa55;

A more obscure approach is:

题目2:下面的代码就使用了__interrupt关键字去定义了一个中断服务子程序(ISR),请评论一下这段代码。

__interrupt double compute_area (double radius)

{

double area = PI * radius * radius;

printf("nArea = %f", area);

return area;

}

答:1、ISR 不能返回一个值。

2、ISR 不能传递参数。

3、在许多的处理器/编译器中,浮点一般都是不可重入的。有些处理器/编译器需要让额处的寄存器入栈,有些处理器/编译器就是不允许在ISR中做浮点运算。此外,ISR应该是短而有效率的,在ISR中做浮点运算是不明智的。

4、与第三点一脉相承,printf()经常有重入和性能上的问题。

题目3:80C51单片机的寻址方式有哪些?

答:80C51单片机有七种寻址方式:

1、立即寻址,寻址空间为ROM;

2、直接寻址,寻址空间为片内RAM的低128B和特殊功能寄存器;

3、寄存器寻址,寻址空间为A、B、DPTR、CY、通用工作寄存器等;

4、寄存器间接寻址,片内RAM低128B、片外RAM;

5、相对寻址,寻址空间为ROM;

6、变址寻址,寻址空间为ROM;

7、位寻址,寻址空间为片内RAM低128B的位寻址区的128个位,其字节地址为20H~2FH,以及部分可以位寻址的特殊功能寄存器。

总之,想要在应聘单片机编程岗位时有出色的表现,除了应该多浏览常见的笔试题,还应进一步巩固基础知识。

在招职位