实验二 I-O口输入、输出实验报告

合集下载

微机原理实验报告 IO实验

微机原理实验报告 IO实验

《微机原理及应用技术》课程实验报告实验一片内输入、输出实验【预习内容】1.二进制、十进制及十六进制的表示方法及相互转换方法。

二进制XXXXB如1111B 十进制XX如15 十六进制0xXX如0x0f相互转换方法:十进制转二进制方法为:十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续除2,依此步骤继续向下运算直到商为0为止。

二进制转十进制方法为:把二进制数按权展开、相加即得十进制数。

二进制转十六进制方法为:4位二进制数按权展开相加得到1位十六进制数。

(注意事项,4位二进制转成十六进制是从右到左开始转换,不足时补0)。

十六进制转二进制方法为:十六进制数通过除2取余法,得到二进制数,对每个十六进制为4个二进制,不足时在最左边补零。

十进制转十六进制有两种方法间接法把十进制转成二进制,然后再由二进制转成十六进制。

直接法把十进制转十六进制按照除16取余,直到商为0为止。

十六进制转成十进制方法为:把十六进制数按权展开、相加即得十进制数。

2.C语言基本数据类型、定义方式以及赋值范围。

(1)整数类型(2)浮点类型3.写出至少一种软件延时程序并说明原理。

基本原理:利用循环结构反复执行空语句占用指令周期,实现等待延时。

void Delay1ms() //@12.000MHz{unsigned char i, j;i = 2;j = 239;do{while (--j);} while (--i);}4.掌握for循环及while循环,掌握if语句及switch语句。

for语句for (/*初始化 int i=0*/; /*判断条件 i<count*/; /*执行语句 i++*/) {/* code */}while语句while (/* condition */){/* code */}do{/* code */} while (/* condition */);switch/case语句switch (/*表达式*/){case/*值1*/ : /* code */; break;case/*值2*/ : /* code */; break;...default : /* code */break;}If/if-else语句if (/* condition */){/* code */}else if (/* condition */){/* code */}else{/* code */}5.什么是单片机?什么是单片机最小系统?单片机最小系统三要素是什么?单片机(Microcontrollers,亦称MCU),即单芯片微型计算机,包括了CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能集成到一块硅片上构成的一个小而完善的微型计算机系统。

单片机实验二

单片机实验二

单片机实验报告二系部名称:专业班级:学号:姓名:指导教师:实验成绩日期实验二单片机I/O口实验——模拟开关灯一、实验要求利用单片机、按钮开关和发光二极管,构成一个模拟开关灯的系统。

单片机P3.0引脚接开关,P1.0接发光二极管的阴极,当开关闭合时,发光二极管亮;开关打开时,发光二极管灯灭。

二、实验目的1.了解单片机I/O口输入输出的使用。

2.掌握单片机I/O口位操作的编程。

3.掌握简单的分支程序的设计。

三、实验内容1.开关状态的检测单片机的P3.0脚接有一个按钮开关K,单片机对开关K状态的检测是检测单片机的P3.0端口的输入电平,只有高低电平两种。

当开关K闭合时,即P3.0脚输入为低电平;当开关K打开时,P3.0脚输入为高电平。

2.输出控制使用共阳极发光二极管,阳极接+5V,阴极接P1.0端口。

当P1.0端口输出高电平,即P1.0=1时,这时发光二极管D1熄灭;当P1.0端口输出低电平,即P1.0=0时,这时发光二极管D1亮。

源代码:ORG 00HSTART: JB P3.0,X1CLR P1.0AJMP START X1 : SETB P1.0AJMP STARTEND四、实验结果五、实验心得通过本次实验基本了解了用单片机设计开关灯的工作流程,通过编写汇编程序实现了开关灯的设计,复习并更加掌握汇编语言,进一步掌握了P1口和P3口的功能,复习了汇编语言中跳转指令的用法。

实验中不时出现一些小的错误,让我深刻体会到,理论与实践的差距。

我们应该多做实验,提高自己的动手能力。

实验二 IO 口方式基础应用实验

实验二  IO 口方式基础应用实验

电子科技大学中山学院学生实验报告学院:机电工程专业:课程名称:单片机原理与接口技术实验班级:姓名:学号:组别:实验名称:实验二I/O 口方式基础应用实验实验时间:成绩:一、实验目的和任务1、掌握80C51单片机程序的调试与下载方法。

2、掌握80C51单片机并口的特性及程序控制方法。

3、掌握步进电机转向、转速和角度控制原理。

4、掌握步进电机与单片机的接口及程序控制方法。

二、实验原理简介P0口控制8个发光管的电路结构,P0口某口线输出低电平时,相应的发光管点亮,口线输出高电平时发光管熄灭。

在做发光管相关实验时,应将实验箱上LED101~LED108发光管右上侧的拨码开关JUMP2拨到ON一侧,使发光管限流电阻公共端连接到MCU1电源正极(即Vcc端)。

VccMCU1JUMP2STC12C5A60S239 L101 470ΩP0.038 L102 470ΩP0.137 L103 470ΩP0.236 L104 470ΩP0.335 L105 470ΩP0.434 L106 470ΩP0.533 L107 470ΩP0.632 L108 470ΩP0.7图2-1 发光管控制电路步进电机是一种将电脉冲转化为角位移的执行机构,可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。

由于步进电动机能直接接受数字量,所以特别适合利用单片机进行控制。

ZSC-1实验箱MCU1利用P2口的高4位控制一个四相步进电机(其最小步距角为5.625°/64),如图3-1所示。

某口线输出低电平时,相应的功率三极管导通,其所连接的一相线圈通电,口线输出高电平时线圈断电。

程序以单4拍、双4拍或4-8拍方式依次输出各相序字,就可控制步进电机转动,颠倒相序顺序,可改变步进电机的转向。

改变各相序字之间的时间间隔可控制步进电机的转速。

图3-1中4个独立按键可用于电机控制命令的输入。

单片机流水灯实验报告

单片机流水灯实验报告

单片机流水灯实验报告电子信息工程学系实验报告课程名称:单片机原理及接口实验项目名称:实验2 流水灯实验时间: xx-10-21 班级:电信092 姓名:蔡松亮学号: 910706247一、实验目的:进一步熟悉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口为例,内部结构如下图所示:图 P1口的位结构作输出时:输出0时,将0输出到内部总线上,在写锁存器信号控制下写入锁存器,锁存器的反向输出端输出1,下面的场效应管导通,输出引脚成低电平。

输出1时,下面的场效应管截止,上面的上拉电阻使输出为1。

作输入时:P1端口引脚信号通过一个输入三态缓冲器接入内部总线,再读引脚信号控制下,引脚电平出现在内部总线上。

I/O口的注意事项,如果单片机内部有程序存贮器,不需要扩展外部存贮器和I/O接口,单片机的四个口均可作I/O口使用;四个口在作输入口使用时,均应先对其写“1”,以避免误读;P0口作I/O 口使用时应外接10K的上拉电阻,其它口则可不必;P2可某几根线作地址使用时,剩下的线不能作I/O口线使用;P3口的某些口线作第二功能时,剩下的口线可以单独作I/O口线使用。

三、实验环境:硬件:PC机,基本配置CPU PII以上,内存2G 软件:keil 2, Proteus 7.5四、实验内容及过程:1、用Proteus画流水灯电路图流程:1)、运行Proteus仿真软件,单击pick from libraries,打开搜索元器件窗口,如图 1 所示:图 1 打开搜索元器件窗口2)、搜索添加元器件,如图2 所示:图2 搜索添加元器件窗口3)、添加元器件,修改元器件的参数,绘制流水灯原理图,元器件参数为c1=c2=20pf、c3=10uf;R1=R2=R3=R4=R5=R6=R7=R8=470欧姆、R9=10k欧姆;晶振=12M;VCC=5V。

简单i o口扩展实验报告

简单i o口扩展实验报告

简单i o口扩展实验报告简单I/O口扩展实验报告引言在现代科技发展的浪潮下,电子设备的功能和复杂性不断提升。

然而,对于初学者来说,了解和掌握电子设备的基本原理和操作方法是非常重要的。

本实验旨在通过简单的I/O口扩展实验,帮助初学者更好地理解和应用I/O口扩展技术。

一、实验目的本实验的主要目的是通过使用I/O口扩展技术,实现电子设备与外部设备的交互功能。

具体目标包括:1. 了解I/O口扩展的基本原理和应用场景;2. 学习使用I/O口扩展芯片进行输入输出控制;3. 实现简单的电子设备与外部设备的交互功能。

二、实验器材1. Arduino开发板;2. I/O口扩展芯片;3. 电阻、电容等基本电子元件;4. 连接线、面包板等实验工具。

三、实验步骤1. 连接电路将Arduino开发板与I/O口扩展芯片通过连接线连接起来,按照电路图进行正确的连接。

确保电路连接无误后,将其连接到电源。

2. 编写程序在Arduino开发环境中,编写程序以实现所需的输入输出控制功能。

通过调用相应的库函数,配置I/O口扩展芯片的输入输出模式,并编写相应的逻辑控制代码。

3. 烧录程序将编写好的程序烧录到Arduino开发板中,确保程序能够正确运行。

4. 实验验证运行程序后,通过操作外部设备,如按钮、LED灯等,验证I/O口扩展功能的正确性。

观察外部设备的状态变化,以及Arduino开发板的响应情况。

四、实验结果与分析通过实验,我们成功实现了I/O口扩展技术的应用。

通过编写程序,我们可以根据需要配置I/O口扩展芯片的输入输出模式,并通过控制逻辑实现与外部设备的交互功能。

在实验过程中,我们发现通过I/O口扩展技术,可以实现大量的输入输出控制。

例如,我们可以通过按钮控制LED灯的开关,通过传感器获取环境温度并进行相应的控制,通过继电器控制电机等。

这些功能的实现,不仅提高了电子设备的灵活性和可扩展性,也为我们提供了更多的创造空间。

然而,我们也发现在实际应用中,I/O口扩展技术还存在一些挑战和限制。

接口实验一 IO口输入、输出实验

接口实验一   IO口输入、输出实验

贵州大学实验报告纸系别电科班级电科091班姓名学号课程名称微机接口技术成绩评定教师签名实验时间2012年 5 月11日实验一 I/O口输入、输出实验一、实验目的学习单板方式下扩展简单I/O接口的方法。

学习微处理器的编程技术。

二、实验内容数据口扩展74LS244输入数据,数据口扩展74LS273输出数据。

输入端接八位逻辑电平输出,输出端接八位逻辑电平显示,编写一个程序,读入开关状态并输出显示。

三、实验要求根据实验内容编写一个程序,并在实验仪上调试和验证。

四、实验说明和电路原理图1、74LS244介绍:74LS244是三态输出的八缓冲器,由2组、每组四路输入、输出构成。

每组有一个控制端,由控制端的高或低电平决定该组数据被接通还是断开。

74LS244的引脚如图1-1A所示。

图1-1A 74LS244 图1-1B 74LS2732、74LS273介绍:74LS273是八D型触发器,带清除端。

本实验用74LS273输出数据,通过片选信号和写信号将数据总线上的值锁存在74LS273中,同时在74LS273的输出端口输出数据,当数据总线上的值撤消以后,由于74LS273能锁存信号,74LS273的输出端保持不变,直到有新的数据被锁存。

74LS273的引脚如图1-1B所示。

图1-2 74LS244扩展输入电路本实验需要用到CPU模块(F3区)、八位逻辑电平输出模块(E4区)、八位逻辑电平显示模块(B5区)、扩展输入模块(F2区)、扩展输出模块(F1区)。

扩展输入电路原理图参见图1-2,扩展输出电路原理图参见图1-4,八位逻辑电平输出电路原理图参见图1-3,八位逻辑电平显示电路原理图参见图1-5。

图1-3 八位逻辑电平输出图1-4 74LS273扩展输出电路图1-5 八位逻辑电平显示五、实验程序1、实验修改后程序:;//**************************************************************** ;文件名: In_Out for 8088;功能: I/O口输入、输出实验;接线: 用8位数据线连接八位逻辑电平输出模块的JD1E到扩展输入模块的JD2C;; 八位逻辑电平显示模块的JD4B到扩展输出模块的JD1C;; 用导线连接CPU模块的8000H到扩展输入模块的CS_244;; 8100H到扩展输出模块的CS_273。

i0口输入输出实验报告

i0口输入输出实验报告

竭诚为您提供优质文档/双击可除i0口输入输出实验报告篇一:实验二I-o口输入、输出实验报告单片机实验报告2姓名学号时间地点实验题目I/o口输入、输出实验一、实验目的1.学习I/o口的使用方法。

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

二、实验仪器和设备pc机、wAVe软件、仿真器+仿真头、实验板、电源等。

三、实验说明本实验1通过单片机的I/o口控制LeD的亮灭,从而观察I/o口的输出。

实验2通过单片机的I/o口接受按键动作信息,然后通过LeD和数码管指示。

通过本实验学生可以掌握单片机I/o口输入输出的控制方法,同时也可以掌握单片机延时子程序、查表程序的编写和调试方法。

要求预先编写好程序并通过伟福仿真软件调试。

四、实验内容1、p0口做输出口,接八只LeD,编写程序,使LeD循环点亮,间隔0.5秒。

2、p1.0--p1.7作输入口接拨动开关s0--s7;p0.0--p0.7作输出口,接发光二极管L1—L8,编写程序读取开关状态,将此状态在对应的发光二极管上显示出来,同时将开关编号(0—7)显示在LeD数码管上。

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

五、实验电路连线p0.0----LeD0p1.0-----s0p0.1----LeD1p1.1-----s1p 0.2----LeD2p1.2-----s2p0.3----LeD3p1.3------s3p 0.4----LeD4p1.4------s4p0.5----LeD5p1.5------s5 p0.6----LeD6p1.6------s7p0.7----LeD7p1.7------s8 实验1:p0口循环点灯实验2:p1、p0口输入输出agfbabcdefgh(dp)eh(dp)实验2:LeD数码管各段与I/o的连接dcp2.0p2.1p2.2p2.3p2.4p2.5p2.6p2.7六、程序框图及程序p0口循环点灯oRg0000hmoVA,#07FhLp:moVp0,ARRALcALLDeLAYLcALLDeLAYsJmpLpDeLAY:moVR2,#0FAhL1:moVR3,#0FAhL2:DJnZR3,L2DJnZR2,L 1ReT;设定程序汇编起始地址;设置初始值01111111;点亮LeD0;将A里面的值循环右移一位;调用延时子程序;循环点亮LeD灯;0.25s的延时程序;2*250=500us;500*250*2=250000us;返回主程序p1口输入/输出oRg0000Loop:moVA,p1cJneA,0FFh,LeDsJmpLoopLeD:moVp0, AAcALLDeLAYmoVR5,#00hLoop1:RRcAJncLoop2IncR5sJmpLoo p1Loop2:moVDpTR,#TAbmoVA,R5;设定起始地址;读p1口;查询是否有按键按下;等待;有键按下,将值读入p0;调用延时子程序;置计数初值=0;输入右移1位;若cy=0,则数码显示;cy=1,则计数加1;跳回继续移位;所查表的首地址赋给DpTR;计数值做偏移量moVp1,#0FFh;p1口置1moVcA,@A+DpTRmoVp2,A;显示相应按键值sJmpLoopTAb:Db60h,0DAh,0F2h,66h;Db0b6h,0beh,0e0h,0Feh;DeLAY:moVR2,#0FAhL1:moVR3,#0FAhL2:DJnZR3,L2DJnZR2,L1ReT;0.25s的延时程序;2*250=500us;500*250*2=250000us;返回主程序七、思考题1、实验1欲改变LeD循环的方向程序应如何修改?循环的时间间隔由什么决定?写出间隔时间为1秒的延时程序并说明计算方法。

单片机原理及其应用实验报告

单片机原理及其应用实验报告
硬件连接:
用导线将实验箱中的P1.0~P1.7分别与LED发光二极管L1~L8相连。INT0
与负脉冲相连(硬件在实验箱的具体位置可以参照文档最后面的附图)。
程序:
C语言程序
# include<regx51.h>
unsigned char STATE;
unsigned char s0;
/*---延时子程序(有参函数),t=n*10ms---*/
/*---定时器0中断程序---*/
ET0P:DEC A ;A减1
MOV TH0,#4CH
MOV TL0,#00H
RETI
END
实验现象:
可以看到用P1口所接的8路LED表示的二进制数每隔0.5s加1。
P1=P1<<1;
if(P0_1!=0|P0_0!=0)
break;
}
}
if(P0_1==0&P0_0==1)
{
P1=0x80;
for(i=1;i<=8;i++)
{delay(100);
P1=P1>>1;
if(P0_1!=0|P0_0!=1)
break;
}
}
if(P0_1==1&P0_0==0)
{
P1=0x01;
END
实验现象:
可以看到LED1大致亮1s后灭1s,如此循环。
(2)实验内容:
I/O口做输入口,一个I/O口接一个拨动开关,另一个I/O口接一个LED发光二极管,单片机读取开关的状态并通过LED显示出来。
有关说明:P0口是一组漏极开路型双向I/O口,也即地址/数据总线复用口。
对端口写“1”可作为高阻抗输入端用。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

姓名学号
时间地点
实验题目I/O口输入、输出实验
一、实验目的
1. 学习I/O口的使用方法。

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

二、实验仪器和设备
PC机、WA VE软件、仿真器+仿真头、实验板、电源等。

三、实验说明
本实验1通过单片机的I/O口控制LED的亮灭,从而观察I/O口的输出。

实验2通过单片机的I/O口接受按键动作信息,然后通过LED和数码管指示。

通过本实验学生可以掌握单片机I/O口输入输出的控制方法,同时也可以掌握单片机延时子程序、查表程序的编写和调试方法。

要求预先编写好程序并通过伟福仿真软件调试。

四、实验内容
1、P0口做输出口,接八只LED,编写程序,使LED循环点亮,间隔0.5秒。

2、P1.0--P1.7作输入口接拨动开关S0--S7;P0.0--P0.7作输出口,接发光二极管L1—L8,编写程序读取开关状态,将此状态在对应的发光二极管上显示出来,同时将开关编号(0—7)显示在LED数码管上。

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

五、实验电路连线
P0.0 ---- LED0 P1.0 ----- S0
P0.1 ---- LED1 P1.1 ----- S1
P0.2 ---- LED2 P1.2 ----- S2
P0.3 ---- LED3 P1.3 ------ S3
P0.4 ---- LED4 P1.4 ------ S4
P0.5 ---- LED5 P1.5 ------ S5
P0.6 ---- LED6 P1.6 ------ S7
P0.7 ---- LED7 P1.7 ------ S8
实验1:P0口循环点灯实验2:P1、P0口输入输出
a b c
d
e
f g
h(dp)
a b c d e f g h(dp)
P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7
实验2: LED 数码管各段与I/O 的连接
六、程序框图及程序
P0口循环点灯
ORG 0000H
;设定程序汇编起始地址 MOV A,#07FH ;设置初始值01111111 LP: MOV P0,A ;点亮LED0
RR A ;将A 里面的值循环右移一位 LCALL DELAY ;调用延时子程序 LCALL DELAY SJMP LP ;循环点亮LED 灯
DELAY: MOV R2,#0FAH ;0.25S 的延时程序 L1: MOV R3,#0FAH L2: DJNZ R3,L2 ;2*250=500us
DJNZ R2,L1 ;500*250*2=250000us RET ;返回主程序
P1口输入/输出
ORG 0000 ;设定起始地址
MOV P1,#0FFH ;P1口置1
LOOP: MOV A,P1 ;读P1口
CJNE A,0FFH,LED ;查询是否有按键按下
SJMP LOOP ;等待
LED: MOV P0, A ;有键按下,将值读入P0
ACALL DELAY ;调用延时子程序
MOV R5 ,#00H ;置计数初值=0
LOOP1: RRC A ;输入右移1位
JNC LOOP2 ;若Cy=0,则数码显示
INC R5 ;Cy=1,则计数加1
SJMP LOOP1 ;跳回继续移位
LOOP2: MOV DPTR,#TAB ;所查表的首地址赋给DPTR
MOV A,R5 ;计数值做偏移量
MOVC A,@A+DPTR
MOV P2,A ;显示相应按键值
SJMP LOOP
TAB:DB 60H,0DAH,0F2H,66H ;
DB 0B6H,0BEH,0E0H,0FEH ;
DELAY: MOV R2,#0FAH ;0.25S的延时程序
L1: MOV R3,#0FAH
L2: DJNZ R3,L2 ;2*250=500us
DJNZ R2,L1 ;500*250*2=250000us
RET ;返回主程序
七、思考题
1、实验1欲改变LED循环的方向程序应如何修改?循环的时间间隔由什么决定?写出间隔时间为1秒的延时程序并说明计算方法。

答:改变LED循环的方向仅需要将(RR A)改成(RL A)即可。

循环的时间间隔由单条语句执行的时间和执行次数共同决定。

DELAY: ;1S的延时程序
DEL: MOV R7,#20
DEL1: MOV R6,#246
DEL2: MOV R5,#100
DEL3:DJNZ R5,DEL3 ;2*100=200μS
DJNZ R6,DEL2 ;(200+1+2)*246=49938μS
DJNZ R7,DEL1 ;(49938+1+2)*20=998820us
2、51单片机I/O口的输入/输出逻辑电平是多少?其负载能力有多大?若用I/O 口控制一个继电器(工作电压12V,工作电流100mA)电路该如何设计?
答:51单片机I/O口的输入/输出逻辑电平是5V。

若要用I/O口控制一个继电器,可串接一个100欧的降压电阻实现驱动。

相关文档
最新文档