单片机原理及接口技术实验报告

单片机原理及接口技术实验报告
单片机原理及接口技术实验报告

单片机原理及接口技术

实验报告

任课教师

班级

姓名

日期

实验一构建单片机最小系统和实验环境熟悉

一、单片机最小系统的组成原理图

二、单片机的工作原理:

1.运算器

运算器包括算术逻辑运算单元ALU、累加器ACC、寄存器B、暂存器TMP、程序状态字寄存器PSW、十进制调整电路等。它能实现数据的算术逻辑运算、位变量处理和数据传送操作。

(1)算术逻辑单元ALU

ALU在控制器根据指令发出的内部信号控制下,对8位二进制数据进行加、减、乘、除运算和逻辑与、或、非、异或、清零等运算。它具有很强的判跳、转移、丰富的数据传送、提供存放中间结果以及常用数据寄存器的功能。MCS-51中位处理具有位处理功能,特别适

用于实时逻辑控制。

(2)累加器ACC

累加器ACC是8位寄存器,是最常用的专用寄存器,它既可存放操作数,又可存放运算的中间结果。MCS—51系列单片机中许多指令的操作数来自累加器ACC。累加器非常繁忙,在与外部存储器或I/O接口进行数据传送时,都要经过A来完成。

(3)寄存器B

寄存器B是8位寄存器,主要用于乘、除运算。乘法运算时,B中存放乘数,乘法操作后,高8位结果存于B寄存器中。除法运算时,B中存放除数,除法操作后,余数存于寄存器B中。寄存器B也可作为一般的寄存器用。

(4)程序状态字PSW

程序状态字是8位寄存器,用于指示程序运行状态信息。其中有些位是根据程序执行结果由硬件自动设置的,而有些位可由用户通过指令方法设定。PSW中各标志位名称及定义如下:

CY():进(借)位标志位,也是位处理器的位累加器C。在加减运算中,若操作结果的最高位有进位或有借位时,CY由硬件自动置1,否则清“0”。在位操作中,CY作为位累加器C 使用,参于进行位传送、位与、位或等位操作。另外某些控制转移类指令也会影响CY位状态(第三章讨论)。

AC():辅助进(借)位标志位。在加减运算中,当操作结果的低四位向高四位进位或借位时此标志位由硬件自动置1,否则清“0”。

F0():用户标志位,由用户通过软件设定,决定程序的执行方式。

RS1(),RS0():寄存器组选择位。用于设定当前通用寄存器组的组,其对应关系如下:

01组108~0FH

10组210~17H

11组318~1FH

OV():溢出标志位。它反映运算结果是否溢出,溢出时OV=1;否则OV=0。OV可作为条件转移指令中的条件。

:未定义位。

P():奇偶标志位。P=1,表示ACC中1的个数为奇数;否则P=0。P也可以作为条件转移指令中的条件。

二、控制器

控制器包括定时控制逻辑(时钟电路、复位电路),指令寄存器,指令译码器程序计数器PC,堆栈指针SP,数据指针寄存器DPTR以及信息传送控制部件等。

1.时钟电路

MCS—51系列单片机芯片内部有一个高增益反相放大器,输入端为XTAL1,输出端为XTAL2,一般在XTAL1与XTAL2之间接石英晶体振荡器和微调电容,从而构成一个稳定的自激振荡器,就是单片机的内部时钟电路,如图(A)所示。时钟电路产生的振荡脉冲经过二分频以后,才成为单片机的时钟信号。电容C1和C2为微调电容,可起频率稳定、微调作用,一般取值在5~30pf之间,常取30pf。晶振的频率范围是~12MHz ,典型值取6 MHz。XTAL1接地,XTAL2接外部震荡器,外接信号应是高电平持续时间大于20ns的方波,且脉冲频率应低于12 MHZ。如图(B)所示。

(A)内部时钟电路(B)外部振荡源

2.复位电路

对于使用6MHZ的晶振的单片机,复位信号持续时间应超过4μs才能完成复位操作。产生复位信号的电路有上电自动复位电路和按键手动复位电路两种方式。

上电自动复位是通过外部复位电路的电容充电来实现的,该电路通过电容充电在RST 引脚上加了一个高电平完成复位操作。上电自动复位电路如图(a)所示。

按键手动复位电路。按键手动复位是通过按键实现人为的复位操作,按键手动复位电路如图(b)所示。

复位后内部暂存器的状态如下:

PC0000H TCON00H

ACC00H TL000H

PSW00H TH000H

SP07H TL100H

DPTR0000H TH100H

P0~P3FFH SCON00H

IP××000000B SBUF不定

IE0×000000B PCON0×××0000B

TMOD00H

3.指令寄存器和指令译码器

指令寄存器中存放指令代码,CPU执行指令时,由程序存储器中读取的指令代码送入指令存储器,经译码器后由定时与控制电路发出相应的控制信号,完成指令所指定的操作。

4.程序计数器PC

PC是一个16位计数器,其内容为单片机将要执行的指令机器码所在存储单元的地址。PC 具有自动加1的功能,从而实现程序的顺序执行。由于PC不可寻址的,因此用户无法对它直接进行读写操作,但可以通过转移、调用、返回等指令改变其内容,以实现程序的转移。PC的寻址范围为64KB,即地址空间为0000~0FFFFH。

5堆栈指针SP

SP为8位寄存器,用于指示栈顶单元地址。所谓堆栈是一种数据结构,它只允许在其一端进行数据删除和数据插入操作的线性表。数据写入堆栈叫入栈(PUSH),数据读出堆栈叫出栈(POP)。堆栈的最大特点是“后进先出”的数据操作原则。MCS-51系统复位后,SP 初始化为07H。

6. 数据指针DPTR

数据指针DPTR为16位寄存器,它是MCS—51中唯一的一个16位寄存器。编程时,既可按16位寄存器使用,也可作为两个8位寄存器分开使用。DPH 为DPTR的高八位寄存器,DPL 为DPTR的低八位寄存器。DPTR通常在访问外部数据存储器时作为地址指针使用,寻址范围为64KB。

三、存储单元数据传输

ORG 0000H

JMP MAIN

ORG 1000H

MAIN:MOV R0,#40H

MOV R1,#41H

MOV @R0,#30H

MOV @R1,#31H

MOV 50H,@R0

MOV 51H,@R1

END

由以上观察结果容易看出,程序运行正确。

P1.01

P1.12P1.23P1.34P1.45P1.56P2.1(A9)22P2.2(A10)23P2.3(A11)24P2.4(A12)25P2.5(A13)26P2.6(A14)27P2.7(A15)28PSEN 29ALE/PROG

30EA/Vpp 31P0.7(AD7)32P0.6(AD6)33P0.5(AD5)34P0.4(AD4)35P0.3(AD3)36P0.2(AD2)37P0.1(AD1)38P0.0(AD0)39Vcc 40P1.67P1.78RST

9(RXD)P3.010(TXD)P3.111(INT0)P3.212(INT1)P3.313(T0)P3.414(T1)P3.515(WR)P3.616(RD)P3.717XTAL218XTAL119P2.0(A8)

21

GND 20

89C52

U42DS35DS36DS37DS38DS39DS40DS41VCC

DS421

2345678510

R111

510R112

510R113

510R114

510R115

510R116

510R117

510R118

JMP MAIN

MOV A,#0FEH

MOV P1,A

调用延时子程序

A内的数据循环左移二、实验仿真图

三、实验程序

ORG 0000H 程序开始

LJMP MAIN 转移到主函数

ORG 0100H

MAIN: MOV A,#0feH 主函数MAIN

LOOP:MOV P1,A

LCALL DELAY 调用子函数DELAY

RL A A的内容向左环移1位

MOV P1,A

LCALL DELAY

JMP LOOP

DELAY:MOV R5,#0FFH DELAY子函数

D1:MOV R6,#0FFH

D2: DJNZ R6,D2

DJNZ R5,D1

RET

END

四、思考题

1、在单片机系统中,74HC138通常用来产生片选信号,请读者考虑一下,应如何处理答:74HC138是3--8线译码器,有3个管脚, 2个接地,一个高则选中,直接用单片机的I/O即可。

五、实验总结

通过本实验进一步熟悉了集成环境软件和熟悉Keil C51集成环境软件的使用方法,本实验中8个指示灯,循环点亮,瞬间只有一个灯亮,跑马灯具有广泛的应用,例如老虎机和彩灯都是这个原理的应用,可见本实验非常实用。

实验三 8255控制交通灯实验一、实验原理

D034D133D232D331D430D529D628D727PA04PA13PA22PA31PA440PA539PA638PA737PB018PB119PB220PB321PB422PB523PB624PB725PC014PC115PC216PC317PC413PC512PC611PC7

10

RD 5WR 36A09A18RESET 35CS

6

8255

U36

D0D1D2D3D4D5D6D7WR

RD RST

A0

A1

PC5PC6PC7

PC2PC3PC4PC0PC1DS35DS36DS37DS38DS39DS40DS4112345678

VCC

DS42

A0A1

CS

CS1(0F000H)

510

R111510

R112

510R113510R114510R115510R116510R117510R118

三、实验仿真图

三、实验程序

WORK_ADR EQU 0003H

PA_ADR EQU 0000H

ORG 0000H

LJMP MAIN

ORG 1000H

MAIN: MOV SP,#30H

MOV DPTR,#WORK_ADR

MOV A,#80H ;PA口工作在方式零,且为输出状态 MOVX @DPTR,A

MOV A,#09H

MOV DPTR,#PA_ADR

MOVX @DPTR,A ;东西南北初始化均为红灯

LCALL DELAY1

LOOP: CLR A

MOV DPTR,#PA_ADR ;南北红灯,东西绿灯

MOV A,#21H

MOVX @DPTR,A

LCALL DELAY1

MOV R3,#3 ;南北红灯,东西黄灯闪烁三次LOOP1: MOV A,#11H

MOVX @DPTR,A

CALL DELAY2

MOV A,#01H

MOVX @DPTR,A

CALL DELAY2

DJNZ R3,LOOP1

;LCALL DELAY1

MOV A,#0CH ;东西红灯,南北绿灯

MOVX @DPTR,A

LCALL DELAY1

MOV R3,#3 ;东西红灯,南北黄灯闪烁三次LOOP2: MOV A,#08H

MOVX @DPTR,A

CALL DELAY2

MOV A,#0AH

MOVX @DPTR,A

CALL DELAY2

DJNZ R3,LOOP2

LJMP LOOP

DELAY1: MOV R5,#100 ;延时10秒

D0: MOV R6,#100

D1: MOV R7,#248

D2: DJNZ R7,D2

DJNZ R6,D1

DJNZ R5,D0

RET

DELAY2: MOV R0,#0FFH

D11:MOV R1,#0AAH

D22:DJNZ R1,D22

DJNZ R0,D11

RET

END

四、实验总结

通过本实验我了解了8255芯片的工作原理,熟悉了其初始化编程方法以及输入、输出程序设计技巧,学会使用8255并行接口芯片实现各种控制功能,另外熟悉了8255内部结构和与单片机的接口逻辑并熟悉8255芯片的3种工作方式以及控制字格式。交通灯在日常生活中是非常重要的,可以说在城市中交通灯是必不可少的,它对我们的人身安全很重要,没有交通灯城市会混乱不堪。

实验四 8253方波实验

一、实验原理

参考电路原理图如下:

三、实验仿真图

四、实验程序

ORG 0000H

JMP START

ORG 000BH

LJMP T0INT

ORG 0100H

;---------------------------------------------------; START: ;使用定时器0产生10000方波

MOV TMOD,#02H

MOV TL0,#63H

MOV TH0,#00H

SETB EA

SETB ET0

SETB TR0

;---------------------------------------------------;

MOV DPTR,#0F3FFH; ,分别接A0A1

MOV A,#34H; 通道0控制字,先读写低字节,后高字节,方式2,二进制计数

MOVX @DPTR,A

MOV DPTR,#0F0FFH ; 对10KHZ的方波进行50分频10000/50=200 此时T=,计数初值,N0=50 MOV A,#32H

MOVX @DPTR,A

MOV A,#00H

MOVX @DPTR,A

;-------------------------------------------------;

MOV DPTR,#0F3FFH; ,分别接A0A1

MOV A,#76H;通道1控制字,先读写低字节,后高字节,方式3,二进制计数

MOVX @DPTR,A

MOV DPTR,#0F1FFH ;对200HZ的方波进行200分频,此时T=1S,计数初值,N1=200

MOV A,#0C8H

MOVX @DPTR,A

MOV A,#00H

MOVX @DPTR,A

;-------------------------------------------------;

LED:

MOV A,#0feH

MOV R5,#2

MOV R2,#8

LOOP3:MOV P1,A

LCALL DELAY1

RL A

MOV P1,A

LCALL DELAY1

JMP LOOP3

; DJNZ R2 ,LOOP3

DELAY1:

;通过R5进行参数传递

D0: MOV R6,#2

D1: MOV R7,#200

D2: DJNZ R7,D2

DJNZ R6,D1

DJNZ R5,D0

RET

;--------------------------------------------;

T0INT:

CPL

RETI

END

;---------------------------------------------;

五、实验总结

通过本实验我们了解了8253的内部结构、工作原理,了解了8253与单片机的接口逻辑,熟悉,8253的控制寄存器和初始化编程方法和8253的6种工作模式。本实验使用8253的计数器0和计数器1实现对输入时钟频率的两级分频,得到一个周期为1秒的方波,用此方波控制蜂鸣器,发出报警信号,也可以将输入脚接到逻辑笔上来检验程序是否正确。

实验五继电器控制/光偶控制实验一、实验原理

相关主题
相关文档
最新文档