
单片机原理实验
单片机原理实验

目录1/0口输入和输出实验580C51外部中断实验243继电器实验.7.104.定时/计数器实验.5音频驱动实验..146.1874LS164串转并实验.74LS165并转串实验..2178译码器实验..24.269动态扫描数码显示实验1029串行静态数码显示实验.113282551/0扩展实验附录1块电路原80C51MCU模理图.36
目 录 1 I/O 口输入和输出实验. . .1 2 80C51 外部中断实验.4 3 继电器实验. . . . . .7 4 定时/计数器实验. .10 5 音频驱动实验. . .14 6 74LS164 串转并实验.18 7 74LS165 并转串实验. .21 8 译码器实验. . .24 9 动态扫描数码显示实验. .26 10 串行静态数码显示实验. 29 11 8255 I/O 扩展实验. .32 附 录 1 80C51 MCU 模 块 电 路 原 理 图 . .36

第一章 I/0 口输入和输出实验一、实验目的1.学会使用I/0口的基本输入、输出功能;2.了解开关量输入、输出的接口技术及编程基本方法。二、实验说明80C51中P1口是准双向口,它作为输出口时与一般的双向口使用方法相同。当P1口用作输入口时,必须先对口的锁存器写“1”,若不先对它写“1”,读入的数据可能是不正确的。本实验用P1口作输入口,PO口作为输出口。三、实验电路图本实验需要用到80C51MCU模块(C区),八位逻辑电平显示模块(E5区)及八位逻辑电平输出模块(F5区)。80C51MCU模块电路原理参考附录三,八位逻辑电平显示电路原理参考图1.1,八位逻辑电平输出电路原理参考图1.2。QIES LEDOESLEDOESUIES手1820VDDHVCC11VCCHJDIESQ2E5LED1ESLEDIESDIES~m19QIESDO12388388D2E518Q2ES17D3ESO3E1-1-10-1010AD4ES4567Q3E5LED2E5LED2E51D7ESQ7ES112D8E5O8ES8LED3ESQ4E5LED3ES10.710GND74HC573QSES LED4ESLED4E5RPIESVCCRP2ESIVCC营D1E5OFLFDOELOQ6ESLEDSESLEDSESD2E5PIEFDES83833598.P2ESBE.4BE中AOP4EDSES4F6Q7E5 LED6E5LED6E5PSED6E5FDSESFD7E5168DSES7ECE1700?Q8ESLED7ESLED7E510K510图1.1八位逻辑电平显示电路1
1 第一章 I/O 口输入和输出实验 一、实验目的 1.学会使用 I/O 口的基本输入、输出功能; 2.了解开关量输入、输出的接口技术及编程基本方法。 二、实验说明 80C51 中 P1 口是准双向口,它作为输出口时与一般的双向口使用方法相同。当 P1 口用作输入口时,必须先对口的锁存器写“1”,若不先对它写“1”,读入的数据可能 是不正确的。本实验用 P1 口作输入口,P0 口作为输出口。 三、实验电路图 本实验需要用到 80C51 MCU 模块(C 区),八位逻辑电平显示模块(E5 区)及八位逻 辑电平输出模块(F5 区)。80C51 MCU 模块电路原理参考附录三,八位逻辑电平显示 电路原理参考图 1.1,八位逻辑电平输出电路原理参考图 1.2。 图 1.1 八位逻辑电平显示电路

2图1.2八位逻辑电平输出电路四、实验步骤1.用数据线连接8OC51MCU模块的JD1C(PI口)到八位逻辑电平输出模块的JD1F5,连接JDOC(PO口)到八位逻辑电平显示模块的JD1E5。2.用事行数据通信线连接计算机与仿真器,把仿真器插到80C51MCU模块的40P锁紧插座中,请注意仿真器的方向是缺口朝上。3.将80C51MCU模块的电源扭子开关S1C拨到上端。将直流稳压电源模块的直流控制开关S1GI打开(打到ON),本实验所用到的相关模块的电源指示灯VCC亮。4.打开Kei12仿真软件,首先建立本实验的项目文件,接着添加已经编好的“THI_IO口.ASM”源程序,进行编译,编译无误后,全速运行程序。5.实验现象:K0~K7拨断开关向上拨,对应的发光二极管L0~L7熄灭,否则为点亮。另外也可以把源程序编译成可执行文件,把可执行文件用ISP烧录器烧录到89S52芯片中运行(注意:芯片缺口朝上)。注:在做完实验时记得养成一个好习惯:把相应单元的短路帽和电源开关还原到原来的位置!以下将不再重述。五、实验源程序及流程图1.源程序ORGOOOOHUMPMAINORGO030HMAIN:MOVPO,#OFFH;PO口初始化,8个灯全灭MOVP1,#OFFH:P1口初始化,设置P1口为输入方式LOOP:MOVA,P1:读P1口数据MOVPOA;送PO口输出UMPLOOPEND2
2 四、实验步骤 1.用数据线连接 80C51 MCU 模块的 JD1C(P1 口)到八位逻辑电平输出模块的 JD1F5, 连接 JD0C(P0 口)到八位逻辑电平显示模块的 JD1E5。 2.用串行数据通信线连接计算机与仿真器,把仿真器插到 80C51 MCU 模块的 40P 锁紧 插座中,请注意仿真器的方向是缺口朝上。 3.将 80C51 MCU 模块的电源扭子开关 S1C 拨到上端。将直流稳压电源模块的直流控制 开关 S1G1 打开(打到 ON),本实验所用到的相关模块的电源指示灯 VCC 亮。 4.打开 Keil2 仿真软件,首先建立本实验的项目文件,接着添加已经编好的 “TH1_IO 口.ASM”源程序,进行编译,编译无误后,全速运行程序。 5.实验现象:K0~K7 拨断开关向上拨,对应的发光二极管 L0~L7 熄灭,否则为点亮。 另外也可以把源程序编译成可执行文件,把可执行文件用 ISP 烧录器烧录到 89S52 芯片中运行(注意:芯片缺口朝上)。 注:在做完实验时记得养成一个好习惯:把相应单元的短路帽和电源开关还原到原 来的位置!以下将不再重述。 五、实验源程序及流程图 1.源程序 ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV P0,#0FFH ;P0 口初始化,8 个灯全灭 MOV P1,#0FFH ;P1 口初始化,设置 P1 口为输入方式 LOOP: MOV A,P1;读 P1 口数据 MOV P0,A ;送 P0 口输出 LJMP LOOP END 图 1.2 八位逻辑电平输出电路

2.流程图开始PO,P1口置1E读入P1口值文将读入的值输出到PO口六、思考题试用单片机的其他口实现输入、输出功能,3
3 2.流程图 六、思考题 试用单片机的其他口实现输入、输出功能

第二章80C51外部中断实验一、实验目的1.掌握80C51外部中断技术的基本使用方法:2.掌握中断处理程序的编写方法。二、实验说明1.外部中断的初始化设置共有三项内容:中断总允许即EA=1,外部中断允许即EXi=1(=0或1),中断方式设置。中断方式设置一般有两种方式:电平方式和脉冲方式:本实验选用后者,其前一次为高电平后一次为低电平时为有效中断请求。因此高电平状态和低电平状态至少维持一个周期,中断请求信号由引脚INTO(P3.2)和INT1(P3.1)引入,本实验由INTO(P3.2)引入。2.中断服务的关键a.保护进入中断时的状态:堆栈有保护断点和保护现场的功能使用PUSH,在转中断服务程序之前把单片机中有关寄存单元的内容保护起来。b.必须在中断服务程序中设定是否允许中断重入,即设置EXO位。C.用POP指令恢复中断时的现场。3.中断控制原理中断控制是提供给用户使用的中断控制手段。实际上就是控制一些寄存器,51系列用于此目的的控制寄存器有四个:TCON、IE、SCON及IP。4.中断响应的过程首先中断采样然后中断查询最后中断响应。采样是中断处理的第一步,对于本实验的脉冲方式的中断请求,若在两个相邻周期采样先高电平后低电平则中断请求有效,IEO或IE1置“1”否则继续为“0”。所谓查询就是由CPU测试TCON和SCON中各标志位的状态以确定有没有中断请求发生以及是那一个中断请求。中断响应就是对中断请求的接受,是在中断查询之后进行的,当查询到有效的中断请求后就进行响应一次中断。三、实验电路图本实验用到80C51MCU模块(C区),八位逻辑电平显示模块(E5区)和单次脉冲模块(G3区)。80C51MCU模块电路原理参考附录一,八位逻辑电平显示模块电路原理参考实验图,单次脉冲接口电路原理参考图。4
4 第二章 80C51 外部中断实验 一、实验目的 1.掌握 80C51 外部中断技术的基本使用方法; 2.掌握中断处理程序的编写方法。 二、实验说明 1.外部中断的初始化设置共有三项内容:中断总允许即 EA=1,外部中断允许即 EXi=1 (i=0 或 1),中断方式设置。中断方式设置一般有两种方式:电平方式和脉冲方式, 本实验选用后者,其前一次为高电平后一次为低电平时为有效中断请求。因此高电 平状态和低电平状态至少维持一个周期,中断请求信号由引脚 INT0(P3.2)和 INT1(P3.1)引入,本实验由 INT0(P3.2)引入。 2.中断服务的关键 a.保护进入中断时的状态:堆栈有保护断点和保护现场的功能使用 PUSH,在转中断 服务程序之前把单片机中有关寄存单元的内容保护起来。 b.必须在中断服务程序中设定是否允许中断重入,即设置 EX0 位。 c.用 POP 指令恢复中断时的现场。 3.中断控制原理:中断控制是提供给用户使用的中断控制手段。实际上就是控制一些 寄存器,51 系列用于此目的的控制寄存器有四个:TCON 、IE 、SCON 及 IP。 4.中断响应的过程:首先中断采样然后中断查询最后中断响应。采样是中断处理的第 一步,对于本实验的脉冲方式的中断请求,若在两个相邻周期采样先高电平后低电 平则中断请求有效,IE0 或 IE1 置“1”;否则继续为“0”。所谓查询就是由 CPU 测 试 TCON 和 SCON 中各标志位的状态以确定有没有中断请求发生以及是那一个中断 请求。中断响应就是对中断请求的接受,是在中断查询之后进行的,当查询到有效 的中断请求后就进行响应一次中断。 三、实验电路图 本实验用到 80C51 MCU 模块(C 区),八位逻辑电平显示模块(E5 区)和单次脉 冲模块(G3 区)。80C51 MCU 模块电路原理参考附录一,八位逻辑电平显示模块电路 原理参考实验图,单次脉冲接口电路原理参考图

OH-Pulse4050.nFP2GiOLPaleSWPESE2U200D213AeisplesNG3G3R3G3R4GEPleOLKGC图2.1单次脉冲接口电路四、实验步骤1.用导线连接80C51MCU模块的P1.0口到八位逻辑电平显示模块的任一只发光二极管上,连接80OC51MCU模块的INTO(P3.2)到单次脉冲模块的任一输出端。2.用串行数据通信线连接计算机与仿真器,把仿真器插到80C51MCU模块的40P锁紧插座中,请注意仿真器的方向:缺口朝上。3.将80C51MCU模块的电源扭子开关S1C拨到上端。将直流稳压电源模块的直流控制开关SIG1打到ON,本实验所用到的相关模块的电源指示灯VCC亮。4.打开Keil2仿真软件,首先建立本实验的项目文件,接着添加“TH3外部中断.ASM”源程序,进行编译,编译无误后,全速运行程序。5.实验现象:连续按动单次脉冲产生电路的按键,发光二极管每按一次状态取反,即隔一次点亮。另外也可以把源程序编译成可执行文件,把可执行文件用ISP烧录器烧录到89S52芯片中运行(注意:芯片缺口朝上)。五、实验流程图及源程序1.源程序LED BITP1.0LEDBUFBITOORGOOOOHUMPSTART;跳至主程序ORGOOOBHUMPINTERRUPT;跳子程序ORG0030H5
5 四、实验步骤 1.用导线连接 80C51 MCU 模块的 P1.0 口到八位逻辑电平显示模块的任一只发光二极 管上,连接 80C51 MCU 模块的 INTO(P3.2)到单次脉冲模块的任一输出端。 2.用串行数据通信线连接计算机与仿真器,把仿真器插到 80C51 MCU 模块的 40P 锁紧 插座中,请注意仿真器的方向:缺口朝上。 3.将 80C51 MCU 模块的电源扭子开关 S1C 拨到上端。将直流稳压电源模块的直流控制 开关 S1G1 打到 ON,本实验所用到的相关模块的电源指示灯 VCC 亮。 4.打开 Keil 2 仿真软件,首先建立本实验的项目文件,接着添加“TH3_外部中 断.ASM”源程序,进行编译,编译无误后,全速运行程序。 5.实验现象:连续按动单次脉冲产生电路的按键,发光二极管每按一次状态取反,即 隔一次点亮。 另外也可以把源程序编译成可执行文件,把可执行文件用 ISP 烧录器烧录到 89S52 芯片中运行(注意:芯片缺口朝上)。 五、实验流程图及源程序 1.源程序 LED BIT P1.0 LEDBUF BIT 0 ORG 0000H LJMP START ;跳至主程序 ORG 000BH LJMP INTERRUPT ;跳子程序 ORG 0030H 图 2.1 单次脉冲接口电路

INTERRUPT:PUSHPSW;保护现场CPLLEDBUF;取反LEDMOVC,LEDBUFMOV LED, CPOPPSW:恢复现场RETISTART:CLR LEDBUFCLRLEDMOVTCON,#O1H;外部中断o下降沿触发MOVIE,#81H:打开外部中断允许位(EXO)及总中断允许位(EA)LUMPSEND2.流程图1开始中断入口文设置初始状态保护现场文V状态位取反设置中断控制寄存器+状态位输出中断允许+恢复现场?等待中断中断返回主程序流程图子程序框图六、思考题1.简述中断处理的一般过程。2.脉冲方式如何防止重复响应外中断。6
6 INTERRUPT: PUSH PSW ;保护现场 CPL LEDBUF ;取反 LED MOV C, LEDBUF MOV LED, C POP PSW ;恢复现场 RETI START: CLR LEDBUF CLR LED MOV TCON, #01H ;外部中断 0 下降沿触发 MOV IE, #81H ;打开外部中断允许位(EX0)及总中断允许位(EA) LJMP $ END 2.流程图 六、思考题 1.简述中断处理的一般过程。 2.脉冲方式如何防止重复响应外中断。 主程序流程图 子程序框图

第三章继电器控制实验一、实验目的1.学习延时子程序的编写和使用:2.掌握继电器控制的基本方法;3.了解用弱电控制强电的方法。二、实验说明现代自动控制设备中,都存在一个电子电路的互相连接问题,一方面要使电子电路的控制信号能控制电气电路的执行元件(电动机,电磁铁,电灯等),另一方面又要为电子线路和电气电路提供良好的电气隔离,以保护电子电路和人身的安全,继电器便能完成这一任务。继电器电路中一般都要在继电器的线圈两头加一个二极管以吸收继电器线圈断电时产生的反电势。本电路的控制端为高电平时,继电器常开触点吸合,LED灯被点亮,当控制端口为低电平时,继电器不工作。三、实验电路图本实验需要用到80C51MCU模块(C区),八位逻辑电平显示模块(E5区)和继电器控制模块(F1区)。80C51MCU模块电路原理参考附录一,八位逻辑电平显示电路原理参考实验一图1.1,继电器控制电路原理参考图3.1。继电器OOPIFI1MDP2FLOOpen+12VFP3FLOCLOSEVCC+12V_F1HJDQIF1+12VF1DiF1FIN4007BKLEDIFIVCOO1FRIFIControl OP4F110K8050图3.1继电器控制电路
7 第三章 继电器控制实验 一、实验目的 1.学习延时子程序的编写和使用; 2.掌握继电器控制的基本方法; 3.了解用弱电控制强电的方法。 二、实验说明 现代自动控制设备中,都存在一个电子电路的互相连接问题,一方面要使电子电 路的控制信号能控制电气电路的执行元件(电动机,电磁铁,电灯等),另一方面又 要为电子线路和电气电路提供良好的电气隔离,以保护电子电路和人身的安全,继电 器便能完成这一任务。继电器电路中一般都要在继电器的线圈两头加一个二极管以吸 收继电器线圈断电时产生的反电势。本电路的控制端为高电平时,继电器常开触点吸 合,LED 灯被点亮,当控制端口为低电平时,继电器不工作。 三、实验电路图 本实验需要用到80C51 MCU 模块(C 区),八位逻辑电平显示模块(E5 区)和继电器 控制模块(F1 区)。80C51 MCU 模块电路原理参考附录一,八位逻辑电平显示电路原 理参考实验一图1.1,继电器控制电路原理参考图3.1。 图3.1 继电器控制电路

四、实验步骤1.用导线连接80C51MCU模块的P1.0端到继电器控制模块的Contro1端,连接继电器控制模块的Open端到八位逻辑电平显示模块的LO端,连接继电器模块的Mid端到直流稳压电源模块的GND端。2.用串行数据通信线连接计算机与仿真器,把仿真器插到80C51MCU模块的40OP锁紧插座中,请注意仿真器的方向:缺口朝上。3.将80C51MCU模块的电源扭子开关S1C拨到上端,将继电器控制模块的电源短路帽J1F1打在上端。将直流稳压电源模块的直流控制开关S1G1打到ON,本实验所用到的相关模块的电源指示灯VCC亮。4.打开KeiluVision2仿真软件,首先建立本实验的项目文件,接着添加“TH2_继电器控制.ASM”源程序,进行编译,编译无误后,全速运行程序。5.实验现象:继电器重复延时吸合与延时断开,同时发光二极管的亮与灭指示继电器的吸合与断开。另外也可以把源程序编译成可执行文件,把可执行文件用ISP烧录器烧录到89S52芯片中运行(注意:芯片缺口朝上)。五、实验流程图及源程序1.流程图开始延时延时继电器吸合继电器断开2.源程序用P1.0作为控制输出口,接继电器控制电路,使继电器重复吸合与断开。OUTPUT BITPI.ORGO00OHLJMP STARTORGO030HSTART:CLR OUTPUTCALL DELAYSETB OUTPUTCALL DELAYLJMP STARTDelay:MOVR6,#OFFHMOVR7,#OFFH
8 四、实验步骤 1.用导线连接80C51 MCU 模块的P1.0 端到继电器控制模块的Control 端,连接继电器 控制模块的Open 端到八位逻辑电平显示模块的L0 端,连接继电器模块的Mid 端到 直流稳压电源模块的GND 端。 2.用串行数据通信线连接计算机与仿真器,把仿真器插到80C51 MCU 模块的40P 锁紧 插座中,请注意仿真器的方向:缺口朝上。 3.将80C51 MCU 模块的电源扭子开关S1C 拨到上端,将继电器控制模块的电源短路帽 J1F1打在上端。将直流稳压电源模块的直流控制开关S1G1 打到ON,本实验所用到 的相关模块的电源指示灯VCC 亮。 4.打开Keil uVision2 仿真软件,首先建立本实验的项目文件,接着添加“TH2_继电 器控制.ASM”源程序,进行编译,编译无误后,全速运行程序。 5.实验现象:继电器重复延时吸合与延时断开,同时发光二极管的亮与灭指示继电器 的吸合与断开。 另外也可以把源程序编译成可执行文件,把可执行文件用ISP 烧录器烧录到89S52 芯片中运行(注意:芯片缺口朝上)。 五、实验流程图及源程序 1.流程图 2.源程序 用P1.0 作为控制输出口,接继电器控制电路,使继电器重复吸合与断开。 OUTPUT BIT P1.0 ORG 0000H LJMP START ORG 0030H START: CLR OUTPUT CALL DELAY SETB OUTPUT CALL DELAY LJMP START Delay: MOV R6, #0FFH MOV R7, #0FFH