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口控制实验

单片机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口和定时器实验)

实验三流水灯实验(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口的输入输出实验一、实验目的:1.理解并掌握单片机IO口的输入输出原理;2.掌握基础的输入输出编程技巧;3.熟悉单片机实验的基本流程和实验报告格式。

二、实验器材:1.STM32F103C8T6开发板2.LED灯3.电阻(220Ω)4.面包板、杜邦线等。

三、实验原理:单片机的IO口是实现与外部器件进行通信的重要接口,通过编程,我们可以控制IO口的状态(低电平或高电平)来实现对外部器件的控制或检测。

IO口的输入输出原理主要有两种:1.三态输出方式:通过设置IO口的DDR寄存器来将IO口设置为输出模式(推挽输出),并通过设置IO口的ODR寄存器来控制IO口的输出状态为低电平或高电平;2.上拉输入方式:通过设置IO口的DDR寄存器来将IO口设置为输入模式,同时设置IO口的CR寄存器的PUPD位为上拉使能,通过读取IO口的IDR寄存器可以获取IO口的输入状态。

四、实验步骤:1.连接电路:将STM32F103C8T6开发板的VDD和VSS(即5V和GND)分别连接到面包板的3V3和GND,将LED的阳极(长脚)连接到STM32F103C8T6开发板的PA0引脚,将LED的阴极(短脚)通过一个220Ω的电阻连接到GND。

2. 打开Keil uVision5软件,创建一个新的工程,并选择适合的芯片型号(STM32F103C8T6)。

3.编写代码实现将PA0引脚设置为输出模式,并控制LED的亮灭。

五、实验代码:```c#include "stm32f10x.h"void GPIO_Configuration(void)GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure);int main(void)GPIO_Configuration(;while (1)GPIO_SetBits(GPIOA, GPIO_Pin_0); // 点亮LEDGPIO_ResetBits(GPIOA, GPIO_Pin_0); // 关闭LED}```六、实验结果与分析:七、实验心得:本次实验主要学习了单片机IO口的输入输出原理,了解了三态输出方式和上拉输入方式,并通过实际编写代码的方式,在STM32F103C8T6开发板上实现了控制LED的亮灭。

3 IO接口实验(交通灯控制实验)

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口实验报告

单片机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口的特性 掌握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 置位时所有端口引脚的上拉电阻都被禁止。
端口引脚配置图

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 小灯闪烁视频
(灯亮时的图片)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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单片机中定时器/计数器的基本结构、工作原理和工作方式,掌握工作在定时器和计数器两种方式下的编程方法。

由于定时器和计数器在不同的工作方式下有不同的性质,因此学会选取恰当的工作方式十分重要。

相关文档
最新文档