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口输入、输出实验实验二 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口输入、输出实验一、实验目的学习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口输入输出

实验四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口通过发送和接收电压信号来进行通信,从而实现输入输出的功能。
二、实验过程1. 准备工作在进行实验前,我们需要准备一台计算机和一些外部设备,如键盘、鼠标和打印机。
将这些设备连接到计算机的p1口上。
2. 输入实验首先,我们进行输入实验。
在连接好设备后,我们可以通过键盘向计算机输入一些字符。
计算机会将这些字符接收并进行处理。
我们可以通过编写一个简单的程序来实现字符的显示和处理。
在程序中,我们可以使用相应的函数来获取键盘输入,并将其显示在屏幕上。
通过这个实验,我们可以验证p1口的输入功能是否正常工作。
3. 输出实验接下来,我们进行输出实验。
在程序中,我们可以使用相应的函数来控制打印机输出指定的内容。
通过这个实验,我们可以验证p1口的输出功能是否正常工作。
4. 实验结果通过实验,我们可以得出以下结论:- 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口输入输出实验
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口输入、输出的实现一、实验目的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口输入输出一.实验目的(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口输入和输出实验实验一、实验目的(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的值即可。
七、总结实验中出现的问题及解决方法:接线过程中线较多出现交叉现象以及接错现象,为解决这种现象我认真反复多次检查并认真修改解决了接错问题同时通过设置导线标签顺利减少了连线的数量。
八、流程图及源程序接线图。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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)实验连线…
十一.实验仿真结果:
发光二极管会依次由上而下发亮,并且循环。
十一.实验总结:
通过这次实验,我分析和解决问题的实际工作能力得到了提高,它的一个重要功能,在于运用学习成果,检验学习成果。
运用学习成果,把课堂上学到的系统的理论知识,常识性的应用于实际设计工作,检验学习成果,检查出课堂学习与实际工作到底有多大距离,并通过综合分析,找出学习中存在的不足,以便完善学习计划,改变学习内容与方法提供实践依据。