单片机编程面试题 单片机编程例题


单片机编程面试题 单片机编程例题

文章插图

单片机编程是很多大型企业的常见招聘岗位 , 在招聘从业人员时 , 用人单位所出具的笔试题目往往涉及的知识点较为全面 。
单片机编程重要知识点
【单片机编程面试题 单片机编程例题】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 , 以及部分可以位寻址的特殊功能寄存器 。

单片机编程面试题 单片机编程例题

文章插图

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