更新时间: 试题数量: 购买人数: 提供作者:

有效期: 个月

章节介绍: 共有个章节

收藏
搜索
题库预览
在 C51 语言编程中,编写中断服务函数时需要考虑如何进行现场保护、阻断其他 中断、返回时自动恢复现场等处理的程序段的编写。错 4. 全局变量是在某一函数中存在的变量,它只在该函数内部有效。错 5. 全局变量可使用 static 关键词进行定义,由于全局变量一直存在,占用了大量的 内存单元,且加大了程序的耦合性,不利于程序的移植或复用。对 6. 绝对地址包含头文件定义了几个宏,用来确定各类存储空间的绝对地址。对 三、简答 1. C51 在标准 C 的基础上,扩展了哪几种数据类型 答:扩展了 4 种数据类型,它们是:bit、sfr、sfr16 和 sbit。 2. C51 有哪几种数据存储类型其中数据类型“idata,code,xdata,pdata”各对应 AT89S51 单片机的哪些存储空间 答:C51 有 6 种数据存储类型 data、bdata、idata、xdata、pdata 和 code。 数据存储类型 idata 对应片内 RAM 的 256 字节。 数据存储类型 code 对应程序存储区。 数据存储类型 xdata 对应片外 64KB 的 RAM 空间。 数据存储类型 pdata 对应片外 RAM 的 256 字节。 3. bit 与 sbit 定义的位变量有什么区别 答:bit 是用来定义普通的位变量,它的值只能是二进制的 0 或 1。而 sbit 定义的是 特殊功能寄存器的可寻址位,它的值是可以进行位寻址的特殊功能寄存器的某位的绝 对地址,例如 PSW 寄存器 OV 位的绝对地址 0xd2。 4. 说明 3 种数据存储模式(  )SMALL 模式(  )COMPACT 模式(  )LARGE 模式之间的 差别。 答:3 种数据存储模式之间的差别如下: (  )SMALL 模式。在该模式下,所有变量都默认位于 8051 单片机内部的数据存 储器,这与使用 data 指定存储器类型的方式一样。在此模式下,变量访问的效率高, 但是所有数据对象和堆栈必须使用内部 RAM。 (  )COMPACT 模式。本模式下的所有变量都默认在外部数据存储器的 1 页(256 字节)内,这与使用 pdata 指定存储器类型是一样的。该存储器类型适用于变量不超 过 256 字节的情况,此限制是由寻址方式决定的,相当于使用数据指针@Ri 进行寻址。 与 SMALL 模式相比,该存储模式的效率比较低,对变量访问的速度也慢一些,但比 LARGE 模式快。 (  )LARGE 模式。在 LARGE 模式下,所有变量都默认位于外部数据存储器,相当 于使用数据指针@DPTR 进行寻址。通过数据指针访问外部数据存储器的效率较低,特 别是当变量为 2 字节或更多字节时,该模式要比 SMALL 和 COMPACT 产生更多的代码。 5. do-while 构成的循环与 while 循环的区别是什么 答:(  )while 语句。while 语句的语法形式为: while(  ) { 循环体语句; } 表达式是 while 循环能否继续的条件,如果表达式为真,就重复执行循环体语 句;反之,则终止循环体内的语句。 while 循环的特点在于,循环条件的测试在循环体的开头,要想执行重复操作, 首先必须进行循环条件的测试,如果条件不成立,则循环体内的重复操作一次也不能 执行。 (  )do-while 语句。do while 语句的语法形式为: do { 循环体语句; } while(  ); do-while 语句的特点是先执行内嵌的循环体语句,再计算表达式,如果表达式 的值为非 0,则继续执行循环体语句,直到表达式的值为 0 时结束循环。 由 do-while 构成的循环与 while 循环十分相似,它们之间的重要区别是:while 循环的控制出现在循环体之前,只有当 while 后面表达式的值非 0 时,才可能执行循 环体,在 do-while 构成的循环中,总是先执行一次循环体,然后再求表达式的值, 因此无论表达式的值是 0 还是非 0,循环体至少要被执行一次。 四、编程 1. 编写 C51 程序,将单片机片外 2000H 为首地址的连续 10 个单元的内容,读入到片 内 RAM 的 40H~49H 单元中。 答:将片外 2000H 为首地址的连续 10 个单元的内容,读入到片内 RAM 的 40H~49H 单 元中。程序如下: xdata unsigned char buffer1[10] _at_ 0x2000; data unsigned char buffer2[10] _at_ 0x40 void main(  ) { unsigned char i; for(i=0; i<10; i++) { buffer2[i]= buffer1[i] } } 2. 编写将单片机片内一组 RAM 单元清 0 的函数,函数内不包括这组 RAM 单元的起始 地址和单元个数,起始地址和单元个数参数应在执行函数前由主函数赋值。 答:参考程序如下:
P0 口作为通用 I/O 端口使用时,外部引脚必须接上拉电阻,因此它是一个准双向 口。对 3. P1~P3 口作为输入端口用时,必须先向端口寄存器写入 1。对 4. P0~P3 口的驱动能力是相同的。错 5. 当显示的 LED 数码管位数较多时,动态显示所占用的 I/O 口多,为节省 I/O 口与 驱动电路的数目,常采用静态扫描显示方式。错 6. LED 数码管动态扫描显示电路只要控制好每位数码管点亮显示的时间,就可造成“多 位同时亮”的假象,达到多位 LED 数码管同时显示的效果。错 7. 使用专用的键盘/显示器芯片, 可由芯片内部硬件扫描电路自动完成显示数据的扫 描刷新,和键盘扫描。对 8. 控制 LED 点阵显示器的显示,实质上就是控制加到行线和列线上的电平编码来控 制点亮某些发光二极管(  ),从而显示出由不同发光的点组成的各种字符。对 9. 16×16 点阵显示屏是由 4 个 4×4 的 LED 点阵显示器组成。错 10. LCD 1602 液晶显示模块,可显示 2 行,每行 16 个字符。对 12. LED 数码管的字型码是固定不变的。错 13. 为给扫描法工作的 8×8 的非编码键盘提供接口电路,在接口电路中需要提供两 个 8 位并行的输入口和一个 8 位并行的输出口。错 14. LED 数码管工作于动态显示方式时,同一时间只有一个数码管被点亮。 15. 动态显示的数码管,任一时刻只有一个 LED 数码管处于点亮状态,是 LED 的余辉与人眼的“视觉暂留”造成数码管同时显示的“假象”。 对 三、简答 2. LED 的静态显示方式与动态显示方式有何区别各有什么优缺点 答:静态显示时,欲显示的数据是分开送到每一位 LED 上的。而动态显示则是数据是 同时送到每一个 LED 上,再根据位选线来确定是哪一位 LED 被显示。静态显示亮度很 高,但口线占用较多。动态显示口线占用较少,但是需要编程进行动态扫描,适合用 在显示位数较多的场合。 第 6 章 思考题及习题 6 参考答案 一、填空
1