(完整版)单片机原理及应用——基于Proteus和Keil_C 林立_张俊亮毕业论文

发布时间 : 星期一 文章(完整版)单片机原理及应用——基于Proteus和Keil_C 林立_张俊亮毕业论文更新完毕开始阅读

PSW.2 :溢出标志位OV,有符号数加、减运算结果有溢出或乘除上结果异常(乘法运算结果大于255即乘积在BA中,或除法运算除数为0)时置1 PSW.0:奇偶标志位P,累加器A中1的个数为奇数时置1。

8.什么是时钟周期?什么是机器周期?什么是指令周期?当振荡频率为12MHz时,一个机器周期为多少微秒?

答:时钟周期又叫振荡周期或拍,用P表示,是MCS-51单片机中最小的时间单位,在一个时钟周期内,CPU完成一个最基本的动作。 机器周期:由12个时钟周期构成,完成一个基本操作

指令周期:是执行一条指令所需的时间,根据指令的复杂性,可由1~4个机器周期构成。

当振荡频率为12MHz时,一个机器周期为1微秒。 9.P0、P1、P2和P3口的结构和功能分别是什么?

答:P0口的每一位由1个锁存器 、2个三态缓冲器 、1个输出控制电路(非门 X、与门、电子开关MUX、输出驱动电路构成,其功能既可以作为通用IO口实现输入输出功能,也可作为单片机地址线的低8位和数据线实现外部扩展功能。在用作输入输出口时,需外接上拉电阻。

P1口的每一位由1个锁存器 、1个场效应管驱动器V和2个三态门缓冲器构成,其作用是用作输入输出口

P2口的每一位由1个锁存器、2个三态缓冲器、1个输出控制单元、1个输出驱动单元构成,其功能是用作输入输出口,或地址总线的高8位。

P3口的每一位由1个锁存器、2个三态缓冲器、1个第二功能控制单元 、1个输出驱动单元构成,其作用是用作输入输出口或第二功能。 10.51单片机引脚ALE的作用是什么?当51不外接存储器时,ALE上的输出的脉冲频率是多少?

答:51单片机引脚ALE的作用是对外部存储寻址时锁存P0口输出的低8位地址,当51不外接存储器时,ALE上的输出的脉冲频率是fosc6。

第3章 单片机的汇编语言与程序设计 习题

1.MCS-51单片机有哪几种寻址方式?适用于什么地址空间?

答:MCS-51单片机有7种寻址方式:直接寻址、寄存器寻址、寄存器间接寻址、立即寻址、变址寻址、位寻址、相对寻址。

直接寻址方式:操作数的地址由指令直接给出,适用于片内RAM的所有地址空间;如

MOV

A,68H

MOV A,PSW

寄存器寻址方式:指令给出的是寄存器的编码,操作数在编码指定的寄存器中,适用于片内00H至1FH的32个字节,用R0,…,R7表示,通过PSW的RS1和RS0选择组号确定对应32个字节中的其中8个,还有累加器A,以及乘除法指令中的A和B寄存器,位寻址方式中的布尔累加器C;

MOV MUL INC

A,R1 AB DPTR

寄存器间接寻址方式:指令给出的是寄存器的编码,操作数地址在编码指定的寄存器中,适用于片内RAM的全部空间,其中52系列中的80H至FFH只能用寄存器间接寻址;如 MOV

MOV

A,@R1

A,@R0

MOVX A,@DPTR

立即寻址方式:操作数本身在指令中直接,给出适用于用8位立即数对片内RAM所有地址单元赋值,也可用16位立即数对DPTR赋值; 如

MOV MOV

A,#0E2H DPTR,#2000H

变址寻址方式:以DPTR或PC作为基地址寄存器,以累加器A作为变址寄存器,将基址寄存器与变址寄存器的内容相加形成操作数的实际地址的一种寻址方式,变址寻址方式适用于程序存储器ROM,仅有三条指令如下:

MOVC A,@A+DPTR

MOVC A,@A+PC JMP

@A+DPTR

位寻址方式:指令中直接给出操作数所在单元的位地址,适用于片内RAM中地址20H至2FH中的16个字节中的128个位地址空间和80H至FFH中地址中可以被8整除的所有SFR中的每个位地址空间;如

MOV MOV MOV

C,7FH F0,C C,ACC.7

相对寻址方式:为相对转移指令而设,指令中直接给出转移的相对偏移量,其转移目标在当前指令-128至+127字节范围内的地址空间。如

SJMP START

;等效于:

SJMP $

HERE: SJMP HERE

2.MCS-51单片机的PSW程序状态字中无ZERO(零)标志位,怎样判断某内部数据单元的内容是否为零?

答:MCS-51单片机的PSW程序状态字中无ZERO(零)标志位,判断某内部数据单元的内容是否为零是能通过取数到A累加器,再判断A中的每一位是否为零来确定其值是否为零。

3.编程将内部RAM的20H--30H单元内容清零。

解:设一个片内RAM指针R0,先指向首地址20H,通过累加器A清零,然后采用间接寻址方式依次将A中的零值传送到指针所指的片内RAM单元,

每传送一个字节,地址指针加1,直到达到地址为30H或达到计数器规定的17个字节为止。 程序1:

MOV CLR

R0,#20H A

;设地址指针初值 ;累加器清0 ;置0指针所指单元 ;地址指针加1

CONT: MOV

INC

@R0,A R0

CJNE R0,#31H,CONT ;指针未超过终点则继续 SJMP $

;暂停

程序2:

MOV CLR MOV

R0,#20H A

;设地址指针初值 ;累加器清0

;计数器赋初值,从20H到30H共17个字节 ;置0指针所指单元 ;地址指针加1

R7,#17 @R0,A R0

CONT: MOV

INC

DJNZ R7, CONT ;计数器减1,非0,则继续 SJMP $

;暂停

4.编程查找内部RAM的32H~41H单元中是否有0AAH这个数据,若有这一数据,则将50H单元置为0FFH,否则将50H单元清零。

解:设一个片内RAM指针R0,先指向首地址32H,比较@R0与#0AAH,若相等,则退出循环,给50H单元赋0FFH,若不相等,则R0加1为继续比较下一个字节做准备,直到达到地址为41H或达到计数器规定的16个字节为止还没找到,则给50H单元赋00H 程序1:

MOV

R0,#32H

;设地址指针初值

联系合同范文客服:xxxxx#qq.com(#替换为@)