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、画出流程图、编写实验程序,写出实验的心得体会。

实验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 /*结束*/(此程序利用查询定时计数器的溢出标志位来定时。

单片机 P1口输入输出实验.

单片机 P1口输入输出实验.

实验二 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口输入输出实验;文件名:MCS51\A09.ASMORG 0000HSETB P1.3 ;为输入,置1。

单片机P1口输入输出实验

单片机P1口输入输出实验

P1口输入输出程序设计
7、实验报告要求
1)实验报告要求有实验目的、要求、设备或仪器、硬件软件设计、步骤、 现象分析、应用分析。现象分析、应用分析填在报告本的原始数据栏。 2)画出实验要求2)硬件设计电路图、程序设计流程图、程序设计清单。 3)写出实验要求3)的程序设计清单? 4)写出实验过程中所遇到的问题与解决的办法。
8、思考题
1)说明单片机各个引脚的功能及作用,比较P0,P3端口的异同? 2)时钟周期、机器周期的关系是什么?在单片机外部晶振为12M时,下面 的延时子程序延时了多少时间?当晶振为6M时呢? DELAY: MOV R5,#08H DL1: MOV R6,#00H DL2: MOV R7,#80H DJNZ R7,$ DJNZ R6,DL2 DJNZ R5,DL1 RET
P1口输入输出程序设计
单片机可靠的复位是保证单片机正常运行的关键因素。 因此,在设计复位电路时,通常要使RST引脚保持10ms以上 的高电平。当RST从高电平变为低电平之后,单片机就从 0000H地址开始执行程序。本电路是上电自动复位。 将8个LED接在单片机P1端口的P1.0-P1.7引脚上,注意 LED有长短两个引脚,分别表示正负极,其中较短的负极接 单片机,较长的为正极,通过限流电阻R与Vcc相连。 本实验只需将8个LED与P1口相连。单片机的P0、P1、 P2、P3端口都可以用来控制LED。(反过去再看设备)
P1口输入输出程序设计
图3
P1端口的一位结构
P1口输入输出程序设计
5、程序设计
P1口输出控制程序的设计主要包括控制输出程序设计与延时程序设计。 (1)输出控制:当P1.5端口输出低电平,即P1.5=0,这时LED亮,反之, LED灭,可以使用P1.5=0指令使P1.5端口输出低电平,同样利用指令使 P1.5端口输出高电平。 (2)延时程序:单片机指令的执行时间是很短的,数量大多是微秒级, 因此,我们要求的闪烁时间间隔为0.2s,相对于微秒来说,相差太大, 因此在执行某一指令时,插入延时程序,来解决这一问题。 开关状态检测过程: 单片机对开关状态的检测相对于单片机来说,是从单片机的端口输入信 号,而输入的信号只有高电平和低电平两种,要能正确输入信号,先使 P1端口P1.0-P1.3置1。可轮流检测每个开关状态,根据每个开关的状态 让相应的二极管指示,也可以一次性检测四路开关状态,然后让其指示。

实验一-P1口实验

实验一-P1口实验

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

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

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

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

三、有关说明P1口为准双向口,P1口的每一位都能独立地定义为输入位或输出位。

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

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

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

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

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

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

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

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

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

代入上式可知实际延时时间约为0.100004s,已经很精确了。

四、连线方法执行程序1时:P1.0~P1.7接发光二极管L1~L8。

执行程序2时:P1.0~P1.7接按钮开关K1~K8;74LS273的S00~S07接发光二极管L1~L8;74LS273的片选端CSU8\接CS0五、程序1CSEG AT 0000HLJMP STARTCSEG AT 4100HSTART: MOV A,#0FEHLOOP: RR AMOV P1,ALCALL DELAYJMP LOOPDELAY: MOV R1,#127DEL1: MOV R2,#200DEL2: DJNZ R2,DEL2DJNZ R1,DEL1RETEND机器码与源程序对比LOC OBJ LINE SOURCE1 NAME T1_12 CSEG AT 0000H0000 024100 3 LJMP START4 CSEG AT 4100H4100 74FE 5 START: MOV A,#0FEH4102 03 6 LOOP: RR A4103 F590 7 MOV P1,A4105 12410A 8 LCALL DELAY 4108 80F8 9 JMP LOOP10410A 797F 11 DELAY: MOV R1,#127410C 7AC8 12 DEL1: MOV R2,#200410E DAFE 13 DEL2: DJNZ R2,DEL24110 D9FA 14 DJNZ R1,DEL14112 22 15 RET1617 END六、程序2NAME T1_2 ;P1口输入实验OUT_PORT EQU 0CFA0HCSEG AT 0000HLJMP STARTCSEG AT 4100HSTART: MOV P1,#0FFH ;复位P1口为输入状态MOV A,P1 ;读P1口的状态值入累加器AMOV DPTR,#OUT_PORT ;将输出口地址赋给地址指针DPTRMOVX @DPTR,A ;将累加器A的值赋给DPTR指向的地址 JMP START ;继续循环监测端口P1的状态END。

硬件实验一 报告

硬件实验一 报告

硬件实验一P1口输入、输出实验一、实验目的1.学习P1口的使用方法。

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

二、实验要求1、基本部分:(1)P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。

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

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

2、扩展部分:(1)利用P1口控制发光二极管LED灯按照下面方式工作:a)LED灯从左到右依次点亮;b)LED灯从右到左依次点亮;c)按照以上步骤重复运行,其中要求灯亮的时间为500ms。

(2)利用P1口控制发光二极管LED灯按照下面方式工作:a)从左到右奇数LED灯依次点亮;b)从右到左偶数LED灯依次点亮;c)按照以上步骤重复运行,其中要求灯亮的时间为500ms。

三、实验程序扩展部分#include<reg52.h>#include<intrins.h>void delay();void main(){unsigned char LED;bit a; //定义变量a来控制左移还是右移a=1;LED=0x7f;P1=LED;while(1){if(a) //当a为高电平时LED灯从左到右依次点亮{delay(); //延迟500msLED=_cror_(LED,1);P1=LED;if(LED==0xfe)a=~a;if(~a) //当a为低电平时LED{delay(); //延迟500msLED=_crol_(LED,1);P1=LED;if(LED==0x7f)a=~a;}}}void delay(){unsigned int i,j;for(i=0;i<500;i++){for(j=0;j<125;j++){_nop_();}}}扩展部分程序流程图四、实验心得:遇到问题:一开始,编程的实验结果为灯全亮依次灭,让我十分疑惑,后来得知,芯片的LED 灯为低电平有效。

(教案)实验1 P1口输入输出实验

(教案)实验1 P1口输入输出实验

茂名学院电信工程系教案专业班级:电信06-1,2 授课教师:左敬龙实验一 P1口输入输出实验实验性质:验证性实验时数: 2学时实验目的:1.熟悉单片机开发平台硬件、软件环境2.学习数据存储器不同的读写方法3.学习P1口的使用方法实验要求1.对片内RAM、寄存器编程进行读写和逻辑操作,利用开发平台查看读写结果。

2.P1口做输入口,接八个扭子开关,编写程序读取开关状态,将此状态所代表的数字保存在外部数据存储器6010H单元中。

3.将实验机上74LS273做输出口,编写程序,将6010H单元的内容输出,通过发光二极管的亮灭情况检查输出结果。

实验重点:1.熟悉实验箱操作2.熟悉联机调试软件的操作实验讲义:一、介绍实验目的与要求1、实验目的与要求2、实验电路与连线接线说明:P1.0~P1.7接K1~K8;PO0~PO7接DL1~DL8。

/CS接8300H3、关于P1口的输入输出控制P1口是准双向口。

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

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

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

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

图1 实验电路二、设计思路1、开关数据的输入因为8个开关KEY是直接通过P1链接到单片机的,所以读取数据时直接使用 MOV A, P1 指令即可。

由于P1口输入需要先置1,所以一般采用:MOV P1, #0FFHMOV A , P12、数据的输出(控制LED灯)如图1所示。

通过芯片 74LS273 扩展 I/O 口,连接到实验箱的 8300 端口,这样对273输出数37H就可以通过以下指令实现:MOV DPTR, #8300HMOV A, #37HMOVX @DPTR, A三、关键问题提示关于程序的调试由于是第一次实验,请大家仔细熟悉调试开发软件的使用方法。

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、学习P1口的使用方法2、学习延时子程序的编写和使用二、实验设备电脑,实验台三、实验内容及步骤用P1口做输出口,接八位发光二极管,然后运行程序后观察发光情况.1、在实验台上找到本次实验使用的模块,可选用89C51单片机最小应用系统模块。

关闭该模块电源,用十线扁平插头连接单片机P1口与八位发光二极管显示模块。

2、安装好仿真器,用串行数据通信线连接计算机与仿真器,把仿真头插到模块的单片机插座中,打开模块电源,插上仿真器电源插头。

3、启动计算机,打开伟福仿真软件,进入仿真环境。

首先进行仿真器的设置,选择仿真器型号、仿真头型号、CPU类型;选择通信端口,点击测试串行口,通信成功既可退出设置,进行仿真。

4、打开TH7A.ASM源程序,进行编译。

编译无误后,点击全速执行按钮运行程序,观察发光二极管显示情况。

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

5、把串行通信线改接到烧录器上,插入AT89C51芯片,打开烧录器电源。

打开A51软件,把源程序编译成OBJ文件,关闭伟福仿真软件,打开BCQ软件,把OBJ文件烧录到89C51芯片中。

取下仿真头,把烧录好的89C51芯片插到模块中,打开电源,观察发光二极管显示情况,判断程序是否正常运行。

2.源程序:ORG 0LOOP: MOV A, #01HMOV R2,#8OUTPUT: MOV P1,ARL AACALL DELAYDJNZ R2,OUTPUTLJMP LOOPDELAY: MOV R6,#0MOV R7,#0DELAYLOOP: ;延时程序DJNZ R6,DELAYLOOPDJNZ R7,DELAYLOOPRETEND五、思考题(1)对于本实验延时子程序Delay:MOV R6,0MOV R7, 0DelayLoop:DJNZ R6,DelayLoopDJNZ R7,DelayLoopRET本模块使用12MHz晶振,计算此程序的执行时间为多少?六、电路图Ps: 实验报告写项目有1目的,2设备,3步骤,4程序,5结果,6思考题,请于实验前写好前4项,步骤尽量简单,不一定照抄实验说明P1口是准双向口,它作为输出口时与一般的双向口使用方法相同。

硬件实验一 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口输入、输出实验一、实验目的1、学习P1口的使用方法2、学习延时子程序的编写和使用二、实验说明P1口是准双向口,它作为输出口时与一般的双向口使用方法相同。

由准双向口结构可知当P1口用作输入口时,必须先对口的锁存器写“1”,若不先对它写“1”,读入的数据是不正确的。

三、实验内容及步骤实验(一):用P1口做输出口,接八位逻辑电平显示,程序功能使发光二极管从右到左轮流循环点亮。

1、使用单片机最小应用系统1模块。

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

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

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

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

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

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

实验(二):用P1.0、P1.1作输入接两个拨断开关,P1.2、P1.3作输出接两个发光二极管。

程序读取开关状态,并在发光二极管上显示出来。

1、用导线分别连接P1.0、P1.1到两个拨断开关,P1.2、P1.3到两个发光二极管。

2、添加 P1_B.ASM源程序,编译无误后,运行程序,拨动拨断开关,观察发光二极管的亮灭情况。

向上拨为熄灭,向下拨为点亮。

四、流程图及源程序1.流程图2.源程序:(一)实验一ORG 0000H LJMP START ORG 0030HSTART: MOV A, MOV R5,#8 OUTPUT: MOV P1,A RL A CALL LJMP START DELAY: MOV R6,#0 MOV R7,#0DELAYLOOP: ;延时程序 DJNZ R6,DELAYLOOP DJNZ R7,DELAYLOOP RETEND(二)实验二KEYLEFT BIT P1.0 ;定义KEYRIGHT BIT P1.1LEDLEFT BIT P1.2LEDRIGHT BIT P1.3ORG 0030HSTART: ;欲读先置一SETBLOOP:LJMP LOOPEND五、思考题(1)对于本实验延时子程序Delay: MOV R6,0MOV R7, 0DelayLoop:DJNZ R6,DelayLoopDJNZ R7,DelayLoopRET如使用12MHz晶振,粗略计算此程序的执行时间为多少?六、电路图。

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口输入输出与中断实验

单片机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 口输入、输出实验报告班级姓名学号日期一、实验目的和要求:1、学习P1 口的使用方法。

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

3、学习用‘与’‘或’运算对MCS96系列CPU的变量进行位操作。

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

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

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

三、程序及运行结果Flash equ 0 ; LED状态STOP equ 1SR equ p1.0 ; 南北红灯SY equ p1.1 ; 南北黄灯SG equ P1.2 ; 南北绿灯ER equ P1.3 ; 东西红灯EY equ P1.4 ; 东西黄灯EG equ p1.5 ; 东西绿灯ljmp Startorg 0003hsetb STOP ; 南北, 东西均红灯retiStart:mov SP, #70mov TCON, #01h ; down edge IT0mov IE, #81h ; enable EA, EX0setb SR ; 南北, 东西均红灯clr SYclr SGsetb ERclr EYclr EGclr STOPLoop:jb STOP, AllRedsetb SR ; 南北红灯, 东西绿灯clr SYclr ERclr EYsetb EGmov a, #20call Delayjb STOP, AllRedsetb SR ; 南北红灯, 东西黄灯闪clr SYclr SGclr ERclr EYclr EGclr Flashmov r7, #9Loop1:mov c, Flashmov EY, cmov a, #1call Delaycpl Flashdjnz r7, Loop1jb STOP, AllRedclr SR ; 南北绿灯, 东西红灯clr SYsetb SGsetb ERclr EYclr EGmov a, #20call Delayjb STOP, AllRedclr SR ; 东西红灯, 南北黄灯闪clr SYclr SGsetb ERclr EYclr EGclr Flashmov r7, #9Loop2:mov c, Flashmov SY, cmov a, #1cpl Flashdjnz r7, Loop2ljmp LoopAllRed:setb SRclr SYclr SGsetb ERclr EYclr EGclr STOPmov a, #10call Delayljmp LoopDelay: ; 延时子程序mov r1, #80Hmov r0, #0 DelayLoop:jb STOP, ExitDelaydjnz r0, DelayLoopdjnz r1, DelayLoopdjnz ACC, Delay ExitDelay:retend四、实验过程中遇到的主要问题五、实验后的心得体会。

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

实验一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 ;置全 1 CLR C
;将Cy 清零
RIGHT1: RRC A
;由于进位Cy=0 ,所以带进位的循环右移会出现灯的亮灭
MOV P1,A ;输出至P1 口,控制LED CALL DELAY ;调用延时子程序
DJNZ R0,RIGHT1 ;R0-1,不为0则转移到标号 RIGHT1处 AJMP
RIGHT
;绝对转移至RIGHT 处
・*****************************************************************************
5
; /*延时子程序*/
・*****************************************************************************
DJNZ R5,DELAY1 ;R5-1,不为 0 则转移至 DELAY1,执行 2*10us RET ;退出子程序执行 END
七•硬件设计
(1) P1 口某一 I/O 口线反转输出电路
(2) P1 口输出电路
DELAY: MOV R5,#10 DELAY1: MOV R6,#50 DELAY2:
MOV
R7,#250 DJNZ R7,$
DJNZ R6,DELAY2
;R6-1,不为0则转移至 DELAY2,执行2*200*10us H-5V
+5V
Vcc
P1.0
Pl 1 EA
XI
PL 2 Pl .3
Pl XS
Pl.5 Pl.6
Pl .7
R.ST Vss
;使用不停的跳转来实现延时,
30 P 80CS1
LED 360fi
+ 5V
YCC尸0血尸1. 1 XI Pl. 2
Pl. 3 X2
Fl- 4
Pl- 5
Pl, 6 PST FL. 7
Vss
十.仿真器的设置步骤:
仿真模式设置:8752模式。

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

仿真器P3.6/P3.7 短路块设置在WR/RD 状态。

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

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

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

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

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

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

4)实验连线… I ^一•实验仿真结果
:
九•实验原理图
Mun-
Pfl IWI
vujffica
PQMOG fO.V.AKi pp
IPQMCF
AST
F :沖強 rr 畑 P7
S/fill
rid -a r-»E* B
EA
P2伽2
Pl
P7㈣曙 P1J F1 1 PILE
nJUHMD F3 IHTD *3 ]OTT
Pl^Tl P3 FfRD
11
P1I.J
™n
嘶,
-C-
r.
-D1
D4 ; ■ C5 MIR
-D6
DC
-DS i
_SZi TEU
-D3 L D 斗 .I
发光二极管会依次由上而下发亮,并且循环。

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

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

・ ___F^! ■-
>XTAL1 ^TAE?
POJ/AOD PU.UAOl PD.2/AD2 rlJ ■W H UJ PD.4/AD4 RSt
PD.5/AD5 PD.7/AD7
陆Df 烤
PSEN
P2JiW
P2.2/A1D F2.3/AH ME
P2.4/A12
EA.
p?
rz .。

丿PJ P1jJ mi
F2.7/A15
ni/Dvm
r 1.11
rJ. 1J I.JUJ
P3J/INTD
P1.3 P1.4 P15
尸孑.J/l n 11 P3.4TD P3.&T1
P1J&
P3.8^R
P17
F3.7/RO
i
巫HP
• ■ 33DR-
& 336R-
"inflR - tui -
9
IS
H
'U1 ・’ IQ
4"
5 ■
S" 7" !■
2 ■ ■11
■1.2 ■13
-14
■却-36■竝■23-M。

相关文档
最新文档