P1口输入输出实验

合集下载

实验一 P1口输入、输出实验

实验一 P1口输入、输出实验

实验一P1口输入、输出实验一.实验要求1.P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。

2.P1口做输入口,接八个拨动开关,以实验机上74LS273做输出口,编写程序读取开关状态,将此状态,在发光二极管上显示出来。

二.实验目的1.学习P1口的使用方法。

2.学习延时子程序的编写和使用。

三. 实验电路及连线实验一时,P1.0-P1.7接L0-L7。

实验二时,P1.0-P1.7接K0-K7,PO0-PO7接L0-L7。

CS273接8300H。

四.实验说明1.P1口是准双向口。

它作为输出口时与一般的双向口使用方法相同。

由准双向口结构可知当P1口作为输入口时,必须先对它置高电平使内部MOS管截止。

因为内部上拉电阻阻值是20KΩ~40KΩ,故不会对外部输入产生影响。

若不先对它置高,且原来是低电平,则MOS管导通,读入的数据是不正确的。

2.延时子程序的延时计算问题对于程序DELAY:MOV R0,#00HDELAY1:MOV R1,#0B3HDJNZ R1,$DJNZ R0,DELAY1查指令表可知MOV,DJNZ 指令均需用两个机器周期,而一个机器周期时间长度为12/11.0592MHz,所以该段程序执行时间为:((0B3+1)×256+1)×2×12÷11059200=100.002mS五.实验框图程序框图:TP1A.ASM主程序框图TP1B.ASM主程序框图六.附加实验内容1、用P1口的P1.0-P1.3作输出口接4个发光二极管,P1.4-P1.7作输入口接4个拨动开关,将开关的状态读进来并在发光二极管上显示。

七.实验报告要求1、书写实验目的、实验内容、实验连线、以及实验中的观察结果;2、画出流程图、编写实验程序,写出实验的心得体会。

51单片机实验-实验二P1口输入、输出实验

51单片机实验-实验二P1口输入、输出实验

51单片机实验-实验二P1口输入、输出实验实验二 P1口输入、输出实验一、实验目的学习Pl口的使用方法。

学习延时子程序的编写和使用。

进一步熟悉星研Star16L仿真器系统的操作,和EL-Ⅱ型通用接口板实验电路结构,学习使用PROTEUS仿真软件实现单片机的虚拟仿真。

掌握虚拟仿真与实际系统仿真的有机衔接。

二、实验仪器和设备PC机、星研Star16L仿真器系统+仿真头PODPH51(DIP)、EL-Ⅱ型通用接口板实验电路,PROTEUS仿真软件。

三、实验内容1)P1口做输出口,经过74LS04反相器接八只发光二极管,编写程序,使发光二极管循环点亮。

2)(选作)P1口既做输入又做输出,在P1.0~P1.3口接四个平推开关,通过开关的不同位置向P1.0~P1.3输入不同的状态,然后利用输入指令读取所设开关状态,为验证输入结果的正确与否,将它们输出到P1.4~P1.7,经过74LS04反相器驱动发光二极管。

四、实验结果1)循环点亮八只发光二极管。

取P1.0口接出第一个二极管,以此类推,第八个接P1.7口。

Proteus 仿真图①循环左移,即从第一个二极管开始点亮到第八个二极管实验程序:ORG 0000HSTART:MOV R2,#8MOV A,#01H ;先让第一个发光二极管点亮LOOP: MOV P1,A ;从P1口输出到发光二极管LCALL DELAYRL A ;循环左移(从第一个发光二极管开始一直往下一个二极管)DJNZ R2,LOOP ;判断移动是否超过8位,未超过则继续循环LJMP START ;循环发光DELAY:MOV R5,#5 ;延时0.5秒子程序DEL1: MOV R6,#200DEL2: MOV R7,#126DEL3: DJNZ R7,DEL3DJNZ R6,DEL2DJNZ R5,DEL1RETEND仿真结果:发光二极管从D1开始发光,依次往下到D8,然后循环这一过程。

实验结果:发光二极管从第一个开始发光,依次往左到第八个,然后循环这一过程。

实验3 P1口输入

实验3  P1口输入

实验3 P1口输入、输出实验一、实验目的学习Pl口的使用方法。

学习延时子程序的编写和使用。

二、实验仪器和设备PC机、星研Star16L仿真器系统+仿真头PODPH51(DIP)、EL-Ⅱ型通用接口板实验电路。

三、实验内容:1)P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。

2)P1口既做输入又做输出,在P1.0~P1.3口接四个平推开关,通过开关的不同位置向P1.0~P1.3输入不同的状态,然后利用输入指令读取所设开关状态,为验证输入结果的正确与否,将它们输出到P1.4~P1.7,驱动发光二极管。

四、实验原理:P1口为准双向口,P1口的每一位都能独立地定义为输入位或输出位。

作为输入位时,必须向锁存器相应位写入“1”,该位才能作为输入。

8031中所有口锁存器在复位时均置为“1”,如果后来在口锁存器写过“0”,在需要时应写入一个“1”,使它成为一个输入。

延时程序的实现。

现常用的有两种方法,一是用定时器中断来实现,一是用指令循环来实现。

在系统时间允许的情况下可以采用后一种方法。

本实验系统晶振为6.144MHZ,则一个机器周期为12÷6.144us即1÷0.512us。

现要写一个延时0.1s的程序,可大致写出如下:MOV R7,#X (1)DEL1:MOV R6,#200 (2)DEL2:DJNZ R6,DEL2 (3)DJNZ R7,DEL1 (4)上面MOV、DJNZ指令均需两个机器周期,所以每执行一条指令需要1÷0.256us,现求出X值:1÷0.256+X(1÷0.256+200×1÷0.256+1÷0.256)=0.1×10⁶指令(1)指令(2)指令(3)指令(4)所需时间所需时间所需时间所需时间X=(0.1××10⁶-1÷0.256)/(1÷0.256+200×1÷0.256+1÷0.256)=127D=7FH经计算得X=127。

实验4 P1、P3口输入输出

实验4 P1、P3口输入输出

实验四P1、P3口输入输出实验一、实验目的了解单片机准双向口的特性,掌握准双向口的使用方法。

二、实验内容单片机P1口作为输入口,P1口的P1.0~P1.7分别用连线对应接到实验箱(左下角)的拨动开关K0~K7,P3口作为输出口分别对应接到LED发光二极管L0~L7。

编制一段程序,从P1口读入开关状态,当开关为“1”(高电平)时,从P3口输出,使之对应的LED 发光二极管亮,反之则不亮。

三、实验原理单片机除P0口为三态双向口外其余的的P1、P2、P3均为准双向口(作为输入时必须先使口锁存器置“1”)。

编程时,当P1、P2、P3口作为输入口用时,因为电路设计的原因在读入数据前需要先做一次写操作,使得口的每位引脚上的输出驱动器的场效应管处于截止状态,这样才能保证读入的数据的正确性。

程序从P1口读入连接到P1口的K0~K7的开关状态(开关电路如P110图1所示,开关K0~K7为单刀双掷开关,每个开关有2个状态“0”或“1”),由于实验箱上的LED发光二极管的L0~L7接正电源亮(电路如P111图2所示)因此读入后的开关状态可以直接送P3口,控制连接在P3口上的LED发光二极管的亮与灭。

四、实验步骤与要求a、根据实验内容要求连接好P1.0~P1.7与K0~K7、P3.0~P3.7与LED的连接线;b、将多余的线头放到实验箱的附件盒里,确认没有多余东西后再开电源;c、按照实验要求画出程序流程图并根据流程图编制出相应的循环程序,在全速运行的情况下能够从P1口读入K0~K7的状态,并可根据读入状态的情况从P3口输出控制字,使得对应K=”1”的LED亮,K=”0”的LED不亮。

d、记录开关如下表组合时对应P3口的LED发光二级管的状态P1口开关状态P3口LED状态K7 K6 K5 K4 K3 K2 K1 K0 L7 L6 L5 L4 L3 L2 L1 L00 0 0 0 0 0 0 01 0 0 0 1 0 0 01 0 1 0 1 0 1 01 1 1 1 1 1 1 1五、思考题运用所学电路知识并参照教科书P68图4-2P1口每一位的结构示意图,说明在对准双向口进行输入操作前为什么要对需要读入的位进行一次写“1”的操作?。

p1口输入输出实验报告

p1口输入输出实验报告

p1口输入输出实验报告p1口输入输出实验报告引言:计算机科学领域的发展使得我们能够使用各种各样的设备与计算机进行交互。

而在这个过程中,输入输出接口的设计和实现显得尤为重要。

本篇文章将围绕p1口输入输出接口展开讨论,介绍其原理、实验过程以及实验结果。

一、p1口输入输出接口的原理p1口是一种通用输入输出接口,它可以连接各种外部设备,如键盘、鼠标、打印机等。

p1口的原理是通过电信号的传输来实现与外部设备的交互。

具体来说,p1口通过发送和接收电压信号来进行通信,从而实现输入输出的功能。

二、实验过程1. 准备工作在进行实验前,我们需要准备一台计算机和一些外部设备,如键盘、鼠标和打印机。

将这些设备连接到计算机的p1口上。

2. 输入实验首先,我们进行输入实验。

在连接好设备后,我们可以通过键盘向计算机输入一些字符。

计算机会将这些字符接收并进行处理。

我们可以通过编写一个简单的程序来实现字符的显示和处理。

在程序中,我们可以使用相应的函数来获取键盘输入,并将其显示在屏幕上。

通过这个实验,我们可以验证p1口的输入功能是否正常工作。

3. 输出实验接下来,我们进行输出实验。

在程序中,我们可以使用相应的函数来控制打印机输出指定的内容。

通过这个实验,我们可以验证p1口的输出功能是否正常工作。

4. 实验结果通过实验,我们可以得出以下结论:- p1口的输入功能正常工作,可以准确地接收键盘输入的字符。

- p1口的输出功能正常工作,可以控制打印机输出指定的内容。

三、实验总结p1口作为一种通用输入输出接口,具有广泛的应用。

通过本次实验,我们对p1口的原理和功能有了更深入的了解。

p1口的输入功能可以使计算机接收外部设备的输入信号,从而实现与用户的交互。

p1口的输出功能可以使计算机控制外部设备进行相应的操作,从而实现对外部环境的影响。

在今后的学习和工作中,我们可以进一步探索p1口的应用,提高计算机与外部设备的交互效率。

结语:通过本次实验,我们对p1口输入输出接口有了更深入的理解。

P1口输入输出实验

P1口输入输出实验

P1口输入输出实验实验目的:(1)掌握P1口同时做输入/输出口使用方法(2)学习数据输入、输出程序的设计方法方法一:用CJNE A,#DATA,LP指令实现CSEG A T 0000HLJMP START 无条件转移到STARTCSEG A T 4100HSTART:MOV P1,#0FFH 读P1口LP:MOV A,P1 将P1送AANL A,#00000011B 进行”与”运算,屏蔽高六位CJNE A,#00,LP0 比较转移指令,判断A是否等于0否则跳转到LP0CLR P1.2 P1.2口清零LJMP START 无条件转移到START LP0:CJNE A,#01,LP1 比较转移指令,判断A是否等于1否则跳转到LP1CLR P1.3 P1.3清零LJMP START 无条件转移到START LP1:CJNE A,#02,LP2 比较转移指令,判断A是否等于2否则跳转到LP2CLR P1.4 P1.4清零LJMP START 无条件转移到START LP2:CLR P1.5 P1.5清零LJMP START 无条件转移到STARTEND 结束标志方法二:用MOVC A,@A+DPTR指令实现CSEG A T 0000HLJMP STARTCSEG A T 4100HSTART:MOV P1,#0FFH 读P1口LP:MOV A,P1 将P1送AMOV DPTR,#4200H 创建表格的起始地址ANL A,#00000011B 进行”与”运算,屏蔽高六位MOVC A,@A+DPTR 查表指令MOV P1,A A送P1LJMP LP 无条件转移到LPCSEG A T 4200HDB 0FBH,0EFH,0F7H,0DFH 建表END 结束标志定时计数器CSEG A T 0000HLJMP STARTCSEG A T 4100HSTART:MOV A,#0FFH /* 先给累加器A赋一个值*/CLR C /*将进位标志清0*/MOV TMOD,#01H /*设定时器T0工作在方式1*/MOV TH0,#3CH /*设定T0初始值*/MOV TL0,#0B0HSETB TR0 /*开定时器T0*/MOV R0,#4 /*给R0一个初值*/LP1:MOV P1,A /*将A的值送给P1口*/RRC A /*将A的内容带进位标志向右循环移一位*/ LP2:JNB TF0,LP2 /*判断定时器T0溢出了没,没有就等待*/ MOV TH0,#3CH /*重新给定时器T0赋值*/MOV TL0,#0B0HCLR TF0 /*将溢出标志位清0*/DJNZ R0,LP2 /*判断R0等于0了没*/MOV R0,#4 /*重新给R0赋值*/LJMP LP1 /*跳到LP1*/END /*结束*/(此程序利用查询定时计数器的溢出标志位来定时。

2、P1口输入输出实验

2、P1口输入输出实验

1实验二 P1口输入输出实验1.实验目的(1)掌握P1口作为IO 口时的使用方法。

(2)理解读引脚和读锁存器的区别。

2.实验内容:P1.3脚的状态来控制P1.2的LED 亮灭。

3.实验器材:(1)Proteus 仿真软件(2)keil C51开发环境软件4.实验原理由8051组成的单片机系统通常情况下,P0口分时复用作为地址、数据总线,P2口提供A15-A8即高8位地址,P3口用作第二功能,只有P1口通常用作I/0口。

P1口是8位准双向口,它的每一位都可独立地定义为输入或输出,因此既可作为8位的并行I/O 口,也可作为8位的输入输出端。

当工作在输入方式时,对应位的锁存器必须先置1,才能正确地读到引脚上的信号,否则,执行读引脚指令时,若对应位的锁存器的值为0,读的结果永远为0。

每个I/0端口都有两种读入,即读锁存器和读引脚,读引脚指令一般都是以I/0端口为源操作数的指令,如MOV C ,P1.3,而读锁存器指令一般为“读-修改-写”指令,如ANL P1.3,C 指令,请同学们在实验中体会。

图示中,P1.2作为输出口,P1.3作为输入口。

5.实验电路原理图6.程序流程图7.实验步骤(1)按照“5.实验电路原理图”,用proteus绘制原理图。

(2)用keil C51开发环境软件,按照“6.程序流程图”,编写、调试和运行C51处理程序(提示:可参考A09.C)。

实现当P1.3为低电平时,发光管亮;P1.3为高电平时,发光管灭。

(3)修改程序在执行读P1.3之前,先执行CLR P1.3,观察结果是否正确,分析在第二种情况下程序为什么不能正确执行,理解读引脚和读锁存器区别。

(4)记录在电路正常工作时,“5.实验电路原理图”中R2降低到临界点的阻值和探针电压值。

(将绘制的原理图和编写、调试和运行的处理程序存放在自己所带的USB盘中。

)8.软件清单:(参考MCS51\A09.ASM A09.C)// 实验二 P1口输入输出实验(P1.3脚的状态来控制P1.2的LED亮灭)//#include <reg51.h>sfr P1=0x90;sbit LEDRight = P1^2;sbit KeyRight = P1^3;void main(){ P1=0xff;while (1){ if(KeyRight) LEDRight=1;else LEDRight=0;}}9.撰写实验报告(1)预习(2)原始记录——用C51编写的处理程序、R2临界点的阻值和探针电压值(3)实验报告内容2。

实验二__P1口输入输出的实现(17)_2

实验二__P1口输入输出的实现(17)_2

实验二P1口输入、输出的实现一、实验目的1.复习单片机调试平台的使用方法,学习并巩固延时函数的编程方法;2.验证用P1口既作输入又作输出;3.学习用if - else 和switch (case ) 分支程序结构的编程方法。

二、实验设备电脑、THDPJ-2型单片机开发综合实验箱及连接线。

三、实验内容1.实验要求1)设计程序实现P1口作为输出功能,实现P1口控制的发光二极管按间隔为1秒和3秒的时间闪烁,修改延时子程序,观察现象并记录程序。

(时钟频率为12MHz)。

2)设计程序实现P1口既作输入又作输出,把P1.0和P1.1外接按键的状态通过P1.4和P1.5外接的LED发光二极管实时显示。

(流程图见图1)3)安排P1.0作为单键输入口,P1.6、P1.7接两个发光管L6、L7。

实现:当P1.0=0时,D6、D7亮。

当P1.0=1时,D6、D7以1秒的间隔闪烁。

(流程图见图2)4)安排P1.0、P1.1作为输入口,P1.4、P1.5 、D5、D6、D7 (流程图见图3、4)当P1.1=0 、P1.0=0时,D4亮、D5、D6、D7灭;当P1.1=0 、P1.0=1时,D5亮、D4、D6、D7灭;当P1.1=1 、P1.0=0时,D6亮、D4、D5、D7灭;当P1.1=1 、P1.0=1时,D7亮、D4、D5、D6灭。

2.软件流程图图 1 流程图图4 if- else 流程图图3 switch 流程图图2 流程图3. 参考电路图五、实验结果和数据分析实验报告要求:每个步骤有流程图,有程序,有观察到的现象。

最后有实验心得。

问题:1.说明P0口的操作方法。

2.说明LED的控制方法,LED是高电平控制还是低电平控制。

P1口输入输出实验

P1口输入输出实验

实验一 P1口输入输出一.实验目的(1)进一步熟悉51单片机外部引脚线路连接;(2)验证常用的51指令;(3)学习简单的编程方法;(4)掌握单片机全系统调试的过程及方法;(5)学习P1口的有关功能作用以及使用方法。

二.实验说明P1口由于有内部上拉电阻,没有高阻抗输入状态,称为准双向口。

作为输出口时,不需要在片外接上拉电阻,P1口“读引脚”输入时,必须先向锁存器写1;三.实验内容P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。

P1.0、P1.1作输入口接两个拨动开关,P1.2、P1.3作输出口,接两个发光二极管,编写程序读取开关状态,将此状态,在发光二极管上显示出来四.实验原理以实验机上74LS273做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。

循环时间由定时器控制。

五.实验流程六.实验源程序ORG 0000H ;程序入口AJMP RIGHT ;跳向标号RIGHT处ORG 0030H ;程序RIGHT: MOV R0,#08H ;置移位次数MOV A,#0FFH ;置全1CLR C;将Cy清零RIGHT1: RRC A ;由于进位Cy=0,所以带进位的循环右移会出现灯的亮灭MOV P1,A ;输出至P1口,控制LEDCALL DELAY ;调用延时子程序DJNZ R0,RIGHT1 ;R0-1,不为0则转移到标号RIGHT1处AJMP RIGHT ;绝对转移至RIGHT处;***************************************************************************** ; /*延时子程序*/;***************************************************************************** ;使用不停的跳转来实现延时,DELAY: MOV R5,#10DELAY1: MOV R6,#50DELAY2: MOV R7,#250DJNZ R7,$DJNZ R6,DELAY2 ;R6-1,不为0则转移至DELAY2,执行2*200*10usDJNZ R5,DELAY1 ;R5-1,不为0则转移至DELAY1,执行2*10usRET ;退出子程序执行END七.硬件设计(1)P1口某一I/O口线反转输出电路(2) P1口输出电路八.实验连接图九.实验原理图:十.仿真器的设置步骤:仿真模式设置:8752 模式。

《机电一体化技术》P1口输入和输出实验实验

《机电一体化技术》P1口输入和输出实验实验

《机电一体化技术》P1口输入和输出实验实验一、实验目的(1)学习Keil uVision软件的使用;(2)学习P1口的使用;(3)学习单片机与外部设备的连接。

二、设备名称THSMS-C型可编程控制器及单片机高级实验装置GZ-03挂箱;三、实验内容用P1口做输出口,接八位逻辑电平显示,程序功能使发光二极管从右到左轮流循环点亮。

四、实验步骤1、使用单片机最小应用系统模块。

关闭该模块电源,用扁平数据线连接单片机P1口与八位逻辑电平显示模块。

2、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。

3、打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着新建并添加源程序,进行编译,直到编译无误。

4、进行软件设置,选择硬件仿真,选择串行口,设置波特率为38400。

5、打开模块电源和总电源,点击开始调试按钮,点击RUN按钮运行程序,观察发光二极管显示情况。

发光二极管单只从右到左轮流循环点亮。

五、实验结果说明:流水灯能够循环依次点亮六、简要回答问题:1、如果要求发光二极管从左向右点亮,应该如何修改程序?将累加器坐环移改为累加器右环移即将程序中的RL改为RR。

2、如果要求改变发光二极管循环点亮的切换速度,应该如何修改程序?改变延时时间即改变程序中的R2的值即可。

七、总结实验中出现的问题及解决方法:接线过程中线较多出现交叉现象以及接错现象,为解决这种现象我认真反复多次检查并认真修改解决了接错问题同时通过设置导线标签顺利减少了连线的数量。

八、流程图及源程序接线图。

硬件实验一 P1口输入

硬件实验一 P1口输入

硬件实验一 P1口输入、输出实验一、实验要求1. P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。

2. P1.0、P1.1作输入口接两个拨动开关,P1.2、P1.3作输出口,接两个发光二极管,编写程序读取开关状态,将此状态,通过发光二极管显示出来。

编程时应注意P1.0、P1.1作为输入口时应先置1,才能正确读入值。

二、实验目的1. 学习P1口的使用方法。

2. 学习延时子程序的编写和使用。

三、实验电路及连线四、实验说明1. P1口是准双向口。

它作为输出口时与一般的双向口使用方法相同。

由准双向口结构可知当P1口用为输入口时,必须先对它置“1”。

若不先对它置“1”,读入的数据是不正确的。

2. 8051可以将位变量通过C 标志位赋值给其它位。

3. 8051延时子程序的延时计算问题,对于程序查指令表可知MOV ,DJNZ 指令均需用两个机器周期,在6MHz 晶振时,一个机器周期时间长度为12/6MHZ ,请算出该段程序执行时间为:五、程序流程图Delay :MOV R6,#0H MOV R7, #0H DelayLoop :DJNZ R6,DelayLoop DJNZ R7,DelayLoop RET六、实验步骤(1). 把实验平台与PC 机串行口连起来,把实验平台左上角P1.0-P1.3用连线连至L0-L3,打开电源。

(2).在PC 机上用鼠标点击“Wave ”图标,进入WINDOWS 调试环境,而后进行初始化设置。

点击[仿真器\仿真器设置]出现“仿真器设置”窗,进行仿真器的设置。

(3).用鼠标点一下[文件\打开文件],输入文件名*.asm ,创建新文件,进入编辑窗口,注意对发光二极管是输出“1”点亮,在该窗口中输入事先编好的程序。

(4). 用鼠标点[项目\全部编译]窗,对当前源文件进行编译,反复修改好程序,直到编译通过为止。

(5).运行程序后,观察发光二极管闪亮移位情况。

七、实验报告要求1.请根据程序流程图(A )补充完整下面程序,并注释: Loop:mov a, #01h mov r2, #8 Output:(A) P1口循环点灯程序框图(B) P1口输入输出程序框图mov P1, arlcalldjnz r2, Outputljmp LoopDelay:mov r6, #0mov r7, #0DelayLoop:djnz r6, DelayLoopdjnz r7, DelayLoopretend2.请根据程序流程图(B)写出实现“实验要求”2的程序,调试运行程序并注释:硬件实验二 继电器控制实验一、实验要求用单片机的端口,输出电平控制继电器的吸合和断开,实现对外部装置的控制。

p1口输入输出

p1口输入输出

实验一P1口输入输出1(第一个)ORG 0000HLJMP LOOPLOOP: MOV A,#0FEH ;赋初值,只有一盏灯亮√MOV R2,#8 ;设计数值,左移8次OUTPUT:MOV R3,#4 ;设计数值,每管熄灭4*50ms=200msOUTPUT1: MOV P1,A ;送P1口输出.ACALL DELAY ;调用延时子程序DJNZ R3, OUTPUT1 ;(R3)-1≠0时,跳转RL A ;A左移DJNZ R2,OUTPUT ;判断8管是否循环一遍,若是,则从P1.0重新开始循环LJMP LOOP ;循环;子程序名:DELAY;子程序功能:延时50ms;出/入口参数:无;占用资源:R6 R7DELAY: MOV R6, #200 ;延时子程序,延时时间为0DELAY1: MOV R7, #125DELAYLOOP:DJNZ R6, DELAYLOOPDJNZ R7, DELAY1RETEND2(第二个)ORG 0000HLJMP LOOPLOOP:SETB P1.0 ;P1.0先置1,才能正确读入值SETB P1.1 ;P1.1先置1,才能正确读入值CLR C ;进位位清零,为接受P1口的值做准备MOV P1.0,#00H ;赋值,全灭MOV C,P1.0 ;P1.0口值送进位位MOV P1.2,C ;进位位C送值到P1.2口,输出ACALL DELAY ;调用延时子程序ACALL DELAYCLR C ;重复上面操作MOV P1.1,#00HMOV C,P1.1MOV P1.3,CACALL DELAYACALL DELAYLJMP LOOPDELAY: MOV R6, #1 ;延时子程序.DELAY1:MOV R7, #1 DELAYLOOP:DJNZ R6, DELAYLOOPDJNZ R7, DELAY1RETEND。

P1口输入输出实验

P1口输入输出实验

实验二 P1口输入输出实验一、实验目的:掌握P1口的使用方法。

二、所需设备1.单片机实验挂箱2.万利仿真器三、实验原理P1口为8位准双向口,每一位可独立定义为输入/输出,CPU对P1口的操作可以是字节操作,也可以是位操作。

四、实验内容1.将P1.0~P1.3接开关,将P1.4~P1.7接发光二极管。

依据P1.0~P1.3开关状态控制P1.4~P1.7发光二极管点亮2.将P1.0~P1.7全部接发光二极管,开始P1.0、P1.5点亮,左循环50次后P1.1、P1.4点亮;右循环30次,循环往复。

五、实验原理原理图如下:六、程序清单1. ORG 0000HLJMP MAINORG 0030H MAIN: MOV P1,#0FFH MOV A,P1ANL A,#0FHSWAP AMOV P1,ASJMP MAIN2. ORG 0000HLJMP MAINORG 0030HMAIN:MOV R7,#50HMOV A,#0DEHL1: MOV P1,ARL ALCALL ABCDJNZ R7,L1MOV R7,#30MOV A,#0EDHL2: MOV P1,ARR ALCALL ABCDJNZ R7,L2SJMP MAINABC:MOV R0,#0FFHDL2: MOV R1,#250DL1: NOPNOPDJNZ R1,DL1DJNZ R0,DL2RETEND七、实验现象分析1. P1.0~P1.3接开关k1-k4, P1.4~P1.7接发光二极管L5-L8。

单步运行程序,不断改变开关k1-k4的状态,可观察到发光二极管的变化(P1.4~P1.7为低电平时灯点亮)。

2.P1.0~P1.7全部接发光二极管L1-L8,开始P1.0、P1.5点亮,即将#0DEH 送入A中,左循环50次,并且通过调用延时程序ABC实现每次循环间510ms的延时。

后P1.1、P1.4点亮,即将#0EDH 送入A中,右循环30次,同样通过调用延时程序实现延时操作。

实验二 P1口输入、输出实验-含程流程图(14)

实验二 P1口输入、输出实验-含程流程图(14)

实验二P1口输入、输出实验一.实验目的1.复习单片机调试平台的使用方法,学习并巩固延时子程序的编程方法;2.验证用P1口既作输入又作输出;3.学习分支程序结构的编程方法;4.学习用散转指令或用CJNE指令实现复杂的分支程序。

二.实验设备电脑、THDPJ-2型单片机开发综合实验箱及连接线三.实验内容1.将E:\原始程序\1_P1口输出.asm 另存为E:\ 班级文件夹\个人文件夹\*.asm,修改延时子程序,实现延时间隔为1秒和3秒,观察现象并记录程序。

(时钟频率为12MHz)实验报告中要有延时子程序的参数计算过程。

(希望20分钟内完成)。

2.E:\原始程序\1_P1_B输出.asm 另存为E:\ 班级文件夹\个人文件夹\*.asm,验证用P1口既作输入又作输出。

(见附录一)3.安排P1.0作为单键输入口,P1.6、P1.7接两个发光管D6、D7。

用位转移指令实现:当P1.0=0时,D6、D7亮。

当P1.0=1时,D6、D7以1秒的间隔闪烁。

(流程图见附录二)4.安排P1.0、P1.1作为输入口,P1.4、P1.5 、P1.6、P1.7接四个发光管D4、D5、D6、D7当P1.1=0 、P1.0=0时,D4亮、D5、D6、D7灭;当P1.1=0 、P1.0=1时,D5亮、D4、D6、D7灭;当P1.1=1 、P1.0=0时,D6亮、D4、D5、D7灭;当P1.1=1 、P1.0=1时,D7亮、D4、L5、L6灭。

用散转指令或用CJNE指令实现(流程图见附录三)。

5.实验报告要求:每个步骤有流程图,有程序,有观察到的现象。

最后有实验心得。

附录一、KEYLEFT BIT P1.0 ;定义KEYRIGHT BIT P1.1LEDLEFT BIT P1.2LEDRIGHT BIT P1.3ORG 0000HLJMP STARTORG 0030HSTART: SETB KEYLEFT ;欲读先置一SETB KEYRIGHTLOOP: MOV C,KEYLEFTMOV LEDLEFT,CMOV C,KEYRIGHTMOV LEDRIGHT,CLJMP LOOPEND附录三、用CJNE指令的流程图。

哈工程-实验二_单片机P1口输入输出及中断实验

哈工程-实验二_单片机P1口输入输出及中断实验

实验二单片机P1口输入输出及外部中断实验一、实验目的1、学习P1口的使用方法。

2、学习延时子程序的编写和使用。

3、熟练在汇编软件环境下编写、修改、调试、和运行硬件程序4、熟悉汇编语言5、学习外部中断技术的基本使用方法。

6、学习中断处理程序的编程方法。

二、实验说明1、P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。

2、P1.0,P1.1作输入口接两个拨动开关,P1.2,P1.3作输出口,接两个发光二极管,编写程序读取开关状态,将此状态,在发光二极管上显示出来。

编程时应注意P1.0,P1.1作为输入口时应先置1,才能正确读入值。

3、用单次脉冲申请中断,在中断处理程序中使P1.0的输出状态发生反转,并通过发光二极管观察P1.0的电平。

三、实验仪器计算机伟福软件(lab2000P )四、实验内容1、P1口是准双向口。

它作为输出口时与一般的双向口使用方法相同。

由准双向口结构可知当P1口用为输入口时,必须先对它置“1”。

若不先对它置“1”,读入的数据是不正确的。

2、8051延时子程序的延时计算问题,计算和估算延时子程序的时间。

3、保护进入中断时的状态,并在退出中断之前恢复进入时的状态。

4、必须在中断程序中设定是否允许中断重入,即设置EXO位。

5、本例中使用了INTO中断,一般中断程序进入时应保护PSW,ACC以及中断程序使用但非其专用的寄存器。

本例的中断程序保护了PSW,ACC等三个寄存器并且在退出前恢复了这三个寄存器。

另外中断程序中涉及到关键数据的设置时应关中断,即设置时不允许重入。

五、思考题1、改变延时时间,变快或者变慢,观察效果;2、第2个实验在每个端口增加软件延时,延时时间变快或者变慢,观察拨动开关响应效果;3、改变流水灯的运行方向;4、改变流水灯的运行模式,双灯对跑,双灯一起跑。

5、如果LED灯为低电平点亮,如何改动。

6、把实验改为int1中断,需要改动几处,如何改动。

7、把实验改为同时int0和int1中断驱动2个灯,需要改动几处,如何改动。

厦门理工学院单片机实验 硬件实验一 P1口输入、输出实验

厦门理工学院单片机实验 硬件实验一  P1口输入、输出实验

机械工程系微机原理与接口技术实验报告书实验名称:P1口输入、输出实验年级专业及班级:姓名:学号:指导教师:刘建春评定成绩:教师评语:实验时间: 2011 年 10 月 31 日硬件实验一 P1口输入、输出实验一、实验要求1. P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。

2. P1.0、P1.1作输入口接两个拨动开关,P1.2、P1.3作输出口,接两个发光二极管,编写程序读取开关状态,将此状态,在发光二极管上显示出来。

编程时应注意P1.0、P1.1作为输入口时应先置1,才能正确读入值。

二、实验目的3. 学习P1口的使用方法。

4. 学习延时子程序的编写和使用。

三、实验电路及连线四、实验说明a) P1口是准双向口。

它作为输出口时与一般的双向口使用方法相同。

由准双向口结构可知当P1口用为输入口时,必须先对它置“1”。

若不先对它置“1”,读入的数据是不正确的。

b) 8051延时子程序的延时计算问题,对于汇编语言程序查指令表可知MOV ,DJNZ 指令均需用两个机器周期,在6MHz 晶振时,一个机器周期时间长度为12/6MHZ ,所以该段程序执行时间为:(256×255+2)×2×12÷6 ≈ 261msDelay : MOV R6,#0HMOV R7, #0HDelayLoop : DJNZ R6,DelayLoopDJNZ R7,DelayLoop RET五、实验框图(B) P1口输入输出程序框图(A) P1口循环点灯程序框图五、实验框图(B)P1输入输出程序框图(A)P1口循环点灯程序框图六、实验程序实验一程序#include<reg51.h>#include<intrins.h>void delay();void main(){unsigned char LED;LED = 0x01;P1 = LED;while(1){delay();LED = _crol_(LED,1); //循环右移1位,点亮下一个LED 此函数位库函数P1= LED;}}void delay(){unsigned char i,j;for(i=0;i<255;i++){for(j=0;j<255;j++){_nop_();}}}实验二程序#include<reg51.h>#include<intrins.h>#define uchar unsigned char sbit P1_0 = P1^0;sbit P1_1 = P1^1;sbit P1_2 = P1^2;sbit P1_3 = P1^3;void delay(uchar i){uchar j,k;for(j=i;j>0;j--)for(k=125;k>0;k--) _nop_; }void main(){/*******设置初始值************/P1_0 = 1;P1_1 = 1;P1_2 = 0;P1_3 = 0;/******************/ while(1){P1_2 = P1_0;P1_3 = P1_1;delay(255);}}。

单片机P1口输入输出实验

单片机P1口输入输出实验

单片机4个并行端口P0、P1、P2、P3有着不同 的结构特点和功用。
单片机P1口输入输出实验
4、硬件设计
89C51
C1 C2
图2 P1口某一I/O口线反转输出电路
单片机P1口输入输出实验
4、硬件设计
C1 C2
89C51 图2 P1口输出电路
单片机P1口输入输出实验
LED循环轮流点亮设计电路如图2所示。将51单片 机第40脚Vcc接电源+5V,第20脚Vss接地,为单片机工作 提供能源。 将第19脚XTAL1与18脚XTAL2分别接外部晶体两个引 脚,由石英晶体组成振荡器,保证单片机内部各部分有 序地工作。对外部C1、C2的取值虽然没有严格的要求, 但电容的大小会影响到振荡器频率的高低、振荡器的稳 定性、起振的快速性。C1、C2通常取值C1=C2=30PF左右。 8051的晶振最高振荡频率为12M,AT89C51的外部晶振最 高频率可到24M。
单片机P1口输入输出实验
5、程序设计
1)工作原理 P1口定义为带有上拉电阻8位准双向I/O口,功能单一, 每一位可独立定义为输入输出,CPU对P1口操作可以是字节操 作,也可以是位操作。P1作为输出口使用时,它的内部电路 已经提供了一个推拉电流负载,外接了一个上拉电阻,外电 路无需再接上拉电阻,与一般的双向口使用方法相同;作为 输入口使用时,应先向其锁存器写入“1”,使输出驱动电路 的FET截止。若不先对它置“1”,读入的数据是不准确的。
单片机P1口输入输出实验
2)程序流程如图4所示。
图4
P1口输出程序流程图
单片机P1口输入输出实验
3)参考程序(单片机P1端口接8只LED,每次点亮一只,向左移动点亮,重 复循环。) ORG 0000H START: MOV R0, #8 ;设左移8次 MOV A, #11111110B ;存入开始点亮灯位置 LOOP: MOV P1, A ;传送到P1并输出 LCALL DELAY ;调延时子程序 RL A ;左移一位 SJMP LOOP ;重新设定显示值 DELAY: MOV R5,#50 ;延时子程序 DLY1: MOV R6,#100 DLY2: MOV R7,#100 DJNZ R7,$ DJNZ R6,DLY2 DJNZ R5,DLY1 RET ;子程序返回 END ;程序结束

单片机P1口输入输出实验

单片机P1口输入输出实验
•9
单片机P1口输入输出实 验
单片机可靠的复位是保证单片机正常运行的关键因素。 因此,在设计复位电路时,通常要使RST引脚保持10ms以 上的高电平。当RST从高电平变为低电平之后,单片机就从 0000H地址开始执行程序。本电路是上电自动复位。
将8个LED接在单片机P1端口的P1.0-P1.7引脚上,注意 LED有长短两个引脚,分别表示正负极,其中较短的负极接 单片机,较长的为正极,通过限流电阻R与Vcc相连。
单片机P1口输入输出实 验
单片机端口是集数据输入缓冲、数据输出驱动及 锁存等多项功能一体I/O的电路,特别是把握它准 双向、多功能的特点。单片机4个并行端口是P0、 P1、P2、P3。本实验只讨论P1端口。
1、实验目的
通过实验了解P1口作为输入输出方式使用 时,CPU对P1口操作方式。
•1
单片机P1口输入输出实 2、验实验要求(1)、2)为必做,3)为选做)
•11
单片机P1口输入输出实验
图3 P1端口的一位结构
•12
单片机P1口输入输出实验
5、程序设计
P1口输出控制程序的设计主要包括控制输出程序设计与延时程序设计。 (1)输出控制:当P1.5端口输出低电平,即P1.5=0,这时LED亮,反 之,LED灭,可以使用P1.5=0指令使P1.5端口输出低电平,同样利用指 令使P1.5端口输出高电平。
灭;
状态3:8个LED发光二极管
全灭后,从左右两边开始同时点亮LED发光二极管,全亮
后,8个LED发光二极管再明暗一起闪烁2次 ?
•3
单片机P1口输入输出实 验
3、实验设备与仪器 单片机应用与仿真开发实验台,PC机,
E6000/L仿真器+POD-51仿真头、 Wave软硬件仿真软件。

p1口实验1

p1口实验1

一、实验目的:1.学习P1口的使用方法。

2.学习延时子程序的编写和使用。

二、实验设备:EL-8051-III型单片机实验箱三、实验内容:1.P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。

2.P1口做输入口,接八个按纽开关,以实验箱上74LS273做输出口,编写程序读取开关状态,在发光二极管上显示出来。

四、实验原理:P1口为准双向口,P1口的每一位都能独立地定义为输入位或输出位。

作为输入位时,必须向锁存器相应位写入“1”,该位才能作为输入。

8031中所有口锁存器在复位时均置为“1”,如果后来在口锁存器写过“0”,在需要时应写入一个“1”,使它成为一个输入。

可以用第二个实验做一下实验。

先按要求编好程序并调试成功后,可将P1口锁存器中置“0”,此时将P1做输入口,会有什么结果。

再来看一下延时程序的实现。

现常用的有两种方法,一是用定时器中断来实现,一是用指令循环来实现。

在系统时间允许的情况下可以采用后一种方法。

本实验系统晶振为6.144MHZ,则一个机器周期为12÷6.144us即1÷0.512us。

现要写一个延时0.1s的程序,可大致写出如下:MOV R7,#X (1)DEL1:MOV R6,#200 (2)DEL2:DJNZ R6,DEL2 (3)DJNZ R7,DEL1 (4)上面MOV、DJNZ指令均需两个机器周期,所以每执行一条指令需要1÷0.256us,现求出X值:1÷0.256+X(1÷0.256+200×1÷0.256+1÷0.256)=0.1×10?指令(1)指令(2)指令(3)指令(4)所需时间所需时间所需时间所需时间X=(0.1××10?-1÷0.256)/(1÷0.256+200×1÷0.256+1÷0.256)=127D=7FH经计算得X=127。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一 P1口输入输出
一.实验目的
(1)进一步熟悉51单片机外部引脚线路连接;
(2)验证常用的51指令;
(3)学习简单的编程方法;
(4)掌握单片机全系统调试的过程及方法;
(5)学习P1口的有关功能作用以及使用方法。

二.实验说明
P1口由于有内部上拉电阻,没有高阻抗输入状态,称为准双向口。

作为输出口时,不需要在片外接上拉电阻,P1口“读引脚”输入时,必须先向锁存器写1;
三.实验内容
P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。

、作输入口接两个拨动开关,、作输出口,接两个发光二极管,编写程序读取开关状态,将此状态,在发光二极管上显示出来
四.实验原理
以实验机上74LS273做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。

循环时间由定时器控制。

五.实验流程
六.实验源程序
ORG 0000H ;程序入口
AJMP RIGHT ;跳向标号RIGHT处
ORG 0030H ;程序
RIGHT: MOV R0,#08H ;置移位次数
MOV A,#0FFH ;置全1
CLR C ;将Cy清零
RIGHT1: RRC A ;由于进位Cy=0,所以带进位的循环右移会出现灯的亮灭
MOV P1,A ;输出至P1口,控制LED
CALL DELAY ;调用延时子程序
DJNZ R0,RIGHT1 ;R0-1,不为0则转移到标号RIGHT1处
AJMP R IGHT ;绝对转移至RIGHT处
;************************************************************************** ***
; /*延时子程序*/
;************************************************************************** ***
;使用不停的跳转来实现延时,
DELAY: MOV R5,#10
DELAY1: MOV R6,#50
DELAY2: MOV R7,#250
DJNZ R7,$
DJNZ R6,DELAY2 ;R6-1,不为0则转移至DELAY2,执行2*200*10us
DJNZ R5,DELAY1 ;R5-1,不为0则转移至DELAY1,执行2*10us
RET ;退出子程序执行
END
七.硬件设计
(1)P1口某一I/O口线反转输出电路
(2) P1口输出电路
八.实验连接图
九.实验原理图:
十.仿真器的设置步骤:
仿真模式设置:8752 模式。

仿真存储器模式选择:内程序存储器外数据存储器。

仿真器短路块设置在WR/RD 状态。

1)启动计算机,打开仿真软件,进入仿真环境。

首进行仿真器的设置,选择仿真器型号、仿真头型号、CPU类型。

选择通信端口,点击测试串行口,通信成功便可退出设置,进行仿真。

2)在编辑窗口输入源程序,保存,文件名为。

对源程序进行编译,编译无误后,执行程序,观察LED变化,分析此现象。

3)编写内容源程序,按以上步骤调试该程序,观察实验现象并分析。

4)实验连线…
十一.实验仿真结果:
发光二极管会依次由上而下发亮,并且循环。

十一.实验总结:
通过这次实验,我分析和解决问题的实际工作能力得到了提高,它的一个重要功能,在于运用学习成果,检验学习成果。

运用学习成果,把课堂上学到的系统的理论知识,常识性的应用于实际设计工作,检验学习成果,检查出课堂学习与实际工作到底有多大距离,并通过综合分析,找出学习中存在的不足,以便完善学习计划,改变学习内容与方法提供实践依据。

相关文档
最新文档