IO口输入、输出实验

合集下载

io实验原理

io实验原理

io实验原理
IO实验(Input/Output Experiment)是一种实验方法,主要用
于研究和验证物理学或工程学中的特定问题。

该实验旨在对待研究对象进行输入和/或输出的相应变化进行测量和记录。

IO实验的原理可以概括为以下几点:
1. 输入和输出变量:IO实验中,研究对象通常有一些输入变
量和输出变量。

输入变量是通过实验操作员或外部装置输入给系统的参数,而输出变量是系统响应的参数。

2. 实验设备:IO实验通常依赖于一系列的实验设备,例如传
感器、计算机或数据采集设备等,用于测量和记录输入和输出变量的值。

3. 变量控制:为了研究特定的问题,IO实验往往需要对一些
变量进行控制。

这可以通过调整实验设备的设置、改变输入变量的数值或使用不同的输入信号等方式来实现。

4. 数据分析:IO实验的目标是获得输入和输出变量之间的关系,因此在实验结束后,需要对所获得的数据进行分析和解释。

这可以通过统计学方法、数学模型或图表等方式来实现。

总之,IO实验通过测量和记录输入和输出变量之间的关系,
来研究和验证物理学或工程学中的特定问题。

它是研究和解决问题的重要工具,在科学和工程领域中得到广泛应用。

单片机THDPJ-1.2型 实验指导书

单片机THDPJ-1.2型 实验指导书

目录实验一 I/O口控制实验(THDPJ-1/2) (2)实验二 继电器控制实验(THDPJ-1/2) (4)实验三外部中断实验(THDPJ-1/2) (6)实验四 定时/计数器实验(THDPJ-1/2) (9)实验五 音频驱动实验(THDPJ-1/2) (13)实验六 74LS164串转并实验(THDPJ-1/2) (18)实验七 74LS165并转串实验(THDPJ-1/2) (20)实验八 译码器实验(THDPJ-1/2) (23)实验九 动态扫描数码显示实验(THDPJ-1/2) (24)实验十 串行静态数码显示实验(THDPJ-1/2) (27)实验十一 查询式键盘实验(THDPJ-1/2) (29)实验十二 阵列式键盘实验(THDPJ-1/2) (33)实验十三 8155 I/O扩展实验(THDPJ-1/2) (37)实验十四 8255 I/O扩展实验(THDPJ-1/2) (41)实验十五 8253定时/计数器实验(THDPJ-1/2) (45)实验十六 SRAM外部数据存储器扩展实验(THDPJ-1/2) (48)实验十七 EEPROM外部程序存储器实验(THDPJ-1/2) (52)实验十八 并行A/D转换实验(THDPJ-1/2) (54)实验十九 并行D/A转换实验(THDPJ-1/2) (57)实验二十 RS232串行通讯实验(THDPJ-1/2) (62)实验二十一 RS485通讯实验(THDPJ-1/2) (67)实验二十二 硬件看门狗实验(THDPJ-1/2) (71)实验二十三 I2C总线实验(THDPJ-1/2) (73)实验二十四 DS18B20温度传感器实验(THDPJ-1/2) (83)实验二十五 2×16字符型液晶显示实验(THDPJ-2) (91)实验二十六 16×16 LED点阵显示实验(THDPJ-2) (97)实验二十七 7279阵列式键盘显示实验(THDPJ-2) (103)实验二十八 直流电动机控制实验(THDPJ-2) (108)实验二十九 步进电动机控制实验(THDPJ-2) (112)附录一 THKL-C51型仿真器及KEIL UVISION2仿真软件的使用说明 (116)附录二 ISP在线下载器使用说明 (137)附录三 80C51 MCU模块电路原理图 (139)实验一 I/O 口控制实验一、实验目的1.学会使用I/O口的基本输入、输出功能2.了解开关量输入、输出的接口技术及编程方法 二、实验说明P1口是准双向口,它作为输出口时与一般的双向口使用方法相同。

DSP实验指导书输入输出

DSP实验指导书输入输出
c)点击File,选择Load Program,选中所要下载的*.out文件,点击“OK”则系统将可执行文件下载到实验板上的片外程序区中。之后就可对程序进行调试仿真。
7).程序单步执行
按F8,就可观察到程序单步运行的状态,并可观察D2的发光情况。
8).程序全速运行
按F5,就可观察到程序在全速运行状态下,D2的发光情况。并用示波器观察I/O管脚的波形。如果D2的闪烁不明显,可修改延时子程序。
GEL_MapAdd(0x1000,1,0xF000,1,1);/* External SRAM */
}
menuitem "F2407 DEBUGGER";
hotmenu flash_disable()
{
*(int *)SCSR2 = MP;
}
hotmenu flash_enable()
{
*(int *)SCSR2 = MC;
delay(1000);/* 延时子程序 */
delay(1000);/* 延时子程序 */
asm(" clrcxf");
*PADATDIR=*PADATDIR&0x0FF00;// IOPA端口设置为输出方式
*PBDATDIR=*PBDATDIR&0x0FF00;
*PCDATDIR=*PCDATDIR&0x0FF00;
}
SECTIONS
{
.vectors:>VECS PAGE 0
.text:>FLASH PAGE 0
.cinit :>FLASH PAGE 0
.data :>FLASH PAGE 0
.stack :>B0 PAGE 1

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

用寄存器点亮led灯实验报告

用寄存器点亮led灯实验报告

用寄存器点亮led灯实验报告实验名称:用寄存器点亮LED灯。

实验目的:了解单片机的IO口的使用方法,掌握AVR单片机寄存器的使用方法,掌握用寄存器实现IO口输入输出的方法。

实验原理:单片机的IO口的实际是一个双向I/O,它的输出/输入状态是通过寄存器来设置的。

在AVR单片机上,它的IO口可以通过特定的寄存器来读写,这些寄存器包括:DDRX、PORTX和PINX。

其中,DDRX寄存器是用来设置端口方向的,即设置该端口是输入还是输出;PORTX寄存器是用来控制端口输出电平,即通过该寄存器来设置IO口的高低电平;PINX寄存器是用来读取端口输入的状态,即读取该口上输入的电平状态。

实验器材:1.AVR系列单片机开发板。

2.3个跳线。

3.1个LED灯。

4.1个220欧姆电阻。

实验步骤:1.将220欧姆电阻与LED灯串联,然后将LED的长脚连接到PB5的IO口上。

2. 打开AVR-GCC编译器,新建ATmega8程序,并将以下代码复制到编译器中:#include <avr/io.h>。

#include <util/delay.h>。

int main(void)。

DDRB=0b00100000;//PB5设置为输出。

PORTB=0b00100000;//PB5输出高电平。

while(1)。

PORTB^=0b00100000;//PB5输出反转状态的电平。

_delay_ms(1000); // 延时1s。

}。

return 0;。

}。

3.将编译完成的代码烧录到AVR单片机开发板上。

实验结果:结论:本次实验通过掌握AVR单片机的寄存器IO口的使用方法,成功地实现了用寄存器点亮LED灯的目的,进一步巩固了掌握AVR单片机开发的相关知识和技能。

实验二 IO口的输入与输出

实验二  IO口的输入与输出
实验一 软件和硬件的认识
主讲人:
宋淇
一、实验目的:
了解IO口的结构 熟源自IO口的特性 掌握IO口的控制二、实验仪器:

ATmage16实验板 一块 ISP单片机下载线 一条 PC机 一台
三、实验原理:
作为通用数字I/O 使用时,AVR 所有的I/O 端口都具有真正的读- 修改 - 写功能。这意味着用SBI 或CBI 指令改变某些管脚的方向( 或者是端口电 平、禁止/ 使能上拉电阻) 时不会改变其他管脚的方向( 或者是端口电平、 禁止/ 使能上拉电阻)。输出缓冲器具有对称的驱动能力,可以输出或吸收 大电流,直接驱动LED。所有的端口引脚都具有与电压无关的上拉电阻。 并有保护二极管与VCC 和地相连,如 Figure23 所示。在控制I/O时,分别 由方向寄存器DDRX与数据寄存器PORTX控制I/O的状态,如下表。
Figure 23. I/O 引脚等效原理图
所有的寄存器和位以通用格式表示:小写的“x” 表示端口的序号, 而小写的“n” 代表位的序号。但是在程序里要写完整。例如,PORTB3 表示端口B 的第3 位,而本节的通用格式为PORTxn。物理I/O 寄存器和 位定义列于P63“I/O 端口寄存器的说明” 。 每个端口都有三个I/O 存储器地址: 数据寄存器 – PORTx、 数据方向 寄存器 – DDRx 和端口输入引脚地址– PINx。数据寄存器和数据方向寄 存器为读/ 写寄存器,而端口输入引脚为只读寄存器。但是需要特别注 意的是,对PINx 寄存器某一位写入逻辑"1“ 将造成数据寄存器相应位的 数据发生"0“ 与“1“ 的交替变化。当寄存器MCUCR 的上拉禁止位PUD 置位时所有端口引脚的上拉电阻都被禁止。
端口引脚配置图

实验二I-O口输入输出实验.

实验二I-O口输入输出实验.

实验二 I/O口输入、输出实验10通信工程A 班 1015231026 林飞翔P0口循环点灯ORG 0000H ; 设定程序汇编起始地址 MOV A ,#03H ; 设置初始值00000011 LOOP:MOV P0,A ;点亮LED0和LED1 ACALL DELAY ; 调用延时子程序RL A ; 将A 里面的00000011左移一位成00000110 SJMP LOOP ; 循环点亮LED 灯 DELAY : ;0.5S 的延时程序 DEL: MOV R7,#10 DEL1:MOV R6,#246 DEL2:MOV R5,#100DEL3:DJNZ R5,DEL3 ;2*100=200μS DJNZ R6,DEL2 ; (200+1+2)*246=49938μS DJNZ R7,DEL1 ; (49938+1+2)*10=499410us RET ; 返回主程序P1口输入/输出ORG 0000 ; 设定起始地址 SJMP MAINMAIN: MOV P1,#0FFH ;P1口置1 SEARCH:MOV A,P1 ; 读P1口CJNE A,0FFH,LED ; 查询是否有按键按下 SJMP SEARCH ; 等待LED: MOV P0, A ; 有键按下,将值读入P0 ACA LL DELAY ; 调用延时子程序MOV R5 ,#00H ; 置计数初值=0 SHIFT: RRC A ; 输入右移1位JNC LOOKFOR ; 若Cy=0,则数码显示 INC R5 ;Cy=1,则计数加1 SJMP SHIFT ; 跳回继续移位LOOKFOR:MOV DPTR,#TAB ; 所查表的首地址赋给MOV A,R5 ; 计数值做偏移量 MOVC A,@A+DPTRMOV P2,A ; 显示相应按键值 SJMP SEARCH TAB:DB 60H,0DAH,0F2H,66H ; DB 0B6H,0BEH,0E0H,0FEH ;DELAY : ;0.5S 的延时程序 DEL: MOV R7,#10 DEL1: MOV R6,#246 DEL2: MOV R5,#100DEL3:DJNZ R5,DEL3 ;2*100=200μS DJNZ R6,DEL2 ; (200+1+2)*246=49938μS DJNZ R7,DEL1 ; (49938+1+2)*10=499410us RET ; 返回主程序SJMP $ END。

嵌入式系统实验IO接口

嵌入式系统实验IO接口

可扩展性和可维护性相对较差,模块机制就是为了弥补这一缺陷。 模块是具有独立功能的程序,它可以被单独编译,但不能独立运行。
它在运行时被链接到内核作为内核的一部分在内核空间运行,这与运行在
用户空间的进程是不同的。模块通常由一组函数和数据结构组成,用来实 现一种文件系统、一个驱动程序或其他内核上层的功能。
static int led_release(struct inode *inode,struct file *file) {
3
之类的函数来读写 IO 端口;后一种 MMIO 是先把 IO 端口映射到 IO 内存(“内 存空间”),再使用访问 IO 内存的函数来访问 IO 端口。
对于 RISC 处理器(如 ARM、PowerPC 等),通常只实现一个物理地址空间, 外设 I/O 端口成为内存的一部分。此时,CPU 可以像访问一个内存单元那样访问 外设 I/O 端口, 而不需要设立专门的外设 I/O 指令。这两者在硬件实现上的差 异对于软件来说是完全透明的, 驱动程序开发人员可以将存储器映射方式的 I/O 端口和外设内存统一看作是“I/O 内存” 资源。
0100 = CF_DMARQ
2
0101 = TS_DATA
0110~1110 = Reserved
1111 = GPJ0_INT[3] 本次实验中,主要用到了 Output 功能,而对其他功能没有涉及,所以在端 口功能设置的时候,主要考虑这一点。GPJ0DAT 寄存器用于 GPJ0 口的数据操 作,一共有 8 位,端口配置为输入时, 从寄存器读入值对应位反映引脚电平状 态; 端口配置为输出时, 写出位产生对应引脚电平;端口配置为功能引脚时, 寄 存 器值不确 定,实 验中, 主要使用 其输出 功能。 GPJ0PUD、 GPJ0DRV 、 GPJ0CONPDN、GPJ0PUDPDN 功能不涉及,这里不做过多的介绍。 3) IO 端口地址映射 在介绍 IO 端口地址映射时,有必要介绍一下地址空间的概念。 物理地址:CPU 地址总线传来的地址,由硬件电路控制其具体含义。物理 地址中很大一部分是留给内存条中的内存的,但也常被映射到其他存储器上 (如显存、BIOS 等)。在程序指令中的虚拟地址经过段映射和页面映射后,就 生成了物理地址,这个物理地址被放到 CPU 的地址线上。 物理地址空间,一部分给物理 RAM(内存)用,一部分给总线用,这是 由硬件设计来决定的,因此在 32 bits 地址线的 x86 处理器中,物理地址空间是 2 的 32 次方,即 4GB,但物理 RAM 一般不能上到 4GB,因为还有一部分要给 总线用(总线上还挂着别的许多设备)。在 PC 机中,一般是把低端物理地址给 RAM 用,高端物理地址给总线用。 总线地址:总线的地址线或在地址周期上产生的信号。外设使用的是总线 地址,CPU 使用的是物理地址。物理地址与总线地址之间的关系由系统的设计 决定的。在 x86 平台上,物理地址就是总线地址,这是因为它们共享相同的地 址空间。因为物理地址和总线地址相同,所以凭眼睛看是不能确定这个地址是 用在哪儿的,它或者在内存中,或者是某个卡上的存储单元, 甚至可能这个 地址上没有对应的存储器。 虚 拟 地 址 : 现 代 操 作 系 统 普 遍 采 用 虚 拟 内 存 管 理 ( Virtual Memory Management)机制,这需要 MMU(Memory Management Unit)的支持。MMU 通常是 CPU 的一部分,如果处理器没有 MMU,或者有 MMU 但没有启用,CPU 执行单元发出的内存地址将直接传到芯片引脚上,被 内存芯片(物理内存) 接收,这称为物理地址(Physical Address),如果处理器启用了 MMU,CPU 执 行单元发出的内存地址将被 MMU 截获,从 CPU 到 MMU 的地址称为虚拟地 址(Virtual Address),而 MMU 将这个地址翻译成另一个地址发到 CPU 芯片的 外部地址引脚上,也就是将虚拟地址映射成物理地址。 Linux 中,进程的 4GB(虚拟)内存分为用户空间、内核空间。用户空间 分布为 0~3GB(即 PAGE_OFFSET,在 0X86 中它等于 0xC0000000),剩下的 1G 为内核空间。程序员只能使用虚拟地址。系统中每个进程有各自的私有用 户空间(0~3G),这个空间对系统中的其他进程是不可见的。 CPU 发出取指令请求时的地址是当前上下文的虚拟地址,MMU 再从页表 中找到这个虚拟地址的物理地址,完成取指。同样读取数据的也是虚拟地址, 比如 mov ax, var. 编译时 var 就是一个虚拟地址,也是通过 MMU 从也表中来 找到物理地址,再产生总线时序,完成取数据的。 访问 IO 端口有 2 种途径:I/O 映射方式(I/O-mapped)、内存映射方式 (Memory-mapped)。前一种途径不映射到内存空间,直接使用 intb()/outb()

51单片机-IO口实验报告

51单片机-IO口实验报告

《信息技术综合实践》课程实验报告
1.打开KeiluVision2应用程序,新建一个工程,将IO.c文件添加到新建的工程中(将头文件中的头文件中的regx修改为reg),在输出中选择生成相应的HEX文件并保存到相应文件夹中
2.打开KeiluVision2应用程序,新建一个工程,将IO.c文件添加到新建的工程中(将头文件中的头文件中的regx修改为reg),在输出中选择生成相应的HEX文件并保存到相应文件夹中,进行文件的编译和调试。

3.进行实验箱的连线。

4.打开下载器,擦除并将生成的HEX文件调入Flash,然后选择“自动”。

5.通过示波器观察实验现象
5.1 示波器波形图
5.1.1(i的范围是小于500,波形图如下所示)
由图可知:当不修改i的范围时,波形的频率比较高,约在150Hz左右。

5.1.2(将代码中i的范围修改为小于20000,波形图如下所示)
由图可知:将i的范围变大以后,波形的频率变低并且稳定在5Hz左右。

5.2 小灯闪烁视频
(灯亮时的图片)。

单片机开发环境及基本IO设备操作实验报告

单片机开发环境及基本IO设备操作实验报告

北京XXXX学院实验报告课程:单片机原理与应用班级:XXXX 姓名:XXXX 学号:XXXXXXXX 成绩:指导教师:XXX 实验日期及时间:2017.4.4 10:00-13:00 座位号:04 必修/选修:必修实验序号:实验一实验名称:单片机开发环境及基本IO设备操作一、实验目的1.掌握单片机嵌入式开发环境的使用2.熟悉开发板硬件实验环境及资源3.掌握通用数字I/O端口的输入输出设置和应用二、实验内容与要求功能:按键控制LED灯。

利用按键key1和key2控制LED灯闪烁点亮。

Key1按下时单号灯闪烁,Key2按下时双号灯闪烁。

实验要求:1.在ICCAVR中编写程序;2.下载到实验板中进行调试;3.实验成功后进行课堂验收。

三、实验方案设计1. 实验的方案的论述和分析本次实验所需的器件:电源、ATmega16单片机、LED灯、按键开关、电阻。

把PA0配置成输出,PA4、PA5配置成输入,并使能PA4、PA5的上拉电阻。

与PA4、PA5相连的是两个按键开关key1和key2。

在按键检测时,当PA0输出低电平时,读PA4、PA5引脚寄存器,若PA4引脚为低电平说明Key1被按下,若PA5引脚为低电平说明Key2被按下。

把PD口配置为输出,控制8个LED灯。

2.硬件电路原理图2.软件流程图、重要数据结构、重要控制参数设计等(1)软件流程图:(2)重要数据结构及重要控制参数设计:初始化配置:DDRA配置为0X0f,PA0为输出。

PA4、PA5配置成输入,并使能PA4、PA5的上拉电阻。

按键扫描部分:通过PINA和0B00110000的按位读取PA4和PA5口是否按下。

当PA4按下时key_value==2,当PA5按下时key_value==1,并分别执行相应语句。

四、实验结果Key1按下时单号灯闪烁Key2被按下时双号灯闪烁五、实验分析及体会1.实验过程中遇到的主要问题、(拟)解决方法。

由于是第一次做单片机实验,对实验过程和代码编写不是很熟悉。

南昌大学单片机实验报告

南昌大学单片机实验报告

实验一 I/O 口输入、输出实验一、实验目的掌握单片机P1口、P3口的使用方法。

二、实验内容以P1 口为输出口,接八位逻辑电平显示,LED 显示跑马灯效果。

以P3 口为输入口,接八位逻辑电平输出,用来控制跑马灯的方向。

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

四、实验步骤1)系统各跳线器处在初始设置状态。

用导线连接八位逻辑电平输出模块的K0 到CPU 模块的RXD(P3.0 口);用8 位数据线连接八位逻辑电平显示模块的JD4B 到CPU 模块的JD8(P1 口)。

2)启动PC 机,打开THGMW-51 软件,输入源程序,并编译源程序。

编译无误后,下载程序运行。

3)观察发光二极管显示跑马灯效果,拨动K0 可改变跑马灯的方向。

五、实验参考程序本实验参考程序:;//******************************************************************;文件名: Port for MCU51;功能: I/O口输入、输出实验;接线: 用导线连接八位逻辑电平输出模块的K0到CPU模块的RXD(P3.0口);;用8位数据线连接八位逻辑电平显示模块的JD2B到CPU模块的JD8(P1口)。

;//******************************************************************DIR BIT P3.0ORG 0000HLJMP STARTORG 0100HSTART:OUTPUT1:MOV A, #0FEHMOV R5, #8LOOP1:CLR CMOV C,DIRJC OUTPUT2MOV P1, ARL AACALL DELAYDJNZ R5, LOOP1SJMP OUTPUT1OUTPUT2:MOV A, #07FHMOV R5, #8LOOP2:CLR CMOV C,DIRJNC OUTPUT1MOV P1, ARR AACALL DELAYDJNZ R5,LOOP2SJMP OUTPUT2DELAY:MOV R6,#0DELAYLOOP1:MOV R7,#0DELAYLOOP2:NOPNOPDJNZ R7,DELAYLOOP2DJNZ R6,DELAYLOOP1RET六.实验现象及心得:现象:打开开关,可以观察到L1到L7灯循环点亮。

单片机实验 IO口的输入输出实验.

单片机实验 IO口的输入输出实验.

实验二 I/O口输入、输出实验一、实验目的1. 学习I/O口的使用方法。

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

二、参考程序框图三、程序设计1、P0口循环点亮程序 ORG 0030HSTART : MOV P2,#00H; //消影 MOV A ,#01H; // LOOP : MOV P2 ,A; //点亮一个led 灯ACALL DELAY; //延时500ms RL A; //左移一位 AJMP LOOP; //跳转循环DELAY : MOV R7,#10; //延时程序 DE1 : MOV R6,#200; DE2 : MOV R5,#123; DJNZ R5,$; DJNZ R6,DE2; DJNZ R7,DE1; RET END2、I/O口输入输出(方法一)ORG 0000H;START : MOV P2,#00H; //初始化 MOV P0,#00H;MOV P1,#0FFH; //p1口初始化给ffh 值 MOV DPTR,#TABLE; //表地址存入DPTR MOV 50H,#0FEH; //比较初值载入地址50h L0 :MOV A,P1; //按键消抖 CJNE A,#0FFH,L1; AJMP L0; L1 :MOV A,P1;CJNE A,#0FFH,LL1; AJMP L0;LL1 :CJNE A,50H,LL2; //是否与地址50h 中数据相等 MOV P0,A; //相等输出对应led 灯 MOV A,#00H; MOVC A,@A+DPTR;MOV P2,A; //输出表格数据到数码管 LCALL DELAY; //延时LJMP START; //返回程序开头 LL2 :XCH A,50H; //交换数据 RL A; //左移XCH A,50H; //再次交换,此时地址50h 中数据左移一位 INC DPTR; //表格数据地址加一 LJMP LL1; //返回继续比较DELAY : MOV R7,#01H; //延时程序 DE1 : MOV R6,#28H; DE2 : MOVR5,#5AH; DJNZ R5,$;DJNZ R7,DE1; RETTABLE : ;//DB 0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H;DB 06H,5BH,4FH,66H,6DH,7DH,07H,7FH; //表格数据 END程序二(方法二)ORG 0000HMOV P2,#00H; //I./O口初始化 MOV P1,#0FFH; //P1口赋FFH 初值 MOVP0,#00H;START : MOV P2,#00H; //P2清0; MOV P0,#00H; //P0清0; MOV R1 ,P1;MOV A,R1; //读P1口CJNE A,#0FFH,L1; //是否有数据输入AJMP START; //无输入则跳转,继续查询 LCALL DELAY;L1 : MOV R1,P1; //消除按键抖动 MOV A,R1;CJNE A, #0FFH,LL1; AJMP START;LL1 : CJNE A,#0FEH,LL2; //是否按键1输入MOV P2,#06H; //是则P2输出相应的按键号码 CPL A; //A取反MOV P0,A; //输出到P0口 LCALL DELAY; //延迟AJMP LP; //跳转到LPLL2 : CJNE A,#0FDH,LL3; //是否按键2输入 MOV P2,#5BH; //以下同上 CPL A; MOV P0,A;LCALL DELAY; AJMP LP;LL3 : CJNE A,#0FBH,LL4; //判断按键3是否按下 MOV P2,#4FH; CPL A; MOV P0,A;LCALL DELAY; AJMP LP;LL4 : CJNE A,#0F7H,LL5; //判断按键4是否按下CPL A; MOV P0,A;LCALL DELAY; AJMP LP;LL5 : CJNE A,#0EFH,LL6; //判断按键5是否按下 MOV P2,#6DH; CPL A; MOV P0,A;LCALL DELAY; AJMP LP;LL6 : CJNE A,#0DFH,LL7; //判断按键6是否按下 MOV P2,#7DH; CPL A; MOV P0,A;LCALL DELAY; AJMP LP;LL7 : CJNE A,#0BFH,LL8; //判断按键7是否按下 MOV P2,#07H; CPL A; MOV P0,A;LCALL DELAY; AJMP LP;LL8 : CJNE A,#7FH,LP; //判断按键8是否按下 MOV P2,#7FH; CPL A; MOVP0,A;LCALL DELAY;LP : AJMP START; //跳转回程序开头 DELAY : MOV R7,#01H; //延时程序DE1 : MOV R6,#28H; DE2 : MOV R5,#5AH; DJNZ R5,$; DJNZ R6,DE2; DJNZR7,DE1; RET END四、思考题1、LED 循环方向更改:RL A; 改成 RR A;1S 的延时程序: DELAY : MOV R7,#20; //延时程序DE1 : MOV R6,#200; DE2 : MOV R5,#123;DJNZ R5,$;DJNZ R6,DE2;DJNZ R7,DE1; RET 2、提高电阻阻值3、一般为5V 或者3.3V 。

io口实验报告

io口实验报告

io口实验报告IO口实验报告引言:IO口(Input/Output Port)是计算机硬件中的一种通信接口,用于与外部设备进行数据交互。

本实验旨在通过对IO口的实际应用,深入了解IO口的原理和使用方法。

一、实验目的通过本次实验,我们的目标是掌握IO口的基本原理和操作方法,了解IO口在计算机系统中的重要性,并能够熟练地使用IO口进行数据输入和输出。

二、实验装置本次实验所需的装置包括一台计算机、IO口接口板、连接线和外部设备(如LED灯、按钮等)。

三、实验过程1. 连接IO口接口板将IO口接口板与计算机通过连接线连接好,并确保连接稳固。

接口板上通常会有标识,根据标识将连接线插入正确的接口。

2. 配置IO口参数打开计算机,并进入操作系统。

根据计算机型号和操作系统的不同,配置IO口参数的具体步骤可能会有所不同。

一般来说,可以通过设备管理器或者控制面板中的设备设置选项来进行配置。

3. 进行IO口输入实验将一个按钮连接到IO口接口板的输入端口上。

通过编写简单的程序代码,实现当按钮按下时,计算机能够读取到IO口的输入信号,并作出相应的反应,如显示一个提示信息或者改变屏幕上的图像。

4. 进行IO口输出实验将一个LED灯连接到IO口接口板的输出端口上。

通过编写程序代码,实现当计算机发出IO口的输出信号时,LED灯能够亮起。

可以尝试不同的输出信号模式,如闪烁、渐变等,以观察LED灯的不同反应。

5. 拓展实验除了按钮和LED灯,还可以尝试连接其他外部设备,如蜂鸣器、温度传感器等,以进一步探索IO口的应用。

通过编写相应的程序代码,实现与这些设备的交互,并观察其效果。

四、实验结果与分析通过以上实验操作,我们可以得到以下实验结果:1. IO口输入实验:当按下按钮时,计算机能够读取到IO口的输入信号,并作出相应的反应。

这说明IO口能够实现数据的输入,为计算机提供外部信息。

2. IO口输出实验:当计算机发出IO口的输出信号时,LED灯能够亮起。

PROTEUS教学实验系统(单片机E型)三合一综合实验指导书2013

PROTEUS教学实验系统(单片机E型)三合一综合实验指导书2013
11、BCD译码显示实验
12、七段数码管显示实验
13、矩阵键盘扫描实验
14、74LS164串入并出移位实验
15、74LS165并入串出移位实验
16、ADC0809模数转换实验
17、DAC0832数模转换实验
18、I2C总线—AT24C02读写实验
19、LCD1602液晶显示实验(44780)
20、温度传感器DS18B20实验
P30~P37
P30~P37
PD0~PD7
RD0~RD7
P40~P47
RE0~RE2
S0~S10
预留
预留
预留
P34
T0
P10
T0
P04
T0
P32
INT0
P32
INT0
P10
INT0
单片机引脚对照表(暂收录AT89S52,ATMEGA16L8,PIC16F877A):
1.3
图1-1蜂鸣器控制电路
图1-2 PS/2接口电路
(版本2013.4)
第1章
1.1
【硬件特点】
PROTEUS教学实验系统(单片机E型)是我公司陆续推出的PROTEUS教学实验系统第三版。主要有以下几个特点:
1.连接线采用灯笼头,插拔容易,电气接触性能优秀,导线粗,使得接线容易而且稳定。
2.外设控制资源更加丰富,可在本实验箱上练习超过30个实验项目。
二、将USB下载器连接PC及目标板(USB接口端连接到PC的USB接口,ISP端连接到MCU模块ISP插槽)。在连接USB下载器之前,MCU模块应先接通电源。
三、连接USB到PC后,将提示“发现新硬件USBasp”,如下图所示:
四、系统会自动弹出找到新的硬件向导,如下图所示:

IO口输入、输出实验

IO口输入、输出实验

实验一I/O口输入、输出实验2010.04.20一、实验目的:了解LED二极管的工作原理。

掌握LED二极管亮灭左右移的编程方法。

二、实验原理:八个发光二极管L1-L8分别接在单片机的P1.0-P1.7接口上,输出“0”时,发光二极管亮。

我们可以运用输出端口指令MOV P1,A或MOV P1,#DATA,只要给累加器值或常数值,然后执行上述的指令,即可达到输出控制的动作。

表1三、实验电路原理图四、程序框图实验程序:START: MOV ACC,#0FEH ;ACC中先装入LED1亮的数据(二进制的11111110)MOV P1,ACC ;将ACC的数据送P1口MOV R0,#7LOOP1: RL A ;将ACC中的数据左移一位MOV P1,A ;把ACC左移后的数据送p1口显示ACALL DELAY ;调用延时子程序DJNZ R0,LOOP1 ;没有移动够7次继续移动MOV R1,#7LOOP2: RR A ;将ACC中的数据右移一位MOV P1,A ;把ACC右移后的数据送p1口显示ACALL DELAYDJNZ R1,LOOP2AJMP START ;移动完7次后跳到开始重来,以达到循环流动效果;----- 延时子程序 -----DELAY: MOV R2,#255D1: MOV R3,#255DJNZ R3,$DJNZ R2,D1RET ;延时子程序结束,返回到调用处的下一句END ;程序结束实验现象:实验实现了单一灯的左移右移。

开始时P1.0口的LED点亮,然后P1.1→P1.2→P1.3→┅→P1.7的LED依次点亮,实现了右移。

当P1.7的LED点亮后,P1.6→P1.5→P1.4→┅→P1.0口的LED又依次点亮,实现了左移。

然后循环,从而实现灯的循环左右移。

实验结论:通过单片机对P1口赋值,然后利用移位RL和RR指令使相应的LED点亮,可以实现灯的左右移。

单片机实验IO口的输入输出实验

单片机实验IO口的输入输出实验

单片机实验IO口的输入输出实验单片机实验是一种很好的学习方式,通过对单片机的实验可以快速地提高对单片机的了解,这对于工程师来说是非常有用的。

本文将主要介绍单片机实验中的IO口的输入输出实验。

IO口是单片机上一个非常重要的部分,在单片机实验中,IO口的输入输出是一个非常常见的实验。

IO口可以接收和发送电信号,它可以连接到开关、LED灯、继电器等,可以实现很多功能。

当我们需要将一个信号输入到单片机中时,我们需要使用IO口的输入功能。

当我们需要从单片机中输出一个信号时,我们需要使用IO口的输出功能。

在单片机实验中,我们需要测试IO口的输入功能是否正常。

测试IO口的输入功能有很多方法,其中一个方法是使用开关。

我们需要将一个开关连接到单片机的某个IO口上,当开关打开时,单片机能够获取到一个高电平信号,当开关关闭时,单片机能够获取到一个低电平信号。

通过这种方法我们可以测试单片机的IO口的输入功能是否正常。

我们可以通过编写一个程序,来判断单片机是否正常地读取到开关状态。

下面是一个范例程序:上面的程序中,我们通过判断P2口的高低电平状态,来控制P0口的输出状态。

当P2口接到高电平时,P0口的输出引脚变为高电平,LED灯就会亮。

当P2口接到低电平时,P0口的输出引脚变为低电平,LED灯就会灭。

与IO口的输入实验类似,我们也可以测试IO口的输出功能。

我们可以将一个LED灯连接到单片机的某个IO口上,当我们需要将信号输出时,单片机会控制IO口的输出引脚,从而控制LED灯的亮灭。

下面是一个范例程序:四、总结IO口的输入输出实验是单片机实验中非常常见的实验。

通过这个实验,我们能够测试单片机的IO口的输入输出功能是否正常。

在实际工作中,我们也经常需要控制开关、LED 灯、继电器等,这时候就需要使用IO口来实现控制。

因此,对于工程师来说,掌握IO口的输入输出实验是非常重要的。

微机原理实验报告

微机原理实验报告

微机原理实验报告西安电⼦科技⼤学实验报告班级:1303018学号:130********姓名:李胜东地点: EII-312批次:第批时间: 2015.11-2015.12实验⼀汇编语⾔编程实现1.实验⽬的(1)掌握汇编语⾔的编程⽅法(2)掌握DOS功能调⽤的使⽤⽅法(3)掌握汇编语⾔程序的调试运⾏过程2.实验内容(1)将指定数据区的字符串数据以ASCII码形式显⽰在屏幕上,并通过DOS功能调⽤完成必要提⽰信息的显⽰。

(2)在屏幕上显⽰⾃⼰的学号姓名信息。

(3)循环从键盘读⼊字符并回显在屏幕上,然后显⽰出对应字符的ASCII码,直到输⼊”Q”或“q”时结束。

实验中使⽤的DOS功能调⽤: INT 21H3.实验步骤及原理(1)运⾏QTHPCI软件,根据实验内容编写程序,参考程序流程如下图所⽰。

(2)使⽤“项⽬”菜单中的“编译”或“编译连接”命令对实验程序进⾏编译、连接。

(3)“调试”菜单中的“进⾏调试”命令进⼊Debug调试,观察调试过程中数据传输指令执⾏后各寄存器及数据区的内容。

按F9连续运⾏。

(4)更改数据区的数据,考察程序的正确性。

4.实验源代码DATA SEGMENTNUMBER DB 'SNO:130********',0AH,'NAME:lishengdong',0DH,0AH,'$';0DH (回车))0AH(换⾏)24H($)结束MSG1 DB 0AH,0DH,'If you want to leave,please input: q or Q ',0AH,0DH,'$'MSG2 DB 0AH,0DH,0AH,0DH,'Input: $'RESULT DB 0AH,0DH,'ASCII is: $'SD DB ' 'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV SI,OFFSET DATAMOV CX,5A:MOV AL,DS:[SI]AND AL,0F0HCMP AL,0A0HJB A1ADD AL,07HA1:SHR AL,1SHR AL,1SHR AL,1SHR AL,1OR AL,30HMOV AH,02HMOV DL,ALINT 21HMOV AL,DS:[SI]AND AL,0FHCMP AL,0AHJB A2ADD AL,07HA2:OR AL,30HMOV AH,02HMOV DL,ALINT 21HINC SILOOP AMOV AX,DATAMOV DS,AXMOV DX,OFFSET NUMBERMOV AH,09HINT 21HMOV DX,OFFSET MSG1 MOV AH,09H INT 21HC1: MOV DX,OFFSET MSG2 MOV AH,09H INT 21HMOV AH,01HINT 21HCMP AL,'Q'JZ EXITCMP AL,'q'JZ EXITMOV SD,ALMOV DX,OFFSET RESULTMOV AH,09HINT 21HMOV SI,OFFSET SDMOV AL,DS:[SI]AND AL,0F0HMOV CL,4SHR AL,CLCMP AL,0AHJB C2ADD AL,07HC2: ADD AL,30HMOV DL,ALMOV AH,02HINT 21HMOV AL,DS:[SI]AND AL,0FHCMP AL,0AHJB C3ADD AL,07HC3: ADD AL,30HMOV DL,ALMOV AH,02HINT 21Hloop C1EXIT: MOV AX,4C00HINT 21HCODE ENDSEND START实验⼆数码转换实验1.实验⽬的(1)掌握不同进制数及编码相互转换的程序设计⽅法。

IO口控制实验

IO口控制实验

实验名称:单片机I/O口控制实验实验目的:利用单片机的P1口作为I/O口,学会利用P1口作为输入和输出口。

实验原理:一、 C51的IO口系统:P0~P3端口功能总结:(1)P0~P3口都是并行I/O口,但P0口和P2口,还可用来构建系统的数据总线和地址总线,所以在电路中有一个MUX,以进行转换。

而P1口和P3口无构建系统的数据总线和地址总线的功能,因此,无MUX。

P0口的MUX的一个输入端为“地址/数据”信号。

P2口的MUX的一个输入信号为“地址”信号。

(2)在4个口中只有P0口是一个真正的双向口,P1~P3口都是准双向口。

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

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

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

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

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

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

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

二、C51的中断系统单片机能及时地响应和处理单片机外部事件或内部事件所提出的中断请求。

1.五个中断请求源:(1)INT0*—外部中断请求0,由引脚INT0*输入,中断请求标志为IE0。

(2)INT1*—外部中断请求1,由引脚INT1*输入,中断请求标志为IE1。

(3)定时器/计数器T0溢出中断请求,中断请求标志为TF0。

(4)定时器/计数器T1溢出中断请求,中断请求标志为TF1。

(5)串行口中断请求,中断请求标志为TI或RI。

由特殊功能寄存器TCON和SCON的相应位锁存。

2.中断控制:中断允许寄存器IE:CPU对中断源的开放或屏蔽,由片内的中断允许寄存器IE控制。

字节地址为A8H,可位寻址。

IE对中断的开放和关闭为两级控制。

总的开关中断控制位EA(IE.7位):EA=0,所有中断请求被屏蔽。

实验二单片机IO口的使用

实验二单片机IO口的使用

实验二单片机IO口的使用实验目的:掌握单片机IO口的使用方法,了解IO口的输入输出功能。

一、实验介绍在单片机系统中,IO口是通过端口来实现与外部设备的通信。

IO口可以用来输入控制信号或者输出数据信号,是单片机与外部世界交互的重要接口。

二、实验器材与工具1.单片机开发板2.扁平灯泡3.蜂鸣器4.电阻、电容等元器件5.逻辑分析仪三、实验步骤1.简单的IO口输出实验将一个扁平灯泡连接到单片机的一个IO口上,并将该IO口配置为输出模式。

实验中,可以通过控制该IO口的高低电平来控制灯泡的亮灭。

2.IO口输入实验将一个开关连接到单片机的一个IO口上,并将该IO口配置为输入模式。

实验中,可以读取该IO口的电平状态,来判断开关的状态。

3.组合实验将多个扁平灯泡和开关连接到单片机的IO口上,并通过控制和读取IO口的电平状态来实现各种功能。

可以实现灯泡的闪烁、扁平灯泡的亮度调节、蜂鸣器的控制等功能。

四、实验原理1.IO口模式设置单片机内部有寄存器用于控制IO口的工作模式。

通过设置相应的寄存器来将指定的IO口配置为输入或者输出模式。

2.IO口输出控制IO口的输出控制是通过操作相应的寄存器来实现的。

输出操作可以将指定的IO口设置为高电平或者低电平。

3.IO口输入读取IO口的输入读取也是通过操作相应的寄存器来实现的。

读取操作可以获取指定IO口的电平状态,以判断外部设备的状态。

五、实验总结通过这次实验,我学会了单片机IO口的配置与使用方法。

IO口是单片机与外部设备交互的重要接口,掌握了IO口的使用方法后,可以实现各种功能,如灯光控制、开关检测等。

同时,我也了解到了IO口的原理和应用场景,为以后的电子设计打下了基础。

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