当前位置:文档之家› 单片机原理及接口技术实验报告

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

单片机原理及接口技术实验报告任课教师班级姓名日期实验一构建单片机最小系统和实验环境熟悉一、单片机最小系统的组成原理图二、单片机的工作原理:1.运算器运算器包括算术逻辑运算单元ALU、累加器ACC、寄存器B、暂存器TMP、程序状态字寄存器PSW、十进制调整电路等。

它能实现数据的算术逻辑运算、位变量处理和数据传送操作。

(1)算术逻辑单元ALUALU在控制器根据指令发出的内部信号控制下,对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~0FH10组210~17H11组318~1FHOV():溢出标志位。

它反映运算结果是否溢出,溢出时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 TCON00HACC00H TL000HPSW00H TH000HSP07H TL100HDPTR0000H TH100HP0~P3FFH SCON00HIP××000000B SBUF不定IE0×000000B PCON0×××0000BTMOD00H3.指令寄存器和指令译码器指令寄存器中存放指令代码,CPU执行指令时,由程序存储器中读取的指令代码送入指令存储器,经译码器后由定时与控制电路发出相应的控制信号,完成指令所指定的操作。

4.程序计数器PCPC是一个16位计数器,其内容为单片机将要执行的指令机器码所在存储单元的地址。

PC 具有自动加1的功能,从而实现程序的顺序执行。

由于PC不可寻址的,因此用户无法对它直接进行读写操作,但可以通过转移、调用、返回等指令改变其内容,以实现程序的转移。

PC的寻址范围为64KB,即地址空间为0000~0FFFFH。

5堆栈指针SPSP为8位寄存器,用于指示栈顶单元地址。

所谓堆栈是一种数据结构,它只允许在其一端进行数据删除和数据插入操作的线性表。

数据写入堆栈叫入栈(PUSH),数据读出堆栈叫出栈(POP)。

堆栈的最大特点是“后进先出”的数据操作原则。

MCS-51系统复位后,SP 初始化为07H。

6. 数据指针DPTR数据指针DPTR为16位寄存器,它是MCS—51中唯一的一个16位寄存器。

编程时,既可按16位寄存器使用,也可作为两个8位寄存器分开使用。

DPH 为DPTR的高八位寄存器,DPL 为DPTR的低八位寄存器。

DPTR通常在访问外部数据存储器时作为地址指针使用,寻址范围为64KB。

三、存储单元数据传输ORG 0000HJMP MAINORG 1000HMAIN:MOV R0,#40HMOV R1,#41HMOV @R0,#30HMOV @R1,#31HMOV 50H,@R0MOV 51H,@R1END由以上观察结果容易看出,程序运行正确。

P1.01P1.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/PROG30EA/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.78RST9(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)21GND 2089C52U42DS35DS36DS37DS38DS39DS40DS41VCCDS4212345678510R111510R112510R113510R114510R115510R116510R117510R118JMP MAINMOV A,#0FEHMOV P1,A调用延时子程序A内的数据循环左移二、实验仿真图三、实验程序ORG 0000H 程序开始LJMP MAIN 转移到主函数ORG 0100HMAIN: MOV A,#0feH 主函数MAINLOOP:MOV P1,ALCALL DELAY 调用子函数DELAYRL A A的内容向左环移1位MOV P1,ALCALL DELAYJMP LOOPDELAY:MOV R5,#0FFH DELAY子函数D1:MOV R6,#0FFHD2: DJNZ R6,D2DJNZ R5,D1RETEND四、思考题1、在单片机系统中,74HC138通常用来产生片选信号,请读者考虑一下,应如何处理答:74HC138是3--8线译码器,有3个管脚, 2个接地,一个高则选中,直接用单片机的I/O即可。

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

实验三 8255控制交通灯实验一、实验原理D034D133D232D331D430D529D628D727PA04PA13PA22PA31PA440PA539PA638PA737PB018PB119PB220PB321PB422PB523PB624PB725PC014PC115PC216PC317PC413PC512PC611PC710RD 5WR 36A09A18RESET 35CS68255U36D0D1D2D3D4D5D6D7WRRD RSTA0A1PC5PC6PC7PC2PC3PC4PC0PC1DS35DS36DS37DS38DS39DS40DS4112345678VCCDS42A0A1CSCS1(0F000H)510R111510R112510R113510R114510R115510R116510R117510R118三、实验仿真图三、实验程序WORK_ADR EQU 0003HPA_ADR EQU 0000HORG 0000HLJMP MAINORG 1000HMAIN: MOV SP,#30HMOV DPTR,#WORK_ADRMOV A,#80H ;PA口工作在方式零,且为输出状态 MOVX @DPTR,AMOV A,#09HMOV DPTR,#PA_ADRMOVX @DPTR,A ;东西南北初始化均为红灯LCALL DELAY1LOOP: CLR AMOV DPTR,#PA_ADR ;南北红灯,东西绿灯MOV A,#21HMOVX @DPTR,ALCALL DELAY1MOV R3,#3 ;南北红灯,东西黄灯闪烁三次LOOP1: MOV A,#11HMOVX @DPTR,ACALL DELAY2MOV A,#01HMOVX @DPTR,ACALL DELAY2DJNZ R3,LOOP1;LCALL DELAY1MOV A,#0CH ;东西红灯,南北绿灯MOVX @DPTR,ALCALL DELAY1MOV R3,#3 ;东西红灯,南北黄灯闪烁三次LOOP2: MOV A,#08HMOVX @DPTR,ACALL DELAY2MOV A,#0AHMOVX @DPTR,ACALL DELAY2DJNZ R3,LOOP2LJMP LOOPDELAY1: MOV R5,#100 ;延时10秒D0: MOV R6,#100D1: MOV R7,#248D2: DJNZ R7,D2DJNZ R6,D1DJNZ R5,D0RETDELAY2: MOV R0,#0FFHD11:MOV R1,#0AAHD22:DJNZ R1,D22DJNZ R0,D11RETEND四、实验总结通过本实验我了解了8255芯片的工作原理,熟悉了其初始化编程方法以及输入、输出程序设计技巧,学会使用8255并行接口芯片实现各种控制功能,另外熟悉了8255内部结构和与单片机的接口逻辑并熟悉8255芯片的3种工作方式以及控制字格式。

相关主题