IO口实验

合集下载

单片机io口实验[单片机IO口控制实验实验报告]

单片机io口实验[单片机IO口控制实验实验报告]

单片机io口实验[单片机IO口控制实验实验报告]一、实验目的1、熟悉MCS-51的I/O结构;2、掌握MCS-51I/O的使用方法;3、掌握MCS-51的中断机制。

二、实验原理1、MCS-51单片机的硬件结构片内结构:2、内部数据存储器:3、SFR的名称及其分布:4、I/O端口地址:5、P0P3端口功能总结:P0P3口都是并行I/O口,但P0口和P2口,还可用来构建系统的数据总线和地址总线,所以在电路中有一个MU某以进行转换。

而P1口和P3口无构建系统的数据总线和地址总线的功能,因此,无MU某P0口的MU某的一个输入端为“地址/数据〞信号。

P2口的MU某勺一个输入信号为“地址〞信号。

在4个口中只有P0口是一个真正的双向口,P1P3口都是准双向口。

原因:P0口作数据总线使用时,需解决芯片内外的隔离问题,即只有在数据传送时芯片内外才接通;不进行数据传送时,芯片内外应处于隔离状态。

为此。

P0口的输出缓冲器应为三态门。

P0口中输出三态门是两只场效应管组成,所以是一个真正的双向口。

P1P3口,上拉电阻代替P0口中的场效应管,输出缓冲器不是三态的一准双向口。

P3口的口线具有第二功能,为系统提供一些控制信号。

因此P3口增加了第二功能控制逻辑。

这是P3口与其它各口的不同之处。

6、P0口结构及特点:⑴P0口结构与运作1个输出锁存器,用于进行输出数据的锁存;2个三态输入缓冲器,分别用于锁存器和引脚数据的输入缓冲;1个多路开关MU某它的一个输入来自锁存器,另一个输入是地址/数据信号的反相输出。

在控制信号的的控制下能实现对锁存器输出端和地址/数据线之间的切换;两只场效应管组成的输出驱动电路。

⑵P0口的特点P0口是一个双功能的端口:地址/数据分时复用口和通用I/O口;具有高电平、低电平和高阻抗3种状态的I/O端口称为双向I/O端口。

P0口作地址/数据总线复用口时,相当于一个真正的双向I/O口。

而用作通用I/O口时,于引脚上需要外接上拉电阻,端口不存在高阻状态,此时P0口只是一个准双向口;为保证引脚上的信号能正确读入,在读入操作前应首先向锁存器写1;单片机复位后,锁存器自动被置1;一般情况下,如果P0口已作为地址/数据复用口时,就不能再用作通用I/O口使用;P0口能驱动8个TTL负载。

简单IO拓展实验报告

简单IO拓展实验报告

简单I/O口扩展实验实验报告作者:一、实验目的1、熟悉74LS273,74LS244的应用接口方法。

2、掌握用锁存器、三态门扩展简单并行输入、输出口的方法。

二、实验设备CPU挂箱、8086CPU模块。

三、实验内容逻辑电平开关的状态输入74LS244,然后通过74LS273锁存输出,利用LED显示电路作为输出的状态显示。

四、实验原理介绍本实验用到两部分电路:开关量输入输出电路,简单I/O口扩展电路。

五、实验步骤1、实验接线:(表示相互连接)CS0 CS244; CS1CS273;平推开关的输出K1~K8 IN0~IN7(对应连接); O0~O7LED1~LED8。

2、编辑程序,单步运行,调试程序3、调试通过后,全速运行程序,观看实验结果。

4、编写实验报告。

六、实验提示74LS244或74LS273的片选信号可以改变,例如连接CS2,此时应同时修改程序中相应的地址。

七、实验结果程序全速运行后,逻辑电平开关的状态改变应能在LED上显示出来。

例如:K2置于L位置,则对应的LED2应该点亮。

八、程序框图(实验程序名: T244273.ASM)开始初始化读输入至AL输出AL结束九、程序源代码清单assume cs:codecode segment publicorg 100hstart: mov dx,04a6h ;控制寄存器地址mov ax,90h ;设置为A口输入,B口输出out dx,axmov al,0fehstart1:mov dx,04a2hout dx,almov bl,almov dx ,04a0hin al,dxtest ax,01hjz strat2test ax,02hjz strat3test ax,04hjz strat4test ax,08hjz strat5test ax,10hjz strat6test ax,20h jz strat7 test ax,40h jz strat8 test ax,80h jz strat2 mov al ,blrol al,1mov bl,al mov cx,3000h add:loop addjmp start1strat2:mov al,bl mov dx,04a2hout dx,almov bl, aljmp start1;暂停K1strat3:mov al,bl mov dx,04a4hout dx,alror al,1mov bl, almov cx,3hadd2:loop addjmp start1;全亮K2strat4:mov al,bl mov dx,04a8hout dx,alror al,1mov bl, almov cx,3000hadd3:loop add、jmp start1;流水K3strat5:mov al,bl mov dx,04aahout dx,alror al,1mov bl, almov cx,3hadd4:loop addjmp start1;全亮K4strat6:mov al,bl mov dx,04adhout dx,alror al,1mov bl, almov cx,3000hadd5:loop addjmp start1strat7:mov al,bl mov dx,04achout dx,alror al,1 mov bl, al mov cx,30h add6:loop add jmp start1strat8:mov al,blmov dx,04aehout dx,alror al,1mov bl, almov cx,300hadd7:loop addjmp start1strat9:mov al,blmov dx,04b0hout dx,alror al,1mov bl, almov cx,3hadd8:loop add8jmp start1code endsend start十、实验总结通过本实验我们懂得了用锁存器、三态门扩展简单并行输入、输出口的方法。

简单io口扩展实验报告

简单io口扩展实验报告

简单io口扩展实验报告
简单IO口扩展实验报告
本次实验旨在学习如何通过简单IO口扩展模块对单片机的IO口进行扩展,实现多个IO口的输入输出功能。

我们需要了解简单IO口扩展模块的基本原理和工作方式。

简单IO 口扩展模块通过与单片机的SPI总线进行通信,实现对其内部寄存器的读写操作,从而实现对IO口的扩展。

在实验中,我们使用STM32F103C8T6开发板和简单IO口扩展模块,通过连接它们的SPI总线,可以将扩展模块的IO口与开发板的IO口进行连接,实现IO口的扩展。

具体连接方式如下图所示:
(此处省略图片)
接下来,我们需要进行程序设计。

在初始化时,需要设置SPI总线的相关参数,然后对扩展模块进行初始化,将其内部寄存器中的数据清零。

然后,通过读写寄存器的方式,可以对扩展模块的每个IO 口进行配置,设置其输入输出状态、上下拉电阻等参数。

在程序中,我们可以通过读取扩展模块的输入口状态,判断是否有外部信号输入,根据需要进行相应的操作。

例如,当输入口接收到高电平信号时,可以控制某个输出口输出高电平信号,从而实现控制设备的功能。

在实验中,我们可以通过连接LED和按键来进行简单的IO口扩展实验。

将LED连接到扩展模块的输出口,按键连接到扩展模块的输入口,通过控制按键输入信号,实现对LED的控制。

总的来说,本次实验通过学习简单IO口扩展模块的原理和工作方式,掌握了通过SPI总线进行IO口扩展的方法,实现了对单片机多个IO口的输入输出控制,为后续的硬件控制和应用开发打下了基础。

简单io口扩展实验报告

简单io口扩展实验报告

简单IO口扩展实验报告1. 背景在实际应用中,我们经常需要扩展计算机的输入输出(IO)接口,以满足不同的需求。

而简单IO口扩展就是一种常见且重要的扩展方式。

通过简单IO口扩展,我们可以将计算机连接到更多的外部设备,如传感器、执行器等,从而实现更多功能和应用。

2. 分析2.1 简单IO口介绍简单IO口是指通用输入输出接口,它可以通过数字信号来进行数据的输入和输出。

每个简单IO口通常包括一个输入引脚和一个输出引脚。

通过控制这些引脚的电平状态,我们可以实现数据的输入和输出。

2.2 简单IO口扩展方法简单IO口可以通过不同的方法进行扩展,常见的方法包括:•并行接口:使用并行接口可以同时传输多个位的数据。

它通常使用多条数据线和一些控制线来实现高速数据传输。

•串行接口:使用串行接口可以逐位地传输数据。

它通常使用一条数据线和一些控制线来实现较低速率但更简洁的数据传输。

•USB接口:USB(Universal Serial Bus)是一种常见的数字串行总线接口,它可以连接多种设备,并提供高速数据传输和供电功能。

•SPI接口:SPI(Serial Peripheral Interface)是一种常用的串行外设接口,它可以连接多个外设,并以主从模式进行数据传输。

•I2C接口:I2C(Inter-Integrated Circuit)是一种常见的串行通信接口,它可以连接多个外设,并使用两条线路进行数据传输。

2.3 简单IO口扩展实验本次实验旨在通过简单IO口扩展方法,将计算机与外部设备进行连接,并实现数据的输入和输出。

具体步骤如下:1.确定要使用的简单IO口扩展方法,如并行接口、串行接口等。

2.根据选择的扩展方法,准备相应的硬件模块和连接线缆。

3.将硬件模块与计算机进行连接,确保电气连通性。

4.编写相应的驱动程序或使用现有的驱动程序,以实现与硬件模块的通信。

5.运行程序并测试扩展功能。

3. 结果经过实验测试,我们成功地实现了简单IO口扩展,并达到了预期的结果。

实验一简单IO口扩展实验

实验一简单IO口扩展实验
六、实验提示
8255a是比较常用的一种并行接口芯片,其特点在许多教科书中均有介绍。8255a有三个8位的输入输出端口,通常将a端口作为输入用,b端口作为输出用,c端口作为辅助控制用,本实验也是如此。实验中,8255a工作于基本输入输出方式(方式0)
七、实验结果
程序全速运行后,逻辑电平开关的状态改变应能在led上显示出来。例如:
四、实验原理介绍
本实验用到两部分电路:开关量输入输出电路和8255可编程并口电路
五、实验步骤
1.实验接线
cs0 cs8255;pa0~pa7平推开关的输出k1~k8;pb0~pb7发光二极管的输入led1~led8
2.编程并全速或单步运行
3.全速运行时拨动开关,观察发光二极管的变化。当开关某位置于l时,对应的发光二极管点亮,置于h时熄灭。
四、实验原理介绍
本试验用到两部分电路:脉冲产生电路、8253定时器/计数器电路
五、实验步骤
1.试验连线
CS0<->CS8253OUT0<->8253CLK2OUT2<->LED1CLK3<->8253CLK0,
2.编程调试程序
3.全速运行,观察试验结果
六、实验提示
8253是计算机系统中经常使用的可编程定时器/计数器,其内部有三个相互独立的计数器,分别称为T0,T1,T2。8253有多种工作方式,其中方式3为方波方式。当计数器设好初值后,计数器递减计数,在计数值的前一半输出高电平,后一半输出地电平。试验中,T0、T1的时钟由CLK3提供,其频率为750KHz。程序中,T0的初值设为927CH(37500十进制),则OUT0输出的方波周期为(37500*1/750000=0.05s)。T2采用OUT0的输出为时钟,则在T2中设置初值为n时,则OUT2输出方波周期为n*0.05s。n的最大值为FFFFH,所以OUT2输出方波最大周期为3276.75s(=54.6分钟)。可见,采用计数器叠加使用后,输出周期范围可以大幅度提高,这在实际控制中是非常有用的。

接口实验一 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。

实验三 单片机IO口实验

实验三 单片机IO口实验

实验三单片机I/O口实验(P3和P1口应用)一、实验目的⑴掌握P3口、P1口简单使用。

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

二、实验内容P3.3口做输入口,外接脉冲,每输入一个脉冲,P1口按十六进制加一,P1口做输出口,编写程序,使P1口接的8个发光二极管L0—L7按16进制加一方式点亮发光二极管。

三、实验原理图四、实验程序框图五、实验步骤⑴按图连接线路:系统扩展区1的P3.3用插针连至K0, P1.0—P1.7用插针连至L0-L7;⑵在闪动“P.”状态,按PCDBG键;⑶单击DVCC图标;⑷在系统设置选项中设定仿真模式为内程序、内数据;⑸在主菜单中选择联接;⑹选择实验指南/实验项目选择/单片机I/O口实验(P3和P1口应用),再选择实验指南/程序,打开该实验源程序⑺再在主菜单中选择调试,进入实验程序的编译、连接、目标文件的传送(三个步骤一起完成,也可以逐项进行);目标文件传送完后,在程序窗口内的首条指令前有一个蓝色光标出现;⑻连续运行实验程序(内程序,内数据);。

⑼开关K0每拨动一次,L0—L7发光二极管按16进制方式加一点亮。

六、实验代码ORG 0000HLJMP STARTORG 0100HSTART:MOV A,#00HMOV P1,AHA1S1:JB P3.3,HA1S1MOV R2,#10HLCALL DELAYJB P3.3,HA1S1HA1S2:JNB P3.3,HA1S2MOV R2,#10HLCALL DELAYJNB P3.3,HA1S2INC APUSH ACCMOV P1,APOP ACCAJMP HA1S1 DELAY: P USH 02H DELAY1: PUSH 02H DELAY2: PUSH 02H DELAY3: DJNZ R2,DELAY3POP 02HDJNZ R2,DELAY2POP 02HDJNZ R2,DELAY1POP 02HDJNZ R2,DELAYRETEND七、实验现象及结果分析。

最新实验报告_IO口扩展实验

最新实验报告_IO口扩展实验

最新实验报告_IO口扩展实验在本次实验中,我们的目标是通过硬件和软件的结合,扩展微控制器的输入输出(IO)口,以适应更复杂的应用场景。

实验的主要步骤和发现如下:1. 实验目的:- 理解IO口扩展的基本原理。

- 学习如何通过外部硬件设备增加IO口的数量。

- 掌握相应的软件编程技巧以控制扩展的IO口。

2. 实验材料:- 微控制器开发板(如Arduino或Raspberry Pi)。

- 扩展IO模块(例如16路IO扩展板)。

- 跳线和面包板。

- 电阻、LED灯、按键开关等基本电子元件。

3. 实验步骤:- 首先,我们将扩展IO模块通过I2C、SPI或其他通信协议与微控制器连接。

- 确保所有连接正确无误后,对微控制器进行上电测试,检查扩展模块是否被正确识别。

- 编写代码以初始化扩展模块,并为每个新增的IO口分配适当的功能(如输入、输出、PWM等)。

- 通过编写测试程序,验证每个IO口的功能性,例如通过点亮LED 灯或读取按键状态。

4. 实验结果:- 成功实现了IO口的扩展,新增的IO口能够按照程序指令执行相应的输入输出任务。

- 在测试过程中,所有LED灯均能按预期亮起和熄灭,按键状态也能被准确读取。

- 通过对扩展IO口的编程实践,加深了对微控制器IO口配置和电子电路设计的理解。

5. 实验结论:- IO口扩展是提升微控制器应用灵活性的有效手段,可以满足更多复杂的控制需求。

- 通过选择合适的扩展模块和编写正确的程序代码,可以轻松实现IO口的增加和功能的扩展。

- 实验中遇到的问题主要与硬件连接和程序编写有关,通过仔细检查和调试,所有问题均得到解决。

6. 后续改进方向:- 探索更多类型的IO扩展模块,如带有模拟输入的模块,以适应更广泛的应用。

- 优化软件代码,提高IO口的响应速度和稳定性。

- 研究如何通过网络或无线通信实现IO口的远程扩展和控制。

通过本次实验,我们不仅学会了如何物理上扩展微控制器的IO口,还通过实践加深了对相关理论知识的理解。

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

IO口实验:
参见基础实验1、2、3.(课件第2章单片机结构.doc)
1.输入输出综合实验(查询方式,1S由软件延时控制):要求:每一次按键,蜂鸣器响一次。

同时要求LED1~LED8循环点亮。

1)初始状态或按下KEY1键(松开后保持),只点亮一只LED
灯,每隔1秒右循环显示,移到LED8后回到LED1。

LED1LED8
…………………………
LED1LED8
2)按下KEY2键(松开后保持),同时点亮相邻的两只LED
灯,每隔1秒右循环显示,移到LED8后回到LED1。

LED1LED8
3)按下KEY2键(松开后保持),同时点亮间隔的两只LED
灯,每隔1秒右循环显示,移到LED8后回到LED1。

LED1LED8
4)按下KEY2键(松开后保持),点亮一只LED灯,每隔1
秒多点亮一只LED灯,直到LED灯全亮,然后回到一只LED点亮状态循环。

LED1LED8
LED1LED8
…………………………
LED1LED8
5)按下KEY3键(松开后保持),同时点亮相邻的两只LED
灯,隔1秒后再次增加点亮相邻的两只LED灯,直到全亮后再隔1秒点亮123456,后又1234,直到全灭后重新循环。

LED1LED8
LED1LED8
…………………………
LED1LED8
…………………………
LED1LED8
6)按下KEY键(松开后保持),开始点亮LED1灯,隔1秒
后点亮23,再隔1秒点亮345,隔1秒后5678,隔1秒后8,隔1秒后76 ,隔1秒后654,隔1秒后4321,隔
1秒后1重复。

LED1LED8
LED1LED8
LED1LED8
…………………………
LED1LED8
7)按下KEY3键(松开后保持),开始点亮LED1、LED8灯,
隔1秒后点亮12、78,再隔1秒点亮123、678,直到全亮后再隔1秒点亮123、678,后又12、78,直到点亮LED1、LED8灯后重新循环。

LED8
LED1LED8
…………………………
LED1LED8
LED8
…………………………
LED8。

相关文档
最新文档