IO口控制实验
单片机IO口控制实验

单片机IO口控制实验单片机IO口控制实验是一项基础的实验课程,它涉及到单片机的硬件接口和软件编程,是学习单片机的重要环节之一。
本文将详细介绍单片机IO口控制实验的环境搭建、实验步骤和实验结果等方面。
环境搭建1. 单片机开发板:如STC89C52,AT89C52等。
2. 软件集成开发环境:如Keil,IAR等。
3. 通信工具:USB转串口转换器,串口线等。
4. 其他相关组件:电阻、LED灯、导线等。
实验步骤1. 准备工作将单片机开发板进行电源供应,检查是否正常。
在电脑上安装Keil和STC-ISP等软件工具,安装好后打开Keil,新建一个工程。
3. 写入程序进入Keil中,选择打开工程,新建一个文件,并编写程序。
下面是一个简单的程序示例:#include <reg52.h>void delay(int i) //延时函数{while(i--);}4. 烧录程序在编写好程序后,选择编译,生成一个HEX文件。
将单片机开发板接入电脑,选择工具,打开STC-ISP软件。
选择好COM口和需要烧录的HEX文件,连接单片机开发板和电脑,点击下载。
等待下载成功后,即可将程序烧录到单片机中。
5. 实验验证实验时,可以将LED灯和几个外设连接到单片机的IO口,通过程序控制IO口的电平,达到控制LED灯、外设等的效果。
实验结果实验成功后,可以通过单片机控制LED灯的亮灭、外设的工作状态等,验证程序的正确性。
此外,实验成功还可以提高学生的动手实践能力和编程能力,为后续单片机应用开发打下基础。
结论单片机IO口控制实验是单片机学习中的重要实践环节。
通过实验,可以让学生了解单片机的硬件接口和软件编程,提高学生的实践能力和编程能力,培养学生独立思考和解决问题的能力。
实验三流水灯实验(io口和定时器实验)

实验三流水灯实验(I/O口和定时器实验)一、实验目的1.学会单片机I/O口的使用方法和定时器的使用方法;2.掌握延时子程序的编程方法、内部中断服务子程序的编程方法;3.学会使用I/O口控制LED灯的应用程序设计。
二、实验内容1.控制单片机P1口输出,使LED1~LED8右循环轮流点亮(即右流水),间隔时间为100毫秒。
2.控制单片机P1口输出,使LED1~LED8左循环轮流点亮(即左流水),间隔时间为100毫秒。
3.使用K1开关控制上面LED灯的两种循环状态交替进行;4. 用定时器使P1口输出周期为100ms的方波,使LED闪烁。
5.使用定时器定时,使LED灯的两种循环状态自动交替,每一种状态持续1.6秒钟(选作)。
三、实验方法和步骤1.硬件电路设计使用实验仪上的E1、E5和E7模块电路,把E1区的JP1(单片机的P1口)和E5区的8针接口L1~L8(LED的驱动芯片74HC245的输入端)连接起来,P1口就可以控制LED 灯了。
当P1口上输出低电平“0”时,LED灯亮,反之,LED灯灭。
E7区的K1开关可以接单片机P3.0口,用P3.0口读取K1开关的控制信号,根据K1开关的状态(置“1”还是置“0”),来决定LED进行左流水还是右流水。
综上,画出实验电路原理图。
2.程序设计实验1和实验2程序流程图如图3-1实验3程序流程图如图3-2所示。
图3-1 实验1,2程序流程图图3-2 实验3程序流程图实验4程序流程图如图3-3,3-4所示。
实验5程序流程图如图3-5,3-6所示。
图3-5 实验5主程序流程图图3-6 定时器中断服务子程序流程图图3-4 定时器中断服务子程序流程图图3-3 实验4主程序流程图编程要点:(1)Pl,P3口为准双向口,每一位都可独立地定义为输入或输出,在作输入线使用前,必须向锁存器相应位写入“1”,该位才能作为输入。
例如:MOV P1,A; P1口做输出MOV P1,#0FFHMOV A,P1;P1口做输入SETB P3.0MOV C,P3.1;从P3.1口读入数据(2)每个端口对应着一个寄存器,例:P1→90H(P1寄存器地址);P3→B0H(P3寄存器地址);寄存器的每一位对应着一个引脚,例:B0H.0→P3.0(3)对寄存器写入“0”、“1”,对应的外部引脚则输出“低电平”、“高电平”。
简单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的原理及应用单片机实验1. IO简介IO(Input/Output)是指计算机与外界设备进行信息交互的接口。
在单片机中,IO端口是与外部设备进行数据输入和输出的重要通路。
它充当着信息传输的桥梁,实现单片机与外部设备的连接和数据的交互。
了解IO的原理及应用对于进行单片机实验和开发非常重要。
2. IO的原理IO端口主要包括输入端口和输出端口。
通过配置相应的寄存器和引脚状态,可以实现外部设备与单片机的数据输入和输出。
•输入端口:将外部设备的信号输入到单片机中。
输入端口通常和外部器件的开关量信号相连,如按钮、开关等。
•输出端口:将单片机中的数据输出给外部设备。
输出端口通常和外部器件的执行元件相连,如LED灯、马达等。
3. IO的应用IO的应用非常广泛,涵盖了很多领域。
下面以单片机实验为例,介绍IO的常见应用。
3.1 LED闪烁实验LED闪烁实验是单片机实验中最基础的实验之一。
通过控制IO口的电平,可以控制LED的亮灭。
实验步骤: 1. 连接硬件电路,将LED的正极连接到单片机的输出口,负极连接到地。
2. 在单片机的程序中配置输出端口为高电平或低电平。
3. 运行程序,观察LED的亮灭情况。
3.2 数码管显示实验数码管显示实验是单片机实验中常见的应用之一。
通过IO口的输出控制,可以实现数字的显示。
实验步骤: 1. 连接硬件电路,将数码管的引脚连接到单片机的输出端口。
2.在单片机的程序中配置输出端口的电平,根据不同的情况控制数码管的显示。
3.运行程序,观察数码管的显示结果。
3.3 温度传感器实验温度传感器实验是单片机实验中涉及到模拟信号输入的应用之一。
通过IO口的输入控制,可以获取温度传感器的模拟信号,并进行处理。
实验步骤: 1. 连接硬件电路,将温度传感器的输出引脚连接到单片机的模拟输入端口。
2. 在单片机的程序中配置输入端口为模拟转换模式,并进行相应的模拟信号转换。
3. 运行程序,获取温度传感器的模拟信号,并进行显示或者其他处理。
3 IO接口实验(交通灯控制实验)

实验框图:
开始
初始状态东西 南北都是红灯 状态1南北绿灯, 东西红灯 状态2南北绿灯闪转黄 灯,东西红灯 状态3南北红灯, 东西绿灯 状态4南北红灯, 东西绿灯闪转黄灯
附实验代码:(红色为实验添加代码)
ORG ORG START: MOV SP,#100H ;初始状态(都是红灯) ;南北绿灯,东西红灯 ;南北绿灯闪转黄灯,东西红灯 ;南北红灯,东西绿灯 ;南北红灯,东西绿灯闪转黄灯 ;南北红灯,东西红灯 DPTR,#8300H A,#0FH @DPTR,A R2,#01H ;延时1秒 LCALL STATUS0 CIRCLE: LCALL STATUS1 LCALL STATUS2 LCALL STATUS3 LCALL STATUS4 LJMP CIRCLE STATUS0: MOV MOV MOVX ;MOV NOP RET 0000H 0040H LJMP START
MOV
R3,#05H
;绿灯闪3次 A,#0AFH
FLASH: MOV MOVX ;MOV
@DPTR,A R2,#03H
LCALL DELAY MOV MOVX ;MOV A,#0AFH @DPTR,A R2,#03H
LCALL DELAY DJNZ MOV MOVX ;MOV R3,FLASH A,#5AH @DPTR,A R2,#03H
;MOV
LCALL DELAY NOP RET STATUS3: MOV MOV MOVX ;MOV ;南北红灯,东西绿灯 DPTR,#8300H A,#0A5H @DPTR,A R2,#01H ;延时5秒
RET
;延时子程序 DELAY: MOV DELAY2: MOV DJNZ DJNZ R1,#07H R0,#F0H
单片机io口实验报告

实验一以下所有KEIL工程、程序均命名为自己姓名的拼音一、实验目的:熟悉KEIL软件的开发,掌握程序下载流程二、实验环境:1.硬件:PC微机、单片机开发板2.软件:KEIL三、实验步骤:1.在KEIL中新建工程文件,在工程文件下新建C文件“姓名首字母.c”并加入到工程中(注意C语言编程时,工程中要保留STARTUP.A51汇编文件)。
2.编写程序,初始化内部数据寄存器0x40开始的100个地址单元,写入0x55,然后复制到0x60开始的存储器中,使用软件仿真的方式调试程序,观察程序模拟运行的结果:#include "reg52.h"unsigned char *p,*q;unsigned char i;int main(){p=0x40;for(i=0;i<10;i++){*p=0x55;p++;}for(i=0;i<10;i++){*p=*q;q++;p++;while(1);}}调试时,在调试界面中依次找到a) 变量观察窗口b) 存储器窗口c) 单步运行d) 全速运行程序运行结果(存储器窗口截图):3.编写程序,控制实验板上的LED灯:D1-D3点亮,D4-D7熄灭,D8点亮#include”reg52.h”sbit P1_4=P1^4;int main(){P1_4=0;P0=0x1E;While(1);}4.编写C语言程序,实现LED灯循环点亮#include "reg52.h"void delay (unsigned z){while(z--);}int main(){unsigned char i;P1&=~(0x01<<4);P0=0xff;i=0x01;while (1){P0=~i;i=i<<1;if(i==0x0)i=0x01;delay(10000);}}四、实验总结。
实验二 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口扩展实验报告引言: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口扩展的原理、应用和实现方法有了更深入的了解。
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口的输入输出实验.

实验二 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口(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灯能够亮起。
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口实验的过程中,我们得出了以下几点结论。
1. 单片机IO口具有输入和输出功能。
通过设置相应的寄存器,可以将IO口配置为输入或输出模式。
输入模式时,可以读取外部信号的状态;输出模式时,可以向外部设备发送信号。
2. 单片机IO口具有高低电平控制能力。
通过设置相应的寄存器,可以将IO口输出高电平或低电平信号。
高电平一般表示逻辑1,低电平表示逻辑0。
通过控制IO口的高低电平,可以与其他设备进行通信。
3. 单片机IO口具有上拉和下拉功能。
当IO口配置为输入模式时,可以通过上拉或下拉电阻来确保输入信号的稳定性。
上拉电阻使得输入信号在未连接时保持高电平,下拉电阻使得输入信号在未连接时保持低电平。
4. 单片机IO口具有中断功能。
通过配置相应的寄存器和中断向量表,可以使IO口在特定条件下触发中断。
当IO口输入信号满足中断触发条件时,可以立即响应中断并执行相应的中断服务程序。
5. 单片机IO口的电流限制。
在使用IO口时,需要注意IO口的电流限制。
如果连接的外部设备需要较大的电流驱动能力,可以通过外部电流放大器或继电器等方式来实现。
6. 单片机IO口的电压范围。
在使用IO口时,需要了解IO口的电压范围。
不同的单片机IO口电压范围可能有所不同,需要根据具体的需求选择合适的单片机型号和IO口。
7. 单片机IO口的电平转换。
当单片机与其他设备进行通信时,可能存在电平不匹配的情况。
可以通过电平转换电路来实现不同电平之间的转换,以确保通信的稳定性。
8. 单片机IO口的使用限制。
在使用IO口时,需要遵守单片机的使用规范和限制。
例如,不同的IO口可能有不同的功能限制、电流限制和电压范围限制,需要根据具体的芯片手册进行配置。
总结:单片机IO口是单片机与外部设备交互的重要接口,通过IO 口可以实现输入输出功能。
单片机实验报告二 单片机IO口实验

南昌大学实验报告学生姓名:学号:专业班级:实验类型:⃞验证⃞综合⃞设计⃞创新实验日期:2019.4.16 实验成绩:实验二单片机I/O口实验(一)实验目的1.掌握单片机最小系统的构成,学习如何控制I/O口来驱动发光二极管,掌握移位和软件延时程序的编写。
2.熟练掌握STC型开发板的使用方法和注意事项。
3.掌握应用STC_ISP烧录过程;(二)设计要求利用51单片机及4个LED发光二极管,设计一个单片机流水灯程序,P4.7 /P4.6/ P1.6/ P1.7 来演示跑马灯。
其中流水灯的变化形式多样。
(三)实验原理STC实验箱单片机型号为IAP15W4K32S4-Student,其在线编程与在线仿真可由Keil uVision4集成开发环境和STC系列单片机在线可编程(ISP)电路实现:1.设置STC仿真器:运行STC-ISP在线编程软件,选择“keil 仿真设置”选项,如图1所示,单击“添加型号和头文件到keil中/ 添加STC仿真器驱动到keil中”,弹出“浏览文件夹”对话框,在浏览文件夹中选择keil的安装目录,单击“确定”按钮即完成添加。
根据所用芯片,单击“将IAP15W4K32S4-Student设置为仿真芯片”。
图12.Keil uVision4环境设置:选择菜单命令Project →Options for Target →Debug,选中“STC Monitor-51 Driver”,勾选“Load Application at Startup”选项和“Run to main()”选项,如图2所示。
单击图2右上角的“settings”按钮,弹出硬件参数设置对话框,如图2所示,根据仿真电路所使用的串口号(本机所用为串口5)选择串口端口,如图3所示:图2图33.STC15单击串口TTL电平通信模块结构如图4所示,P1.6、P1.7、P4.6、P4.7所连接的LED灯为共阳极LED,控制对应I/O口为低电平即可点亮LED。
单片机《输入输出口》实验报告

实验一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软件。
单片机io口控制led实验报告

单片机io口控制led实验报告
一、实验背景
单片机是一种集成电路,它可以通过编程来控制各种电子设备。
在这个实验中,我们将学习如何使用单片机的IO口来控制LED灯。
二、实验材料
1. STC89C52RC单片机开发板
2. LED灯
3. 220欧姆电阻
4. 杜邦线
三、实验原理
单片机的IO口可以用来控制数字信号。
当IO口输出高电平时,LED 灯就会亮起来;当IO口输出低电平时,LED灯就会熄灭。
为了保护单片机和LED灯,我们需要使用一个220欧姆的电阻。
这个电阻可以限制电流流过LED灯和单片机之间的连接。
四、实验步骤
1. 将一个杜邦线连接到单片机的P
2.0引脚。
2. 将另一个杜邦线连接到单片机的GND引脚。
3. 将一个220欧姆的电阻连接到P2.0引脚和LED正极之间。
4. 将另一个杜邦线连接到LED负极。
5. 将另一个220欧姆的电阻连接到LED负极和单片机的GND引脚之间。
五、实验结果
当单片机的P2.0引脚输出高电平时,LED灯会亮起来;当P2.0引脚输出低电平时,LED灯会熄灭。
六、实验总结
这个实验展示了如何使用单片机的IO口来控制数字信号。
我们还学习了如何使用电阻来保护单片机和LED灯。
在实际应用中,我们可以使用单片机的IO口来控制各种设备,例如电机、传感器等。
这个实验是学习单片机编程的基础,对于想要深入学习嵌入式系统开发的人来说是非常重要的。
实验八 IO口驱动实验

实验八I/O口驱动实验【实验目的】1、了解PXA270微处理器GPIO的功能2、熟悉PXA270微处理器GPIO驱动程序的编写方法3、掌握驱动程序的加载过程和方法【实验原理】Linux以模块的形式加载设备类型,通常来说一个模块对应一个设备驱动,因此是可以分类的。
将模块分成不同的类型或者类并不是一成不变的,开发人员可以根据实际工作需要在一个模块中实现不同的驱动程序。
一般情况,一个设备驱动对应一类设备的模块方式,这样便于多个设备的协调工作也利于应用程序的开发和扩展。
设备驱动在准备好以后可以编译到内核中(参考实验四的内容),在系统启动时和内核一起启动,这种方法在嵌入式Linux系统中经常被采用。
通常情况下设备驱动的动态加载更为普遍(参考实验七的内容),开发人员不必在调试过程中频繁启动机器就能完成设备驱动的开发工作。
设备驱动在加载时首先调用入口函数init_module(),该函数完成设备驱动的初始化工作,比如寄存器置位、结构体赋值等一系列工作,其中最重要的一个工作就是向内核注册该设备,对于字符设备调用register_chrdev()完成注册,对于块设备需要调用register_blkdev()完成注册。
注册成功后,该设备获得了系统分配的主设备号、自定义的次设备号,并建立起于文件系统的关联。
设备在卸载时需要回收相应的资源,令设备的响应寄存器复位并从系统中注销该设备,字符设备调用unregister_chrdev()、块设备调用unregister_blkdev()。
系统调用部分则是对设备的操作过程,比如open、read、write、ioctl等。
图8-1为一个设备驱动模块动态挂载、卸载和系统调用的全过程。
图8-1 设备驱动在内核中的挂载、卸载和系统调用过程设备驱动程序负责将应用程序如读、写等操作正确无误的传递给相关的硬件,并使硬件能够做出正确反应的代码,因此在编写设备驱动程序时,必须要了解相应的硬件设备的寄存器、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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机实验报告
实验名称:I/O口控制
姓名:
学号:
班级:
时间:
理工大学紫金学院电光系
一、实验目的
1、学习I/O口的使用;
2、学习延时子程序的编写和使用;
3、掌握单片机编程器使用和芯片烧写方法。
二、实验原理
1、灯闪烁实验
(1)在P1.0端口上接一个发光二极管L1,使L1在不停地一亮一灭,一亮一灭的时间间隔为0.2秒。
电路原理图如图
(2)程序设计流程图
2、广告流水灯实验
(1)做单一灯的左移右移,硬件电路如图,八个发光二极管L1—L8分别接在单片机的P1.0—P1.7接口上,输出“0”时,发光二极管亮,开始
时P1.0→P1.1→P1.2→P1.3→…→P1.7→P1.6→…→P1.0亮,重复循
环。
(2)程序设计流程图
开始
P1口赋初值
延时1秒
P1口的各位灯依次从右向左闪烁
是
延时1秒
P1口的各位灯依次从左向右闪烁
3、模拟开关实验
(1)监视开关K1(接在P3.0端口上),用发光二极管L1(接在单片机P1.0端口上)显示开关状态,如果开关合上,L1亮,开关打开,L1熄灭。
如图所示。
(2)程序设计流程图
三、实验容
1、灯闪烁
利用单片机的I/O引脚控制一发光二极管,实现闪烁效果。
2、广告流水灯
利用单片机的任一组I/O引脚控制八个发光二极管,实现广告流水灯效果。
3、模拟开关
读取单片机的I/O引脚状态来控制发光二极管,引脚状态由外部开关控制。
四、小结与体会
通过实验,了解了MCS-51单片机中定时器/计数器的基本结构、工作原理和工作方式,掌握工作在定时器和计数器两种方式下的编程方法。
由于定时器和计数器在不同的工作方式下有不同的性质,因此学会选取恰当的工作方式十分重要。