盐工单片机期末复习题(1)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
B电气0812单片机测验(2011.5.16)
一.填空题(每空1分,共20分)
1. 已知两个数的真值为:X=-55,Y=108,则[X+Y]补= 35H 。
2.微型计算机组成包括 CPU 、存储器、 I/O接口、总线四部分。
3. 在MCS-51单片机中,如果采用12MHz晶振,1个机器周期为 1μs 。
4. 单片机对外三总线分别为地址总线、数据总线和控制总线。
5. 8051单片机内部有 2 个定时器, 4个并行口和 1 个全双工串行口,5
个中断源。
6. 8051单片机内部有 4 KB的ROM, 128 B的RAM,SFR是特殊功能寄
存器。
7. 单片机的扩展包括外部数据存储器的扩展、外部程序存储器的扩展、
输入/输出接口的扩展和管理功能器件扩展。
二.说明题(每小题4分,共20分)
1.8051单片机的控制引脚有哪些,各起什么作用?
答:RST/VPD(9脚): RST即为RESET, VPD为备用电源, 所以该引脚为单片
机的上电复位或掉电保护端。
ALE(30脚):(Address Latch Enable/PROGramming) 当访问外部存储器时,ALE(允许地址锁存信号)以每机器周期两次的信号输出,用于锁存出现在P0
口的低8位地址。
PSEN(29脚):(Program Strobe ENable)片外程序存储器读选通信号输出端, 低电平有效。
EA(31脚):(Enable Address/Voltage Pulse of Programing)为访问外部
程序存储器控制信号。
另外P3口的每一个引脚都有第二功能,第二功能都是作为控制应脚,如下
表所示。2.8051单片机的四种工作方式各是什么工作方式?用户如何设定?
答:单片机的四种工作方式如下表:
用户通过对工作方式寄存器TMOD各位赋值来设定单片机的四种工作方式。
3.什么是并行通信,什么是串行通信,各用在什么场合?
答:并行通信是构成1组数据的各位同时进行传送,例如8位数据或16位数据并行传送。
并行通信的特点是传输速度快,但当距离较远、位数又多时导致了通信线路复杂且成本高。
串行通信是数据一位接一位地顺序传送。
串行通信的特点是通信线路简单,只要一对传输线就可以实现通信(如电话线),从而大大地降低了成本,特别适用于远距离通信。缺点是传送速度慢。
4.解释中断的含义。
答:CPU执行程序时,由于发生了某种随机的事件(外部或内部的),引起CPU 暂时中断正在运行的程序,转去执行一段特殊的服务程序(称为中断服务程
序或中断处理程序),以处理该事件,该事件处理完后又返回被中断的程序继续执行,这一过程称为中断。
5.单片机最小应用系统是什么意思?
答:单片机最小应用系统是指一个真正可用的单片机最小配置系统。
片内带程序存储器的单片机,如8051、 8751、8052,由单片机本身、时钟电路、复位电路即可构成最小应用系统。
片内不带程序存储器的单片机,如8051、 8751、8052,由单片机本身、时钟电路、复位电路,还要加上片外程序存储器与地址锁存器才能构成最小应用系统。
三.阅读程序,回答问题(共20分)
1. #include
void delay (void)
{
unsigned int a=5000;
while(a--);
}
main()
{
P1=0x00;
IT1=1;
EA=1;
EX1=1;
while(1);
}
void int0_srv (void) interrupt 2 using 1
{
delay();
P1=0xff;
}
假设P1口接了8个发光二极管(共阴极),请说明程序的功能。(10分)答:系统上电正常工作时,P1口所接8个发光二极管全灭,当外部中断1提出请求时,且CPU响应中断时,P1口8个发光二极管全部点亮。
2.#include “reg51.h”
unsigned char code table[]=
{0x7f, 0xbf, 0xdf, 0xef, 0xf7, 0xfb, 0xfd,
0xfe,0x3f,0xcf,0xfc,0xf3,0xfe,0xfd,0xfb,0xf7,0xef
,0xdf,0xbf,
0x7f,0xfc,0xf3,0xcf,0x3f,0x7e,0x3c,0x18,0x00,0xe7
,0xc3,0x81,0x01};
unsigned char i=0;
void delay(void)
{
unsigned int m;
for(m=65536;m>0;m--);
}
void main(void)
{
while(1)
{
if(table[i]!=0x01)
{
P1=table[i];
i++;
delay();
}
Else
{
i=0;
}
}
}
上述程序是一个彩灯控制程序(彩灯所接发光二极管为共阳极),请仔细阅读程序说明彩灯按何种规律点亮?(10分)
答:P1.7接的灯为左边,P1.0接的灯为右边
从左向右,每次点亮一个灯;