《单片机原理》复习提纲
一 单片机的基本概念
1、数制转换、计算机的码制(原码、反码、补码); 2、计算机的三总线:地址总线、控制总线、数据总线; 3、RAM、ROM的概念; 4、堆栈的概念、作用及工作方式; 二 硬件结构
1、8051单片机的主要内部资源;
2、什么是机器周期?机器周期与晶振周期的关系?机器周期的时序如何划分?
3、8051单片机片内RAM的空间分配;片内RAM地址范围(00-FFH),最大可扩展容量64K; 2. 8051芯片/PSEN引脚是读外部ROM的选通信号,即该引脚有效时,ROM允许输出。MCS-51单片机扩展I/O口时将其看做外部RAM 存储器的一个单元,与其统一编址,提供16 位寻址能力,寻址范围是64KB。 4、定时器/计数器功能、工作方式;
5、串行通信的帧格式:起始位、数据位、停止位、奇偶校验位;波特率的概念;
6、8051单片机的中断源(5个)及优先级;外部中断的触发方式(电平和边沿);中断处理过程(保护现场、处理中断源请求、恢复现场)。 7.8255A是可编程的I/O口扩展芯片,具有3个8 位并 行的可扩展I/O口。
1
三 指令和汇编程序
1、8051单片机的7种寻址方式(访问内、外部RAM可用哪些寻址方式);
2、熟练掌握各种指令的功能;掌握伪指令的用法; 3、能阅读及编写简单汇编程序,能编写定时器应用程序; 四 单片机的扩展
1、扩展的地址线(P0、P2)、数据线(P0)和控制线;加锁存器74LS373的作用;
2、EPROM27××的扩展接口及地址确定; 3、RAM芯片6264的扩展接口及地址确定; 五 单片机C语言编程
1.C51语言常用关键字的理解;
2、C51数据存储类型与存储空间对应关系 3、SFR的C51定义方法
4、C51绝对地址访问用法(CBYTE,DBYTE,PBYTE,XBYTE等) 5、熟悉简单C51程序编写的一般方法(如定时器、中断等)。 六 单片机的接口及应用
1、LED的两种扫描显示方式(静态和动态)、LED的接法(共阴和共阳);单片机键盘有独立式和行列式,其机械抖动时间一般5-10ms;
2、LED的接口及编程。
3、ADC0809和DAC0832的一般了解
2
部分复习题: 一 简答题
1、什么是机器周期?一个机器周期的时序是如何划分的? 2、简述MCS-51单片机的中断处理过程一般包括那些内容? 3、什么是字长?51单片机字长是多少? 4、如何通过单片机系统总线扩展I/O接口?
5、51单片机有多少条指令?按操作功能分有哪5大类? 6、SJMP,AJMP和LJMP指令在功能上有何不同?
7、8051单片机内部有几个定时器/计数器?它们是由哪些特殊功能寄存器组成? 8、中断服务子程序与普通子程序有哪些异同之处?
9、在MSC-51单片机系统中,外接程序存储器和数据存储器共用16位地址线和8位数据线,为什么不会发生冲突?
10、什么是RAM存储器?简述8051片内RAM的空间分配? 11、对访问内部RAM和外部RAM,各应采用哪些寻址方式? 12、写出8051单片机的内部资源。
13、什么是堆栈?堆栈的主要作用是什么?其工作方式如何?
答:堆栈是RAM中的一个特殊区域,是一组按照“先进后出”方式工作的,用于暂存信息的存储单元。主要作用是保护断点地址和保存现场信息。 14、什么是寻址方式?MCS-51系列单片机有哪几种寻址方式? 15、简要描述单片机系统的PROTEUS设计及仿真步骤?
16、将地址为1000H的程序存储单元内容,送入地址为100H的片外数据存储单元中。(用C语言)
17、(1)完成以下的数据传送:片外RAM 200H单元的内容送片内RAM 20H单
元。(C语言)
(2)用指令实现以下数据的传送: ROM 1000H 单元的内容送片外RAM 100H单元。(用汇编语言) 18、将外部RAM 30H单元内容高3位清零,低3位取反,其它位不变。(用汇编) 19、完成以下的数据传送:片外 RAM 20H单元的内容送片内RAM 20H单元。(C和汇编)
20、用汇编写程序段:将外部RAM 3000H单元内容所有位置1。 21.简述C51变量存储类型与存储空间的对应关系。
3
22.8051片内RAM低128单元划分为哪三个主要部分?各部分主要功能是什么? 23.PC和DPTR分别是多少位寄存器?各有什么作用?
24、MCS-51系列单片机的引脚中有多少根I/O线?它们与单片机对外的地址总线和数据总线之间有什么关系?对外可寻址的地址空间有多大? 二、程序分析及编程
1、已知(30H)=30H,(40H)=40H,(R0)=50H,(R7)=60H, (SP)=07H。请给出下列指令执行后的结果,并说明源操作数寻址方式。
MOV SP,#70H MOV A,#23H
ORL A,#48H ; MOV R0,30H MOV 40H,@R0 XRL A, R7 MOV B,R7 ; PUSH B ; POP 50H
2已知:(50H)=0A1H ,(51H)=36H ,(SP)=07H,请给出下列指令执行后注释中的结果。并说明源操作数寻址方式
MOV 52H,50H ORL 52H,#0FH MOV A,51H RL A ANL 52H,A MOV SP,#65H PUSH A POP A
END
3、用P1口驱动8个LED数码管,实现流水灯的效果(低电平点亮),补全代码。 #include (1) #include
#define uchar (2) void DelayMS(uint x) { uchar i; while(x--)
{ for(i=120;i>0;i--); } }
void main()
{ P1 = (3) while(1)
4
{ (4) =_crol_(P1,1);; DelayMS(150); }
}
4、完成下列中断程序,实现当开关闭合后,在外部中断服务程序中实现蜂鸣器的鸣响,当开关打开后,蜂鸣器静止。
#include \
#define uchar unsigned char #define uint unsigned int sbit BEEP= (1) void init1() {
EA= (2) EX0= (3) IT0=0; }
void int0( ) interrupt (4) { uint i;
BEEP= (5) for(i=300;i>0;i--); BEEP=1;
for (i=300;i>0;i--);
}
main()
{ init1(); for(;;); }
5、试编程:将ROM 中以TAB 为初址的30个单元的内容依次传送到片内RAM 以10H 为初址的区域去(用汇编) 解:
START: MOV DPTR,#TAB
MOV R0,#10H MOV R2,#30
LOOP: CLR A
5