P1口的输入输出实验
单片机实验 P3.3口输入,P1口输出
实验一P3.3口输入,P1口输出一、实验目的1、掌握P3口、P1口简单使用2、学习Keil,Proteus软件使用二、实验说明本次实验用外中断1的中断方式控制P1口8位LED亮灭状态,即第一次按下S键时,8位LED点亮,再次按下S时,8位LED熄灭,如此循环。
三、实验线路图四、实验步骤1、先建立文件夹“ex1”,然后建立“ex1”工程项目,最后建立源程序文件“ex1.c”,输入如下源程序;/*******************************************实验1:P3.3输入,P1口输出******************************************///用外中断1的中断方式进行数据采集#include<reg51.h>sbit S=P3^3;/*******************************************函数功能:主函数******************************************/void main(void){EA=1;EX1=1;IT1=1;P1=0xff;while(1); //无限循环,防止程序跑飞}/**************************************************************函数功能:外中断T1的中断服务程序**************************************************************/void int1(void) interrupt 2 using 0{P1=~P1;}2、用Proteus软件仿真经过Keil软件编译通过后,可利用Proteus软件仿真。
在Proteus ISIS编辑环境中绘制仿真电路图。
打开配套实验1仿真原理图文件“ex1.DSN”,将编译好的“ex1.hex”文件载入AT89C51。
数字量输入输出实验
数字量输入输出实验一、实验目的了解P1口作为输入输出方式使用时,CPU 对P1口的操作方式。
二、实验环境1、软件环境要求Windows XP操作系统以及Keil C51 单片机集成开发环境。
2、硬件环境要求电脑一台,TD-51单片机系统,开关及LED显示单元,单次脉冲单元。
三、实验内容编写实验程序,将P1口的低4位定义为输出,高4位定义为输入,数字量从P1口的高4位输入,从P1口的低4位输出控制发光二极管的亮灭。
提高部分:LED灯控制要求:通过KK1实现LED灯工作方式即时控制,完成LED灯左循环、右循环、间隔闪烁功能。
四、实验分析P1口是8位准双向口,每一位均可独立定义为输入输出,输入位置1。
通过A的左/右移位及赋值55H、0AAH,再将A值送入P1,可实现LED灯左循环、右循环、间隔闪烁功能。
五、实验步骤(一)基础实验程序及实验程序流程图如下。
实验程序:ORG 0000HLJMP MAINORG 0100HMAIN:MOV P1,#0F0H ;将开关状态送入P1高位MOV A,P1 ;送入ASWAP A ;高低位互换MOV P1,A ;将开关状态送入P1低位JMP MAIN ;循环SJMP $END程序流程图:图1 LED开关控制显示功能图图2 实验接线图实验步骤:1. 按图2所示,连接实验电路图,图中“圆圈”表示需要通过排线连接;2. 编写实验程序,编译链接无误后进入调试状态;3. 运行实验程序,观察实验现象,验证程序正确性;4. 按复位按键,结束程序运行,退出调试状态;5. 自行设计实验,验证单片机其它IO 口的使用。
(二)提高实验程序及实验程序流程图如下。
实验程序:实验程序流程图:ORG 0000HLJMP MAINORG 0100HMAIN:KT: ;检查KK1SETB P3.3JNB P3.3,KTCLR P3.3LL1: ;左循环MOV A,#01HX1:MOV P1,ACALL DELAYRL ASETB P3.3JNB P3.3,X1CLR P3.3LL2: ;右循环MOV A,#80HX2:MOV P1,ACALL DELAYRR ASETB P3.3JNB P3.3,X2CLR P3.3LL3: ;间隔闪烁MOV A,#55HMOV P1,ACALL DELAYMOV A,#0AAHMOV P1,ACALL DELAYSETB P3.3JNB P3.3,LL3CLR P3.3JMP KTDELAY: ;延时子程序MOV R2,#00H图3 实验流程图MOV R3,#00HABC:DJNZ R2,ABCDJNZ R3,ABCRETSJMP $END实验步骤:(1)按图4连接实验电路;(2)编写实验程序,编译、链接无误后启动调试;(3)运行实验程序,每按一次KK1+,观察实验现象;(4)验证程序功能,实验结束按复位按键退出调试。
实验四 P口输入、输出
4、编程完成:发光二极管循环显示二进制数00H至0FFH。 、编程完成:发光二极管循环显示二进制数 至 。
LED EQU 01H ORG 0 MOV A,#LED LOOP: MOV p1,A CALL DELAY INC A LJMP LOOP DELAY: MOV R6,#0 MOV R7,#0 DLLOOP: DJNZ R6,$ DJNZ R7,DLLOOP RET END
假设赋值给A为类似 的数据, 假设赋值给 为类似1BH、0AEH的数据,编程,利用查表功 为类似 、 的数据 编程, 能将高低半字节分别转换为ASCII码,存放在地址为30H、31H 能将高低半字节分别转换为 码 存放在地址为 、 数据区。 的值, 的RAM数据区。修改程序中给累加器 的值,重复实验,观察 数据区 修改程序中给累加器A的值 重复实验, 实验结果。 实验结果。 RESULT EQU 03H MOV A,B ORG 0 ANL A,#0FH LJMP START MOVC A,@A+DPTR ASCIITAB: MOV RESULT+1,A DB '0123456789ABCDEF' RET BINTOHEX: START: MOV DPTR,#ASCIITAB MOV SP,#40H MOV B,A MOV A,#1AH SWAP A CALL BINTOHEX ANL A,#0FH LJMP $ MOVC A,@A+DPTR END MOV RESULT,A
三、实验内容 1、⑴ 按图连接线路:P1.0—P1.7用插针连 、 按图连ห้องสมุดไป่ตู้线路: 用插针连 至L0-L7; ; 在闪动“ 状态 状态, ⑵ 在闪动“P.”状态,按PCDBG键; 键 双击DVCC图标,启动 图标, ⑶ 双击 图标 启动DVCC; ; 在系统设置选项中设定仿真模式为内程序、 ⑷ 在系统设置选项中设定仿真模式为内程序、 内数据; 内数据; 在主菜单中选择联接; ⑸ 在主菜单中选择联接; 新建文件,编辑实验源程序(1)和 ⑹ 新建文件,编辑实验源程序 和(2)(见附 见附 录),验证“八位逻辑电平显示”电路中的 ,验证“八位逻辑电平显示” 发光二极管的连接是共阴极还是共阳极。 发光二极管的连接是共阴极还是共阳极。
P1口输入输出实验报告
实验六P1口输入、输出实验1.实验目的1)学习单片机的P1口作为I/O口的使用方法,进一步学习指令系统,了解硬件的连接方法;2)学习延时子程序的编写和使用。
2.实验要求:P1.0~ P.3口做输出口,接四只发光二极管L0~L3 ; P1.4~ P.7 接逻辑电平开关电路的S0 ~S3。
编写程序,使发光二极管反映开关的状态。
3.实验说明P1口是准双向口。
它作为输出口时与一般的双向口使用方法相同。
由准双向口结构可知当P1口用为输入口时,必须先对它置“1”。
若不先对它置“1”,读入的数据不一定正确。
80C51可以将位变量通过C标志位赋值给其它位。
8051延时子程序的延时计算问题,对于程序Delay:MOV R6,#00HMOV R7, #00HDelayLoop:DJNZ R6,DelayLoopDJNZ R7,DelayLoopRET查指令表可知MOV,DJNZ指令均需用两个机器周期,在6MHz晶振时,一个机器周期时间长度为12/6MHZ,所以该段程序执行时间为:(256×255+2)×2×12÷6 ≈261ms4.连线图P1.0——LED0P1.1——LED1P1.2——LED2P1.3——LED3P1.4——S0 P1.5——S1P1.6——S2P1.7——S35.实验内容1)使用仪器、仪表,开发平台型号本实验用到了WAVE 6000软件平台,电脑一台,LAB6000实验箱,若干连线,串行数据线。
2) 性能指标、技术要求、思路方案、流程图5.2.1 性能指标、技术要求见实验目的和实验要求。
5.2.2 思路方案:先将连在P1.4----P1.7的数据读入,然后将其输出到P1.0-P1.3口,最后显示到发光二极管。
5.2.3 流程图:P1口输入输出实验备注:因为是反复地查看拨码开关的状态,故框图中没有结束标志。
3) 源程序ORG 0000HLJMP BEGINBEGIN:MOV P1,#0FFH ;当P1口用为输入口时,必须先对它置“1”;若不先对它置“1”,读入的数据不一定正确MOV A,P1 ;读端口数据SWAP A ;交换高低4位MOV P1,A ;写端口LCALL DELAY ;延时子程序JMP BEGIN ;循环DELAY:MOV R6,#0FFH ;FFH 是为了与下面的对应MOV R7,#22HDelayLoop:DJNZ R6,DelayLoopDJNZ R7,DelayLoopRET4)实验步骤,完成情况4.1在WAVE 6000中新建文件,并将代码写入文件中,保存为EXPERIMENT6.ASM;4.2在WAVE 6000中新建项目,并在模块文件中包含上述EXPERIMENT6.ASM文件,最后保存为EXPERIMENT6.PRG。
p1口输入输出实验报告
p1口输入输出实验报告p1口输入输出实验报告引言:计算机科学领域的发展使得我们能够使用各种各样的设备与计算机进行交互。
而在这个过程中,输入输出接口的设计和实现显得尤为重要。
本篇文章将围绕p1口输入输出接口展开讨论,介绍其原理、实验过程以及实验结果。
一、p1口输入输出接口的原理p1口是一种通用输入输出接口,它可以连接各种外部设备,如键盘、鼠标、打印机等。
p1口的原理是通过电信号的传输来实现与外部设备的交互。
具体来说,p1口通过发送和接收电压信号来进行通信,从而实现输入输出的功能。
二、实验过程1. 准备工作在进行实验前,我们需要准备一台计算机和一些外部设备,如键盘、鼠标和打印机。
将这些设备连接到计算机的p1口上。
2. 输入实验首先,我们进行输入实验。
在连接好设备后,我们可以通过键盘向计算机输入一些字符。
计算机会将这些字符接收并进行处理。
我们可以通过编写一个简单的程序来实现字符的显示和处理。
在程序中,我们可以使用相应的函数来获取键盘输入,并将其显示在屏幕上。
通过这个实验,我们可以验证p1口的输入功能是否正常工作。
3. 输出实验接下来,我们进行输出实验。
在程序中,我们可以使用相应的函数来控制打印机输出指定的内容。
通过这个实验,我们可以验证p1口的输出功能是否正常工作。
4. 实验结果通过实验,我们可以得出以下结论:- p1口的输入功能正常工作,可以准确地接收键盘输入的字符。
- p1口的输出功能正常工作,可以控制打印机输出指定的内容。
三、实验总结p1口作为一种通用输入输出接口,具有广泛的应用。
通过本次实验,我们对p1口的原理和功能有了更深入的了解。
p1口的输入功能可以使计算机接收外部设备的输入信号,从而实现与用户的交互。
p1口的输出功能可以使计算机控制外部设备进行相应的操作,从而实现对外部环境的影响。
在今后的学习和工作中,我们可以进一步探索p1口的应用,提高计算机与外部设备的交互效率。
结语:通过本次实验,我们对p1口输入输出接口有了更深入的理解。
北京理工大学单片机实验报告
北京理工大学实验选修课程《单片机原理与应用》课程实验报告姓名:学号:**********专业:信息工程班级:05111003实验一 P1口基本实验一、实验目的1.掌握如何建立项目,并用Keil C51软件调试程序。
二、实验内容1. P1口基本实验P1口做输出口,接八只发光二极管(如图1-1),编写程序,使发光二极管从左到右依次单个点亮,再从右至左依次单个点亮,以此循环。
各发光二极管的阳极通过保护电阻接到+5V 的电源上,阴极接到接线端口上,因此使其点亮应使相应接线端口为低电平。
三、实验原理1. P1口实验原理P1口为准双向口,P1口的每一位都能独立地定义为输入位或输出位。
作为输入位时,必须向锁存器相应位写入“1”。
2. 延时原理及计算方法常用的延时程序有两种方法,一种是用定时器中断来实现,另一种是用指令循环来实现。
用C 语言编写的延时子程序,计算延时时间时需转化为汇编语言。
针对不同的编译环境,C51编译后生成的代码不同。
针对本实验系统,若延时时间大于255ms,用C51实现可大致写出如下:unsigned int i;unsigned char j;while(i--){ for(j=0;j<60;j++){;}}若延时时间不大于255ms ,可将循环变量(i,j )定义为unsigned char ,并将内循环体中参数改为75。
四、实验代码#include<reg51.h>unsigned char L; /*L 传递亮灭的数值*/或 unsigned int i, ms; unsigned char j; for(i=0;i<ms;i++) { for(j=0;j<60;j++) {;} }delay(unsigned int ms) /*延时子程序*/{unsigned char j;unsigned int i;for(i=0;i<ms;i++){for(j=0;j<60;j++) /*内循环空操作*/{;}}}void display() /*显示输出子程序*/{P1=~L; /*LED共阳极,L取反输出*/delay(1000); /*延时1秒*/}main(){unsigned char i;L=0xFF; /*全亮*/display();L=0x00; /*全灭*/display();while(1) /*进入死循环,重复执行程序*/{L=0x01; /*LED1亮*/display();for(i=0;i<8;i++) /*LED右移8次点亮*/{L=L<<1; /*L左移1位*/display();}L=0x80; /*LED8亮*/display();for(i=0;i<8;i++) /*LED左移8次点亮*/{L=L>>1; /*L右移1位*/display();}}}五、实验心得通过这次实验我们熟悉了专用的调试环境,并练习了编写代码、编译链接、烧写程序、调试运行等一系列的实验步骤,对C51单片机有了一个初步的直观认识。
实验二__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是高电平控制还是低电平控制。
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,然后循环这一过程。
实验结果:发光二极管从第一个开始发光,依次往左到第八个,然后循环这一过程。
实验一 开关量输入输出实验
实验一开关量输入输出实验
一、实验要求
1.利用ATC89C51单片机的P1口作开关量输出口,连接8个LED发光二极管;
2.在单步模式(debug菜单下的step over,F10)下,循环点亮这8个LED管(流水灯);
3.画出AT89C51实现上述功能的完整电路图,包括单片机电源、复位电路、晶振电路和控制电路。
4.完成全部程序和电路调试工作。
5. 先在proteus下运行程序,有时间再尝试用keil 与proteus联调。
二、实验目的
1.掌握AT89C51单片机的最基本电路的设计;
2.了解单片机I/O端口的使用方法;
三、设计提示
1. 硬件电路图
可参考switch controll.DSN,请删除无关电路。
2. 程序框架
start:
mov r0,0
again:
….. ;从tab表中获取相应数值(请补充相应指令)
mov p1,a
inc r0 ;r0+=1
jmp again
tab: db 01h,02h,04h,08h,10h,20h,40h,80h; 数值表(具体数值可自行修改)
feh,fdh,fbh,f7h,efh,dfh,bfh,7fh
(db是伪指令,定义一个byte的内容单元,上述的语句是定义了包含8个元素的数组,每个元素占据1个byte)。
end
四、主要元件。
P1口输入、输出实验
实验一 P1口输入、输出实验一、实验要求1. P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。
2. P1.0、P1.1作输入口接两个拨动开关,P1.2、P1.3作输出口,接两个发光二极管,编写程序读取开关状态,将此状态,在发光二极管上显示出来。
编程时应注意P1.0、P1.1作为输入口时应先置1,才能正确读入值。
二、实验目的1. 学习P1口的使用方法。
2. 学习延时子程序的编写和使用。
三、实验连线实验1: P1口循环点亮 实验2: P1口输入输出四、实验说明1. 8051延时子程序的计算延时程序的实现常用两种方法,一种用定时器中断来实现,另一种是用指令循环实现。
在系统时间允许的情况下可以采用后一种方法。
本实验系统晶振频率为6MHz ,执行一个机器周期时间为12/6MHZ=2µS,现在写一个延时0.1S 的程序如下:查指令表可知MOV 需要一个机器周期,DJNZ 指令需用两个机器周期,所以执行该段程序所需时间是:[ 1 + ( 1 + 2 × 200 + 2 ) X ] × 2×10-6= 0.1S 指令(1) (2) (3) (4) 所需时间 所需时间 所需时间 所需时间求出X =124,将X =124代入上式可知实际延时约0.099946≈0.1S 。
2. P1口准双向口它作为输出口时与一般的双向口使用方法相同。
由准双向口结构可知当P1口用为Delay :MOV R6,#X (1) DE1: MOV R7, #200 (2) DE2: DJNZ R7,DE2 (3)DJNZ R6,DE1 (4)输入口时,必须先对它置“1”。
若不先对它置“1”,读入的数据是不正确的。
六、硬件电路1、LED电平显示电路图1:LED电平显示电路2、逻辑电平开关电路实验仪上有8只开关K0―K7,并有与之相对应的K0―K7引线孔为逻辑电平输出端。
开关向上拨相应插孔输出高电平“1”,向下拨相应插孔输出低电平“0”。
P1、P3口输入输出实验
实验二 P1、P3口输入输出实验一、实验目的进一步熟悉keil仿真软件、proteus仿真软件的使用。
了解并熟悉单片机I/O口和LED灯的电路结构,学会构建简单的流水灯电路。
掌握C51中单片机I/O口的编程方法和使用I/O口进行输入输出的注意事项。
二、实验原理MCS-51系列单片机有四组8位并行I/O口,记作P0、P1、P2和P3。
每组I/O口内部都有8位数据输入缓冲器、8位数据输出锁存器及数据输出驱动等电路。
四组并行I/O端口即可以按字节操作,又可以按位操作。
当系统没有扩展外部器件时,I/O端口用作双向输入输出口;当系统作外部扩展时,使用P0、P2口作系统地址和数据总线、P3口有第二功能,与MCS-51的内部功能器件配合使用。
P1口的位结构如图1所示。
P1口用作双向输入输出端口。
这时图中多路开关的控制信号为低电平,输出与锁存器的反向输出端相连,同时上面的场效应管由于与门输出为低电平而截止。
三、实验设备与器件硬件:微机、单片机仿真器、单片机实验板、连线若干软件:KEIL C51单片机仿真调试软件,Proteus系列仿真调试软件四、实验内容及结果分析用Proteus仿真软件设计流水灯电路,分别实现下列功能:P3口作为输入口读取开关状态,P1口作为输出口,连续运行程序,发光二极管显示开关状态。
如果是下载式实验仪,在程序装载前,必须使P3口的拨动开关处于高电平状态。
并且不能单步调试,只能连续执行。
完整的电路图如图所示。
2)利用keil软件编写相应的程序:a、运行keil 2软件,启动后,点击Project菜单新建项目,如图6所示。
b 、新建项目后,选择仿真单片机的型号,如图7所示:c、单击File菜单的“New”新建程序文件,再右击“Source Group1”添加文件,如图 8、图9所示:d、在软件的程序编写界面编写相应的程序。
点击按钮运行程序,确认无误后,点击,图5 完整电路图图6 新建项目界面图7 单片机型号选择图8 新建程序文件图9 添加文件在弹出的窗口中选择Output 选项卡,勾选选项,之后点击按钮,最后再点击按钮,生成hex 文件。
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 模式。
实验二p3.3口控制p1口实验
工商学院 单片机实验
• 一、实验目的 • 1、掌握P1口和P3口的使用方 法; • 2、学习跳转指令的用法;
单片机实验
• 二、实验内容 • P3.3口作为输入口,外接脉冲 信号,P1口作为输出口,接八 只发光二极管。 • 要求:P3.3口每输入一个脉冲 信号, P1口控制的发光二极管 按照十六进制加一的方式点亮。
单片机实验
开始
三、程序流程
是
P3.3为高吗? 否 延时 是
P3.3真为高吗?
否 P3.3为低吗? 是
否
延时
是 P3.3真为低吗?
否 P1口按照十六进制加一顺序点亮
单片机实验
四、实验电路图
单片机实验
• • • • • •
五、接线 P1.0-P1.7接在八只发光二级管; P3.3口接开关; 六、相关知识介绍 1、P1口按照十六进制加一的顺序点亮; 2、JB和JNB分别代表什么意思,有何不同?
单片机实验
• 思考题: • 1、说出跳转和调用指令的区别是什么? 。 • 2、总结P3口的其它功能。
单片机实验
单片机实验
3、按键的去抖动
单片机实验
• 程序框架
ORG 0000H
START:
A1:
MOV A,#00H
JB P3.3,A1 LCALL DELAY JB P3.3,A1
A2: AY: END
….
单片机实验
重点
• • • • 编程重点 1、输入脉冲信号的判断 2、I/O在作为输入口的时候应注意什么? 3、跳转和调用的区别是什么?
《机电一体化技术》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的值即可。
七、总结实验中出现的问题及解决方法:接线过程中线较多出现交叉现象以及接错现象,为解决这种现象我认真反复多次检查并认真修改解决了接错问题同时通过设置导线标签顺利减少了连线的数量。
八、流程图及源程序接线图。
实验三P3.3口输入、P1口输出实验
实验三 4.1 P3.3口输入、P1口输出实验系别专业:电子系12级电信2班学号:3121003210姓名:李书杰指导老师:刘志群老师4.1.1 实验要求1. 复习Keil C51调试硬件的操作方法。
2. 复习单片机作为通用I/O口的注意事项。
3. 复习单片机操作I/O口的程序设计方法。
4.1.2 实验设备PC 机一台,TD-NMC+教学实验系统4.1.3 实验目的1. 熟悉单片机仿真实验软件Keil C51调试硬件的方法。
2. 了解P3、P1口作通用I/O口的使用方法。
3. 掌握延时子程序的编写和使用方法。
4. 了解单片机对简单I/O的扩展方法。
4.1.4 实验内容实验1根据TD-NMC+实验平台的单元电路,构建一个硬件系统,并编写实验程序实现如下功能:将P1口的低4位定义为输出,高4位定义为输入,数字量从P1口的高4位输入,从P1口的低4位输出控制发光二极管的亮灭。
程序如下:KEY:MOV P1,#0F0H ;令所有行为低电平KEY1:MOV R7,#0FFH ;设置计数常数DJNZ R7,KEY1 ;延时MOV A, P1 ;读取P1口的列值ANL A,#0F0H ;判别有键值按下吗?CPL A ;求反后,有高电平就有键按下JZ EKEY ;无键按下时退出LCALL DEL20 ms ;延时20 ms去抖动SKEY:MOV A,#00 ;下面进行行扫描,1行1行扫MOV R0,A ;R0作为行计数器,开始为0MOV R1,A ;R1作为列计数器,开始为0MOV R3 #0FEH ;R3暂存行扫描字,低4位为行扫描字SKEY2:MOV A,R3MOV P1,A ;输出行扫描字,高4位全1NOPNOPNOPMOV A,P1 ;读列值MOV R1,A ;暂存列值ANL A,#0F0H ;取列值CPL A ;高电平则有键闭合S123:JNZ SKEY3 ;有键按下转SKEY3INC R0 ;行计数器加1SETB C ;准备将行扫描左移1位,;形成下一行扫描字,C=1保证输出行扫描字中高4位全为1,;为列输入作准备,低4位中只有1位为0MOV A,R3 ;R3带进位C左移1位RLC AMOV R3,A ;形成下一行扫描字→R3MOV A,R0CJNE A,#04H,SKEY1 ;最后一行扫(4次)完了吗?EKEY:RET;列号译码SKEY3:MOV A,R1JNB ACC.4,SKEY5JNB ACC.5,SKEY6JNB ACC.6,SKEY7JNB ACC.7,SKEY8AJMP EKEYSKEY5:MOV A,#00HMOV R2,A ;存0列号AJMP DKEYSKEY6:MOV A,#01HMOV R2,A ;存1列号AJMP DKEYSKEY7:MOV A,#02HMOV R2,A ;存2列号AJMP DKEYSKEY8:MOV A,#03HMOV R2,A ;存3列号AJMP DKEY;键位置译码DKEY:MOV A,R0 ;取行号ACALL DECODEAJMP EKEY;键值(键号)译码DECODE:MOV A,R0 ;取行号送AMOV B,#04H ;每一行按键个数MUL AB ;行号×按键数ADD A,R2 ;行号×按键数+列号=键值RET实验2根据TD-NMC+实验平台的单元电路,构建一个硬件系统,并编写实验程序实现如下功能:将P3.3口作状态输入口(接一个逻辑开关,即拨码开关),P1口做输入口(接八只发光二极管D0~D7)。
硬件实验一 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的程序,调试运行程序并注释:硬件实验二 继电器控制实验一、实验要求用单片机的端口,输出电平控制继电器的吸合和断开,实现对外部装置的控制。
实验1:P1口输出及软件练习
逻辑指示灯
220V开关 电 源 开 关
±5V/12V电源输出
单片机试验台介绍
报 警 电 路 点阵显示 LED显示 继电器控制接口
逻辑指示灯
I/O扩展口
EE转换 V/F转换
拨码开关输出
按键模块
单片机试验台介绍
电压表
数字电压表 直流电机 步进电机
;===== 延时子程序 ====== DELAY:MOV DELA1: MOV DELA2:NOP R6,#250 R7, #250
DJNZ
DJNZ RET NOP
R7,DELA2
R6,DELA1
;======================
END
后把30H内存的数据经二十转换子程序转换后送
P1口,P1口输出经74LS373驱动送至8只LED显
示。
实验一
实验目的:P1口输出及软件练习及实验系统的连接 实验要求:画出实验电路,编写调试实验程序。 题目:编写二十进制转换子程序,延时子程序, 使主程序30H内存的数据从0~99循环增1,每次增1
后把30H内存的数据经二十转换子程序转换后送
P1口,P1口输出经74LS373驱动送至8只LED显
示。
实验练习一
主程序
MAIN: LOOP:
LOP1:
ORG 0000H LJMP MAIN MOV SP,#50H MOV 30H,#0 INC 30H MOV A,30H CJNE A,#100,LOP1 MOV 30H,#0 MOV A,30H LCALL ESZH CPL A MOV P1,A ACALL DELAY LJMP LOOP
WAVE仿真软件操作步骤
五、打开计算机,启动WAVE软件,
单片机实验报告
单⽚机实验报告单⽚机原理及接⼝技术实验报告班级学号:姓名:实验⼀P1⼝输⼊输出实验与P1、P3⼝输⼊输出实验⼀、实验⽬的及任务学习P1、P3⼝的使⽤⽅法,熟练HICE单⽚机试验系统的操作步骤。
⼆、实验总体设计本实验分为两部分:P1⼝和P1、P3⼝输⼊输出实验。
1、P1⼝是⼀个准双向⼝,外接⼋个发光⼆极管,连续运⾏程序,发光⼆极管循环点亮2、P3⼝作为输⼊读取开关状态,P1⼝作为输出⼝,连续运⾏程序,发光⼆级管显⽰开关状态。
3、设计思路如下:(1)、开始——>P1⼝初始化——>点亮⼀位发光⼆极管——>右移⼀位——>循环;(2)、开始——>初始化——>P3⼝开关状态送到P1⼝——>驱动发光⼆极管——>延时三、试验程序框图及实验电路(实验电路及连线详见附录)四、软件设计⼀、P1⼝输⼊输出程序代码:#inc lud e#def ine uc har un sig ned ch ar#def ine ui nt uns ign ed intucha r r rc(uch ar a,n);ucha r r rc(uch ar a,n) //循环右移⼦程序{ucha r b,c;b=a<<(8-n);c=a>>n;a=c|b;retu rn(a);}void ma in(){ucha r i,te mp;uint j;P1=0xff;loop:temp=0x7f;for(i=0;i<8;i++){P1=r rc(tem p,i);for(j=0;j<30000;j++);//延时}}⼆、和P1、P3⼝输⼊输出实验。
#i ncl ude#def ine uc har un sig ned ch ar#def ine ui nt uns ign ed intvoid ma in(){uint j;loop:P1=0XFF;P1=P3;//读取P3⼝状态送P1⼝for(j=0;j<5000;j++);//延时goto lo op;}五、硬件设计1、仿真模式设置:8752模式,仿真存储器模式选择:内程序存储器外数据存储器;2、仿真器P3.6/P3.7短路块设置在WR/RD状态(见仿真器说明书跳线设置)。
C51单片机P1口输出实验报告
C51单片机P1口输出实验报告引言C51单片机是一种经典的8位微控制器,广泛应用于嵌入式系统和电子设备中。
在这个实验中,我们将学习如何使用C51单片机的P1口(端口1)作为输出口,控制外部设备。
本实验旨在帮助我们理解C51单片机的IO口控制和程序设计。
实验目的本实验旨在通过实际操作了解以下内容: - 了解C51单片机P1口(端口1)的基本知识; - 学习如何通过P1口输出高低电平信号; - 熟悉使用C语言编写单片机程序来控制P1口的操作; - 实践中了解C51单片机的驱动程序编写和调试技巧。
实验材料•C51单片机开发板;•电脑;•USB数据线。
实验步骤步骤1: 准备工作1.将C51单片机开发板插入电脑USB接口,确保驱动程序正确安装;2.打开Keil µVision软件,创建新的C语言项目;3.配置项目设置,选择C51单片机作为目标设备,并设置相应的时钟频率;4.在项目根目录下创建一个新的源文件,命名为main.c。
步骤2: 程序编写在main.c源文件中编写以下代码:#include <reg51.h>void delay(unsigned int count) {while(count--);}void main() {P1 = 0x00; // 将P1口置为低电平delay(10000); // 延迟一段时间P1 = 0xFF; // 将P1口置为高电平delay(10000); // 延迟一段时间}步骤3: 烧写程序1.点击Keil µVision软件的烧写按钮,将程序烧写到C51单片机开发板;2.确认烧写成功后,断开开发板与电脑的连接。
步骤4: 连接外部设备1.准备一个LED灯和一个220欧姆的限流电阻;2.将LED的长脚连接到C51单片机的P1口,将LED的短脚通过限流电阻连接到单片机的GND端。
步骤5: 实验现象1.连接好外部设备后,重新将开发板与电脑连接;2.单片机上的LED灯将会开始闪烁,每隔一段时间从亮变暗、从暗变亮;3.若实验现象与预期相符,说明实验成功。
单片机P1口输入输出实验
单片机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软硬件仿真软件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验要求:
1. P1口做输出口,接八只发光二极管,编写程序, 使发光二极管循环点亮。
2. P1口做输入口,接八个扭子开关,以实验机上
74LS273做输出口,编写程序读取开关状态,将 此状态,在发光二极管上显示出来。
Байду номын сангаас
实验目的:
1. 学习P1口的使用方法。
2. 学习延时子程序的编写和使用。
实验结束
读P1口程序框 :
ORG 0000H LJMP START ORG 0040H START: MOV DPTR,#8300H ; 并行输出口地址 MOV P1,#0FFH ;因P1口是准双向口,所以把P1口作为 ;输入口 时,应先置高电平. READ: MOV A,P1 ;读开关状态 MOVX @DPTR,A ;把读入的数据输出 AJMP READ END
实验程序框图 :
主程序框图(1): 程序框图(2):
主程序代码:
ORG 0000H LJMP START ORG 0040H START: MOV SP,#60H MOV A,#0FEH ROTATE: MOV P1,A ;写 P1口 RL A ;循环左移 LCALL DELAY ;延时 NOP SJMP ROTATE DELAY: ;延时子程序(1秒) MOV R0,#0AH DELAY1: MOV R1,#00H DELAY2: MOV R2,#0B2H DJNZ R2,$ DJNZ R1,DELAY2 DJNZ R0,DELAY1 RET END
2、延时子程序的延时计算问题 对于程序
DELAY: MOV R0,#00H DELAY1: MOV R1,#0B3H DJNZ R1,$ DJNZ R0,DELAY1
查指令表可知 MOV,DJNZ 指令均需用两个 机器周期,而一个机器周期时间长度为12/ 11.0592MHz,所以该段程序执行时间为: ((0B3+1)×256+1 )×2×12÷11059200= 100.002mS
实验电路及连线 :
1. 实验一时,P1.0-P1.7接L1-L8。
2. 实验二时,P1.0-P1.7接K1-K8,PO0-PO7接L1-L8。 CS273接8300H。
实验说明 : 1、P1口是准双向口。它作为输出口时与一般 的双向口使用方法相同。由准双向口结构可知当 P1口作为输入口时,必须先对它置高电平使内部 MOS管截止。因为内部上拉电阻阻值是 20KΩ~40KΩ,故不会对外部输入产生影响。若 不先对它置高,且原来是低电平,则MOS管导通, 读入的数据是不正确的。