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

合集下载

单片机实验报告

单片机实验报告

单⽚机实验报告单⽚机实验报告姓名学号时间地点实验题⽬软件开发环境和简单程序设计⼀、实验⽬的1. 学习I/O⼝的使⽤⽅法。

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

⼆、实验主要仪器及环境PC机、W A VE软件、仿真器+仿真头、实验板、电源等。

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

2、P1.0--P1.7作输⼊⼝接拨动开关S0--S7;P0.0--P0.7作输出⼝,接发光⼆极管L1—L8,编写程序读取开关状态,将此状态在对应的发光⼆极管上显⽰出来,同时将开关编号(0—7)显⽰在LED数码管上四、实验步骤1、先编写好程序并通过伟福仿真软件调试。

2、将编好的程序通过仿真器掻到实验板上进⾏相应的实验。

五、实验程序流程框图、实验程序1. ORG 0000HAJMP MAINMAIN: MOV A,#01H;置初值LOOP: MOV P0,A ;数据输出RL A ;左移⼀位ACALL DELAYSJMP LOOPDELAY:MOV R0,#10 ;延时0.5sK1:MOV R1,#125K2:MOV R2,#200K3:DJNZ R2,K3DJNZ R1,K2DJNZ R0,K1RETP0⼝循环点灯框图AJMP STARTORG 0030HSTART: MOV DPTR,#TABLESETB P1MOV P2,#00HMAIN: MOV A,P1 ;读P1⼝值CJNE A,#0FFH,LOOP;判断是否有输⼊SJMP MAINLOOP: MOV P0,AMOV R0,#00HLOOP1:RRC AJNC LOOP2INC R0 ;计数AJMP LOOP1LOOP2:MOV A,R0MOVC A,@A+DPTR ;查表MOV P2,A ;P2⼝输出AJMP MAINTABLE:DB 03FH 06H 5BH 4FH 66H 6DH 7DH 07HP1⼝输⼊/输出框图六、实验程序分析、讨论及测试1、实验1欲改变LED循环的⽅向程序应如何修改?循环的时间间隔由什么决定?写出间隔时间为1秒的延时程序并说明计算⽅法。

单片机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负载。

实验二P1口控制LED发光二极管

实验二P1口控制LED发光二极管

实验二 P1口控制LED发光二极管一、实验目的1、进一步熟练Proteus及Keil软件的基本操作2、掌握8051单片机P1口的使用方法3、掌握LED发光二极管的原理及使用方法4、学习汇编程序的调试及仿真方法二、实验电路三、实验内容及步骤:要求:8个LED发光二极管循环左移显示(发光的移位),间隔时间为一秒。

1、使用Proteus画出电路原理图2、在Keil uVision中完成程序编辑、调试及编译,生成.HEX文件3、进行Protues与Keil uVision联动的相关设置:4、在Proteus中仿真运行。

四、思考1、将本实验的实验现象改为“不发光二极管循环移位”。

2、将本实验的实验现象改为“每隔0.5秒发光二极管循环移位”。

参考程序:ORG 0LJMP MAINORG 30H MAIN: MOV A,#0FEH LOOP: MOV P1,ALCALL DELAYRL ASJMP LOOP DELAY: MOV R7,#20H DELAY1:MOV R6,#200 DELAY2:MOV R5,#123DJNZ R5,$DJNZ R6,DELAY2DJNZ R7,DELAY1RETEND实验三数码管静态显示实验一、实验目的1、进一步熟悉51系列单片机2、了解8051单片机P0口的使用方法3、掌握共阴极数码管的原理及使用方法4、学习8051的编程、调试、编译、仿真。

二、实验电路图3 数码管静态显示电路原理图注:数码管要从元件库选择Optoelectronics类中的7SEG-COM-CAT-GRN。

三、要求及步骤:要求:在七段数码管上以递增方式循环显示数字0—9,间隔时间为一秒。

1、使用Proteus画出电路原理图2、在Keil uVision中完成程序编辑、调试及编译,生成.HEX文件3、进行Protues与Keil uVision联动的相关设置:4、在Proteus中仿真运行。

四、思考1、为什么要将P0口各引脚通过电阻R3-R9接到电源?2、如何在共阴数码管上循环显示十六进制数字0—F(不区分字母的大小写)?3、怎样修改程序使数字以递减方式循环显示?4、若用共阳极数码管应如何修改电路和程序,才能完成本实验的功能?参考程序:ORG 00HLJMP STARTORG 30HSTART: MOV DPTR,#TABLES1: MOV R4,#00HS2: MOV A,R4MOVC A,@A+DPTRMOV P0,ALCALL DELAYINC R4CJNE R4,#0AH,S2SJMP S1DELAY: MOV R5,#20 ;延时子程序D2: MOV R6,#200D1: MOV R7,#123DJNZ R7,$DJNZ R6,D1DJNZ R5,D2RETTABLE: DB 3FH,06H,5BH,4FH,66H ;段码表DB 6DH,7DH,07H,7FH,6FHEND实验四基本输入/输出实验一、实验目的1、进一步熟悉8051单片机并行I/O口的使用方法3、掌握并行I/O口输入/输出操作的方法4、学习8051的编程、调试、编译、仿真。

O地址译码一、实验目的掌握IO地...

O地址译码一、实验目的掌握IO地...

微机原理硬件实验报告实验一I/O地址译码一、实验目的掌握I/O地址译码电路的工作原理。

二、实验原理和内容1、实验电路如图1-1所示,其中74LS74为D触发器,可直接使用实验台上数字电路实验区的D触发器,74LS138为地址译码器。

译码输出端Y0~Y7在实验台上“I/O地址“输出端引出,每个输出端包含8个地址,Y0:280H~287H,Y1:288H~28FH,……当CPU执行I/O指令且地址在280H~2BFH范围内,译码器选中,必有一根译码线输出负脉冲。

利用这个负脉冲控制L7闪烁发光(亮、灭、亮、灭、……),时间间隔通过软件延时实现。

2、接线: Y4/IO地址接 CLK/D触发器Y5/IO地址接 CD/D触发器D/D触发器接 SD/D角发器接 +5VQ/D触发器接L7(LED灯)或逻辑笔三.硬件连线图四.软件流程图五.源程序CODE SEGMENTASSUME CS:CODESTART: MOV DX,2A0HOUT DX,ALCALL DELAYMOV DX,2A8HOUT DX,ALCALL DELAYJMP STARTMOV AX,4C00HINT 21HDELAY PROC NEAR --延时子程序MOV BX,200LOOP1:MOV CX,0FFFFHLOOP2:LOOP LOOP2DEC BXCMP BX,0JNZ LOOP1RETDELAY ENDPCODE ENDSEND START六.实验结果小灯L7出现亮灭交替的现象,通过改变延时子程序BX的值可以改变亮灭的时间间隔。

七.实验总结与心得体会本次实验主要是对延时子程序的编写,由于书上有范例所以比较简单。

实验二简单并行接口一、实验目的掌握简单并行接口的工作原理及使用方法。

二、实验原理和内容1、按下面图简单并行输出接口电路图连接线路(74LS273插通用插座,74LS32用实验台上的“或门”)。

74LS273为八D触发器,8个D输入端分别接数据总线D0~D7,8个Q输出端接LED显示电路L0~L7。

proteus教学实验系统(单片机e型)实验指导

proteus教学实验系统(单片机e型)实验指导

目录(版本 1.03)第1章PROTEUS教学实验系统(单片机E型)简介及使用说明 (1)1.1 系统简介 (1)1.2 实验系统的硬件布局 (4)1.3 实验系统原理图 (5)1.4 实验板硬件图 (16)1.5 USB下载方式说明 (23)第2章硬件实验目录 (27)实验一I /O口输出实验—LED流水灯实验 (27)实验二I/O口输入/输出实验—模拟开关灯 (29)实验三8255并行I/O扩展实验 (31)实验四无译码的七段数码管显示实验 (33)实验五BCD译码的多位数码管扫描显示实验 (36)实验六独立式键盘实验 (38)实验七计数器实验 (40)实验八定时器实验 (42)实验九单个外部中断实验 (44)实验十中断嵌套实验 (46)实验十一矩阵键盘扫描实验 (49)实验十二串行端口并行输出扩充实验 (51)实验十三串行端口并行输入扩充实验 (53)实验十四单片机与PC之间串行通信实验 (55)实验十五双单片机通信实验 (58)实验十六I2C总线——AT24CXX存储器读写 (60)实验十七温度传感器DS18B20实验 (64)实验十八实时时钟DS1302实验 (66)实验十九A/D转换实验 (68)实验二十D/A转换实验 (70)实验二十一1602液晶显示的控制(44780) (72)实验二十二12864液晶显示的控制(KS0108) (74)实验二十三直流电机控制实验 (76)实验二十四步进电机控制实验 (78)实验二十五16X16阵列LED显示 (81)实验二十六直流电机测速实验 (83)实验二十七串行AD—TLC549实验 (85)实验二十八串行DA—TLC5615实验 (87)实验二十九继电器控制实验 (89)实验三十LCD 1602 IO方式驱动 (92)第3章软件仿真实验目录 (96)实验一可控硅驱动 (96)实验二光耦应用实验 (98)实验三单片机播放音乐实验 (100)实验四SD卡读写实验 (104)第1章PROTEUS教学实验系统(单片机E型)简介及使用说明1.1 系统简介【硬件特点】PROTEUS教学实验系统(单片机E型)是我公司陆续推出的PROTEUS教学实验系统第三版。

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

用寄存器点亮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 置位时所有端口引脚的上拉电阻都被禁止。
端口引脚配置图

S7-300PLC实验指导书

S7-300PLC实验指导书

西门子PLC应用(S7-300)实验指导书重庆科技学院电子信息工程学院自动化教研室1实验一基本逻辑指令编程实验一、实验目的:1.熟悉S7-300 PLC的组成.2.熟悉STEP 7编程软件的使用方法。

3.掌握基本逻辑指令的使用方法。

4.学会用基本逻辑指令实现顺控系统的编程。

5.学会PLC程序调试的基本步骤及方法。

6.学会用PLC改造继电器典型电路的方法。

二、实验设备:PLC实验台 1套三、预习内容:1.熟悉STEP7编程软件的使用方法,请详细阅读教材第4章的全部内容。

2.熟悉S7-300 PLC的基本位设备:I、Q、M、T等。

3.熟悉S7-300 PLC基本逻辑指令的使用方法。

4.熟悉典型继电器电路的工作原理。

5.预习本次实验内容,在理论上分析运行结果,预先写出程序的调试步骤。

四、实验步骤:1.了解S7-300 PLC的组成,熟悉PLC的电源、输入信号端I和公共端M、输出信号端Q 和公共端L;PLC及PC机的通讯口、编程电缆的连接;PLC上扩展单元插口的连接方法;RUN/STOP 开关及各类指示灯的作用等。

2.在PC机启动STEP 7编程软件,新建项目,进入编程环境。

3.根据实验内容,在STEP 7编程环境下进行硬件组态、输入梯形图程序,保存。

4.仿真调试,运行程序,调试并修改。

5.写实验报告。

五、实验内容:1.走廊灯三地控制程序(基础题)(1) 控制要求:走廊灯三地控制:走廊东侧开关、走廊中间开关、走廊西侧开关均能控制走廊灯的亮灭。

(2) 输入/输出信号定义:自定义I/O信号(4) 程序设计(梯形图)2. 电动机的点动+连动程序(基础题)(1) 系统控制要求:①电动机的点动控制:按下点动启动按钮,电动机启动运行;松开点动启动按钮,电动机停止运行。

②电动机的连动控制:按下连动启动按钮,电动机启动运行;松开连动启动按钮,2电动机仍然继续运行;只有当按下停止按钮时,电动机才停止运行。

③保护:系统有失压、过载保护。

嵌入式系统实验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()

i o口扩展实验报告

i o口扩展实验报告

i o口扩展实验报告I/O口扩展实验报告引言:I/O口扩展是指通过外部设备将计算机的输入输出接口扩展,以满足更多的输入输出需求。

本实验旨在通过实际操作,了解I/O口扩展的原理、应用和实现方法。

一、实验目的本实验的目的是通过使用I/O口扩展模块,实现对计算机的输入输出接口的扩展,掌握I/O口扩展的基本原理和实现方法。

二、实验器材1.计算机2.I/O口扩展模块3.连接线4.外部设备(如LED灯、按钮等)三、实验步骤1.连接I/O口扩展模块与计算机:将I/O口扩展模块通过连接线与计算机的相应接口连接好。

2.编写控制程序:根据实验要求,编写相应的控制程序,以实现对外部设备的控制。

3.运行程序:将编写好的控制程序加载到计算机中,并运行程序。

4.观察实验结果:观察外部设备是否按照预期进行相应的输入输出操作。

四、实验结果与分析通过实验,我们成功地实现了对计算机的输入输出接口的扩展。

通过编写相应的控制程序,我们可以实现对外部设备的控制,例如通过按钮控制LED灯的亮灭。

这样的扩展可以使计算机能够与更多的外部设备进行交互,提供更多的功能和应用。

五、实验原理I/O口扩展的原理是通过外部设备与计算机的输入输出接口进行连接,实现对计算机的输入输出功能的扩展。

通常情况下,计算机的输入输出接口是有限的,而外部设备的种类和数量却是多种多样的。

通过使用I/O口扩展模块,我们可以通过扩展接口的方式,将更多的外部设备与计算机进行连接,实现更多的输入输出功能。

六、实验应用I/O口扩展在实际应用中具有广泛的应用价值。

例如,在工业自动化控制中,通过I/O口扩展可以实现对各种传感器和执行器的控制,从而实现对生产过程的监控和控制。

在智能家居领域,通过I/O口扩展可以实现对家电设备的智能控制,提高生活的便利性和舒适度。

此外,I/O口扩展还可以应用于仓储物流、智能交通等领域,为各种设备和系统的控制提供更多的接口和功能。

七、实验总结通过本次实验,我们对I/O口扩展的原理、应用和实现方法有了更深入的了解。

i o扩展实验报告

i o扩展实验报告

i o扩展实验报告I/O扩展实验报告引言:I/O(Input/Output)扩展是指通过外部设备或接口扩展计算机的输入和输出功能,以满足更多的需求。

在本次实验中,我们将探索I/O扩展的原理和应用,并通过实际操作来验证其效果。

1. 实验目的本次实验的目的是通过使用I/O扩展设备,了解其原理和应用,并掌握相关的操作技巧。

2. 实验材料本次实验所需的材料包括:计算机、I/O扩展设备、连接线等。

3. 实验步骤3.1 连接I/O扩展设备首先,将I/O扩展设备与计算机通过连接线连接好。

确保连接的稳固和正确。

3.2 驱动程序安装根据I/O扩展设备的型号和厂商提供的驱动程序,将其安装到计算机中。

确保驱动程序的版本与计算机系统兼容。

3.3 配置I/O扩展设备打开计算机的设备管理器,找到新安装的I/O扩展设备。

根据设备的说明书,进行相应的配置,如设置输入输出端口、中断等。

3.4 编写测试程序根据实验需求,编写相应的测试程序。

程序应能够通过I/O扩展设备实现输入和输出的功能。

3.5 运行测试程序将编写好的测试程序运行起来,观察I/O扩展设备的反应。

检查输入输出是否正常,是否符合预期。

4. 实验结果与分析通过实验,我们可以得到以下结果和分析:4.1 I/O扩展设备的功能验证通过编写的测试程序,我们可以验证I/O扩展设备的输入输出功能是否正常。

如果输入输出正常,说明I/O扩展设备的配置和驱动程序安装都是正确的。

4.2 I/O扩展设备的应用I/O扩展设备可以广泛应用于各个领域,如工业自动化、家庭娱乐等。

通过扩展计算机的输入输出功能,可以实现更多的操作和控制。

4.3 I/O扩展设备的局限性尽管I/O扩展设备可以扩展计算机的输入输出功能,但其也存在一些局限性。

例如,扩展设备的接口类型和计算机的接口类型必须匹配,否则无法正常连接和使用。

5. 实验总结通过本次实验,我们了解了I/O扩展的原理和应用,并通过实际操作验证了其效果。

I/O扩展设备可以为计算机提供更多的输入输出功能,满足不同领域的需求。

单片机开发环境及基本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.实验过程中遇到的主要问题、(拟)解决方法。

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

单片机实验 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 。

可编程控制器实验报告

可编程控制器实验报告

一、实验目的1. 熟悉可编程控制器(PLC)的基本结构、工作原理及编程方法。

2. 掌握PLC编程软件的使用,能够根据实际需求编写控制程序。

3. 理解PLC在实际工程中的应用,提高动手实践能力。

二、实验原理可编程控制器(PLC)是一种数字运算操作电子系统,用于工业控制领域。

它根据预设的程序对输入信号进行处理,并通过输出信号来控制执行器。

PLC具有可靠性高、抗干扰能力强、编程灵活等特点。

PLC主要由以下几部分组成:1. 输入/输出(I/O)模块:负责接收外部信号,并将信号转换为内部信号,同时将内部信号转换为外部信号。

2. CPU:是PLC的核心,负责处理输入信号,执行用户程序,并输出控制信号。

3. 存储器:用于存储用户程序、系统程序、输入/输出数据等。

4. 电源模块:为PLC提供稳定的工作电压。

三、实验内容1. 实验环境:PLC实验箱、编程软件、上位机等。

2. 实验步骤:(1)连接PLC实验箱,设置输入/输出端子;(2)打开编程软件,创建新的项目;(3)编写控制程序,包括梯形图、指令表等;(4)编译程序,下载到PLC;(5)观察PLC运行结果,验证程序是否正确。

四、实验步骤1. 连接PLC实验箱,设置输入/输出端子(1)将PLC实验箱的电源线、输入/输出线与上位机连接;(2)根据实验需求,将输入/输出端子与相应的外部设备连接。

2. 打开编程软件,创建新的项目(1)启动编程软件,选择合适的PLC型号;(2)创建新的项目,输入项目名称、版本等信息。

3. 编写控制程序(1)根据实验需求,编写梯形图或指令表程序;(2)设置输入/输出端子的地址,确保程序正确;(3)保存程序,进行编译。

4. 编译程序,下载到PLC(1)编译程序,检查是否有错误;(2)将编译后的程序下载到PLC。

5. 观察PLC运行结果,验证程序是否正确(1)操作输入设备,观察输出设备是否按预期工作;(2)根据实际需求,调整程序,直至达到预期效果。

单片机流水灯实验报告

单片机流水灯实验报告

单片机流水灯实验报告电子信息工程学系实验报告课程名称:单片机原理及接口实验项目名称:实验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口输入输出实验一、实验目的1. 掌握单片机的并行I/O口的接口结构、驱动能力特点和应用处理方法;2. 掌握单片机I/O引脚作为输出引脚的使用方法;3. 掌握单片机I/O口配置方法4. 掌握利用单片机I/O口设计单片机应用程序用输入控制输出的方法;5. 掌握单片机控制程序的结构。

二、实验原理及实验内容实验要求:利用单片机并行口做不规则花样流水灯,流水花样不低于16个。

实验原理:1.LED原理图2.STC15的IO口原理P6m0为0时,P6m1为0时,IO口模式为准双向口(传统8051 I/O口模式,弱上拉)灌电流可达20mA,拉电流为270微安,由于制造误差,实际为270~150微安* P6m0为0时,P6m1为1时,为推挽输出(强上拉输出,可达20mA,要加限流电阻)* P6m0为1时,P6m1为0时,(为高阻输出电流既不能流入也不能流出)P6m0为1时,P6m1为1时,为开漏(Open Drain),内部上拉电阻断开。

开漏模式即可读取外部状态也可以对外输出(高低电平)。

按照表格寄存器内容,我们对8个LED1,也就是P6口进行配置,当P6输出低电平时LED被点亮。

所以配置如下:P6M1 &= 0x00;P6M0 &= 0x00; //作为普通IO口,为弱上拉sbit KEY1=P2^0;sbit KEY2=P2^1;//定义两个按键由于STC15F2K60S2寄存器初始化时默认是:P6M1=0x00;P6M0 = 0x00;3.程序流程图主循环程序流程图三、实验程序#include <STC15.h>#include <intrins.h>#define Uchar unsigned char#define Uint unsigned intint LED[]={0xfc,0xf3,0xcf,0x3f,0xe7,0xdb,0xbd,0x7e,0x7e,0xbd,0xdb,0xe7, 0xfe,0xfb,0xef,0xbf,0xfd,0xf7,0xdf,0x7f};void P6Init()//IO口初始化函数{P6M0=0X00;P6M1=0X00;}void delay3s(void) //误差0us{unsigned char a,b,c;for(c=189;c>0;c--)for(b=230;b>0;b--)for(a=33;a>0;a--);}void main(){Uchar i=0;P0Init();while(1){for(i=0;i<20;i++){P6=LED[i];delay3s();}}}四、实验仪器和设备4.使用了keil软件Proteus 8 Professional软件。

java输入输出实验报告

java输入输出实验报告

java输入输出实验报告Java输入输出实验报告引言:Java是一种广泛应用的编程语言,其输入输出(Input/Output,简称I/O)功能对于程序的交互和数据处理至关重要。

本实验旨在通过实际操作,探索Java中的输入输出机制,并深入了解其原理和应用。

一、实验目的通过本次实验,我们的目标是:1. 理解Java中的输入输出概念和基本原理;2. 掌握Java中的标准输入输出流(System.in和System.out)的使用;3. 学会使用Java中的文件输入输出流,实现对文件的读写操作;4. 熟悉Java中的异常处理机制,处理输入输出过程中的异常情况。

二、实验环境本次实验所需的环境和工具如下:1. Java开发工具(如Eclipse、IntelliJ IDEA等);2. 一台配置良好的计算机。

三、实验过程1. 标准输入输出流的使用在Java中,标准输入流(System.in)用于接收用户的输入,标准输出流(System.out)用于向屏幕输出信息。

我们可以通过Scanner类来实现对标准输入流的读取,通过System.out.println()方法实现对标准输出流的输出。

下面是一个示例代码:```javaimport java.util.Scanner;public class StandardIOExample {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入您的姓名:");String name = scanner.nextLine();System.out.println("您好," + name + "!欢迎使用Java输入输出功能。

"); }}```2. 文件输入输出流的使用除了标准输入输出流,Java还提供了FileInputStream和FileOutputStream类,用于实现对文件的读写操作。

单片机实验报告(完整版)

单片机实验报告(完整版)

单片机原理与应用实验报告学院(部):专业:学生姓名:班级:学号:最终评定成绩:实验一存储器读写一、实验目的:1、掌握寄存器、存储器读写等汇编指令;2、掌握编程软件编辑、编译、调试等基本操作。

二、实验仪器设备1.PC机,1台2.WAVE软件开发系统三、实验内容及步骤:1、将下面的汇编程序输入到W A VE集成开发软件中ORG 0000HSJMP STARTORG 0030HSTART:MOV R0,#07HMOV 70H,#08HMOV R1,#70HMOV DPTR,#2000HLOOP:MOVX A,@R1MOVX A,@DPTRINC R1INC ADJNZ R7,LOOPSJMP $END2、选择菜单“仿真器”→“仿真器设置”,按下图所示完成软件初始设置。

3、选择菜单“项目”下“编译”,编译通过后,选择“单步运行”,观察记录寄存器(R0、R1)、累加器(A)、程序状态字(PSW)、外部存储器(2000H单元)、I/O端口(P1)的数据变化。

四、源程序源程序:ORG 0000H ;定义起始地址SJMP STARTORG 0030HSTART:MOV R0,#07HMOV 70H,#08H ;给内部RAM的70H单元赋初值MOV R1,#70H ;使R1指向内部70H单元MOV DPTR,#2000H ;定义外部存储器开始单元LOOP:MOVX A,@R1 ;将R1所指向的70H的内容赋给AMOVX @DPTR,A;将A的内容赋给外部存储器单元INC R1 ;内部RAM地址加1INC DPTR ;外部存储器地址加1DJNZ R7,LOOP ;循环,直到RAM中70H~7FH;单元的内容全部相应赋给;外部2000H~2007H单元SJMP $END3、记录下程序单步运行时,寄存器(R0、R1)、累加器(A)、程序状态字(PSW)、外部存储器(2000H单元)、I/O端口(P1)的数据变化。

五、仿真效果图实验二I/O端口操作一、实验目的:1、掌握I/O端口读写等基本汇编指令;2、掌握单片机最小系统硬件电路设计及仿真软件PROTEUS仿真、调试等基本操作方法。

stm32实训心得体会

stm32实训心得体会

stm32实训心得体会篇一:STM32 实验2报告实验2MINI STM32按键控制LED灯实验一、实验目的1、掌握嵌入式程序设计流程。

2、熟悉STM32固件库的基本使用。

二、实验内容1、编程使用I/O口作为输入,控制板载的两个LED 灯。

2、使用固件库编程。

三、实验设备硬件: PC机一台MINI STM32开发板一套软件: RVMDK 一套Windows XP 一套四、实验步骤1、设计工程,使用固件库来编程设置。

、在这里我们建立一个文件夹为: STM32-Projects.点击Keil 的菜单:Project –>New Uvision Project ,然后将目录定位到刚才建立的文件夹STM32-Projecst 之下,在这个目录下面建立子文件夹shiyan1, 然后定位到 shiyan1目录下面,我们的工程文件就都保存到shiyan1 文件夹下面。

工程命名为shiyan1, 点击保存.是这个型号。

、这里我们定位到STMicroelectronics 下面的STM32F103RB ,然后点击Add ,然后Close.、用同样的方法,将 Groups 定位到CORE 和USER 下面,添加需要的文件。

这里我们的CORE 下面需要添加的文件为core_ ,startup_stm32f10x_ ,USER 目录下面需要添加的文件为,stm32f10x_,system_ 这样我们需要添加的文件已经添加到我们的工程中去了,最后点击 OK,回到工程主界面、下面我们要告诉 MDK,在哪些路径之下搜索相应的文件。

回到工程主菜单,点击魔术棒,出来一个菜单,然后点击 c/c++ 选项. 然后点击 Include Paths 右边的按钮。

弹出一个添加path 的对话框,然后我们将图上面的 3 个目录添加进去。

记住,keil 只会在一级目录查找,所以如果你的目录下面还有子目录,记得path 一定要定位到最后一级子目录。

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

单片机实验报告 2
姓名徐伟彬
时间地点
实验题目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欧的降压电阻实现驱动。

相关文档
最新文档