单片机实验报告IO口控制

合集下载

单片机IO开关输入输出实验报告

单片机IO开关输入输出实验报告

单片机实验报告
学院: 物电学院
专业: 电子科技与技术
班级: 2013级2班
学号: 201310530229
姓名: xxx
指导老师: xx
实验一 IO开关输入输出实验
1.实验目的
目的:学习单片机读取IO引脚状态的的方法。

2.试验环境及设备
EL-EMCU-I试验箱、EXP-89S51/52/53 CPU板。

3.实验内容
ORG 0000H
LJMP MAIN
ORG 30H
MAIN: MOV P0,#0FFH
MOV A ,P0
SWAP A
MOV P0,A
NOP
SJMP MAIN
DEALY:MOV R7,#20H
D1:MOV R6,#0F0H
DJNZ R6,0
DJNZ R7,D1
RET
END
4.实验结果:
用导线将试验箱上的IO接口(I0~I8)与拨码开关输出端(K1~K8)相连,通过拨码开关来控制发光二极管。

运行程序,并使程序处于不断运行状态,开关都打开是,二极管全发光,关闭一些开关后,I0~I3上的开关开对应K4~K7的二极管灯亮,I4~I7上相对应的开光开对应K4~K7的二极管亮。

5.实验结论
在运行程序后,单片机实现了用输入与输出之间高地位的转换。

单片机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开关量输入输出实验

单片机原理实验报告实验一:IO开关量输入输出实验学院: 物理与机电工程学院专业: 电子科学与技术班级: 2013 级 2 班学号: 201310530208姓名: 何丽丽指导老师: 柳妮实验一IO开关量输入输出实验目的:学习单片机读取IO引脚状态的的方法。

内容:编程读取IO引脚状态。

设备:EL-EMCU-I试验箱、EXP-89S51/52/53 CPU板。

编程:首先要把相关的引脚设置在IO的输入状态,然后写一个循环,不停地检测引脚的状态。

步骤:1、将CPU板正确安放在CPU接口插座上,跳线帽JP2短接在上侧。

2、连线:用导线将试验箱上的的IO1--- IO8分别连接到SWITCH 的8个拨码开关的K1---K8的输出端子K1---K8上,连接好仿真器。

3、实验箱上电,在PC机上打开Keil C环境,打开实验程序文件夹IO_INPUT下的工程文件IO_INPUT.Uv2编译程序,上电,在程序注释处设置断点,进入调试状态,打开窗口Peripherals-->IO-Port-->P0,改变开关状态,运行程序到断点处,观察窗口的数值与开关的对应关系。

程序:ORG 0000HLJMP MAINORG 0030HMAIN:MOV P0,#0FFHMOV A,P0SWAP AMOV P0,ASJMP MAINEND程序分析:从上面的程序可以看出我们需要用导线将试验箱上的的IO1--- IO8分别连接到SWITCH的8个拨码开关的K1---K8的输出端子K1---K8上,连接好仿真器。

在通过SWAP A MOV P0,A这组指令来对P0口所接的对应的发光二极管对应的状态通过拨码开关的开关来控制发光二极管。

结论:通过上面这段程序,我们实现了用拨码开关来控制P0口所接的发光二极管的亮灭。

通过I\O口P0.0—P0.3接拨码开关,P0.4—P0.7一一对应的接发光二极管。

单片机测试报告

单片机测试报告

单片机测试报告引言单片机是嵌入式系统中常见的一种控制器件,广泛应用于各个领域,如家电、汽车、通信等。

本文旨在通过一个简单的示例,介绍如何进行单片机的测试。

设计目标本次测试的目标是验证单片机的基本功能以及IO口的正确工作。

我们将通过编写简单的程序,控制LED灯的亮灭来测试单片机的输出功能,同时通过按键输入来控制LED灯的状态。

硬件准备1.单片机开发板2.LED灯3.按键开关4.杜邦线软件准备1.单片机编程软件2.编译器硬件连接将LED灯的正极连接到单片机的一个IO口,负极连接到GND。

将按键开关的一端连接到单片机的另一个IO口,另一端连接到GND。

编写代码以下是一个简单的代码示例,用于控制LED灯的亮灭和按键输入:#include <reg52.h>sbit LED = P1^0;sbit BUTTON = P1^1;void delay(unsigned int time) {while (time--);}void main() {while (1) {if (BUTTON == 0) { // 按键按下时LED = ~LED; // LED状态取反delay(50000); // 延时一段时间}}}代码中,我们使用了8051系列的单片机,通过P1口来控制LED灯和读取按键输入。

当按键按下时,LED灯的状态会取反,并且通过延时函数延时一段时间来避免按键抖动。

编译和下载使用编译器将代码编译为单片机可执行的机器码,然后通过单片机编程软件将机器码下载到目标单片机上。

测试将开发板上电,并观察LED灯的状态。

当按键按下时,LED灯会切换亮灭状态。

通过不断按下按键,我们可以验证单片机的输入和输出功能是否正常工作。

结论通过本次单片机测试,我们成功验证了单片机的基本功能以及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. 运行程序,获取温度传感器的模拟信号,并进行显示或者其他处理。

单片机显示接口实验报告总结

单片机显示接口实验报告总结

单片机显示接口实验报告总结
单片机显示接口实验是一种基础的实验,通过该实验可以学习并了解单片机与显示设备的连接和通讯方式,同时也加深了我们对单片机工作原理的理解。

下面是对单片机显示接口实验报告的总结:
本次单片机显示接口实验是一项基础性实验,其主要目的是学习单片机与显示设备之间的连接与通讯方式。

实验中我们采用了常用的连接方式,即采用IO口直接驱动数码管或者使用IIC 总线来驱动OLED屏幕。

在实验过程中,我们通过调节单片机的IO口输出高低电平以及更新显示缓存区中的数值来实现7段LED数码管的显示效果。

同时我们还学习了BCD码的转换方式以及了解了BCD码的原理,使得我们可以将数字转化为相应的BCD码再传输给数码管进行显示。

在使用IIC总线连接OLED屏幕时,我们需要先编写相应的IIC通信程序,然后将其应用至OLED 显示屏的初始化和数据传输上。

通过这种方式,我们成功地实现了单片机与OLED显示屏之间的数据传输和显示。

在实验过程中,我们需要理解并掌握相应的实验步骤和技能,而不仅是单纯地进行实验操作。

通过本次实验,我们将理论知识和实际操作相结合,从而更好地理解了单片机与显示设备之间的通讯方式及其相关操作方法。

总之,本次单片机显示接口实验是一次非常有益的实践活动,不仅深化了我们对单片机原理的理解,同时也为我们今后的学习打下了坚实的基础。

51单片机实验报告

51单片机实验报告

51单片机实验报告51单片机是一款非常流行的单片机芯片,被广泛应用于各种电子产品中。

在这篇文章中,我们来探讨一下51单片机的一些实验,以及对于这些实验的理解和体会。

第一部分:实验内容我们进行的51单片机实验主要包括以下几个方面:1. 闪烁LED灯实验:这个实验是入门级别的,主要是为了熟悉51单片机的基本操作和编程方法。

在这个实验中,我们使用了一块51单片机开发板和几个LED灯,通过控制单片机的IO口信号来实现LED灯的闪烁。

2. 按键控制LED实验:这个实验是在闪烁LED实验的基础上进一步延伸的,主要是为了了解如何通过外部按键来控制单片机的输出。

在这个实验中,我们运用了单片机的外部中断和定时器等功能,实现了按键控制LED灯的亮灭。

3. LCD1602显示屏实验:这个实验是为了让我们熟悉如何在51单片机中使用LCD1602液晶显示屏。

在这个实验中,我们使用了I2C总线来与LCD1602进行通信,通过向LCD1602发送命令和数据来实现字符的显示。

4. 电机驱动实验:这个实验是让我们了解如何使用51单片机来控制电机的运转。

在这个实验中,我们运用了单片机的PWM控制功能,通过改变PWM波的占空比来控制电机的转速和方向。

第二部分:实验体会通过这些实验,我对于51单片机有了更深刻的理解和体会。

在这里,我想分享一下我的一些体会。

首先,我认为51单片机具有非常强大的控制能力和灵活性。

通过编写程序,我们可以控制单片机的各种IO口、定时器、PWM输出等功能,从而实现各种复杂的控制任务。

同时,由于其能够直接操作硬件,所以可以快速响应各种外部事件,对实时性要求较高的应用场景有很好的适应性。

其次,我发现在51单片机开发中,良好的软硬件结合非常重要。

由于51单片机具有丰富的外部中断、定时器等功能,因此我们可以很好地利用这些硬件资源来实现各种功能。

同时,在编写程序时,我们也需要充分发挥51单片机的硬件优势,例如使用定时器来完成计时任务,使用外部中断来完成输入检测等等。

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口的输入输出实验.

实验二 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 。

51单片机实验报告

51单片机实验报告

51单片机实验报告51单片机是一种广泛应用于控制领域的微型处理器。

本文将介绍我所进行的两个基础实验,包括实验目的、实验内容、实验原理和实验结果。

实验一——点亮LED灯实验目的:了解51单片机的基本接口和编程方法;学会使用单片机的开发工具和调试器;掌握51单片机控制LED灯的方法。

实验内容:将LED灯连接至51单片机的P1.0引脚,并进行控制。

编写程序,使得LED灯能稳定地点亮。

实验原理:单片机可通过其IO口控制外部设备,使用高低电平来控制LED灯的开关。

P1.0是51单片机的一个输出端口,可通过赋予其电平状态从而控制LED的点灯与熄灭。

当单片机输出高电平时,LED灯会点亮,否则会熄灭。

实验结果:经过编写程序和调试后,成功实现了LED灯的点亮和熄灭。

按下按键即可改变LED的状态。

实验二——数码管计数器实验目的:了解51单片机的数字口和中断响应机制;掌握编写定时器中断程序的方法;学会使用键盘进行输入和外接数码管进行输出。

实验内容:通过对8位数码管控制台的编程,实现对数字的控制,使用定时器中断实现计数器功能,加深对51单片机中断响应机制的理解。

实验原理:单片机中断请求源包括外部中断源、定时器/计数器中断源以及串口中断源。

本次实验使用定时器中断,可实现一定时间间隔内数字的加减;使用键盘进行输入,采用P3口中断请求源实现按键响应,输出则通过数码管接口外设实现。

实验结果:通过定时器计数器、中断响应和数码管接口外设,成功实现一组数字的计数。

按下按键即可进行数字的加减,并通过数码管显示出来。

结语:本文所述实验为51单片机的基础操作,相信可以为读者提供实用的参考和帮助,帮助大家更加深入地理解51单片机的基础知识和使用方法。

单片机方波发生器实验报告

单片机方波发生器实验报告

单片机方波发生器实验报告实验报告,单片机方波发生器。

实验目的:本实验旨在通过单片机实现方波发生器电路,了解方波发生器的工作原理,并掌握单片机的IO口控制。

实验器材:1. 单片机(如STC89C52)。

2. 电源。

3. 适配器。

4. 电阻、电容。

5. 示波器。

6. 连接线。

实验原理:方波发生器是一种能够产生方波信号的电路或设备。

在本实验中,我们将通过单片机的IO口控制来实现方波信号的产生。

单片机作为控制核心,通过对IO口的高低电平控制,可以实现方波信号的产生。

通过改变IO口的输出频率和占空比,可以产生不同频率和占空比的方波信号。

实验步骤:1. 连接电路,按照电路图连接单片机、电源、电阻、电容和示波器。

2. 编写程序,使用C语言或汇编语言编写单片机控制程序,配置IO口的输出模式和控制方波的频率和占空比。

3. 烧录程序,将编写好的程序通过编程器烧录到单片机中。

4. 实验验证,连接示波器,观察输出的方波信号的频率和占空比是否符合预期。

实验结果与分析:经过实验验证,我们成功实现了单片机方波发生器电路。

通过改变程序中的参数,我们可以得到不同频率和占空比的方波信号。

通过示波器观察,我们可以清晰地看到产生的方波信号波形,验证了实验的成功。

实验总结:通过本次实验,我们深入了解了方波发生器的原理和单片机的IO口控制。

掌握了单片机方波发生器的设计和实现方法,提高了我们对单片机应用的理解和实践能力。

同时,实验中也加深了我们对方波信号的理解,对信号发生器的应用有了更深入的认识。

以上就是本次单片机方波发生器实验的实验报告,希望能对你有所帮助。

单片机io口实验结论

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

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

单片机实验报告IO口控制

单片机实验报告IO口控制

单片机实验报告实验名称:I/O口控制实验姓名:学号:班级:实验时间:一、实验目的1、Keil C51软件的介绍,Proteus软件的应用,及结合使用。

2、学习I/O的使用;3、学习延时子程序的编写和使用;4、掌握单片机编程器使用和芯片烧写方法。

二、实验原理1.灯闪烁实验(1)在P1.0端口上接一个发光二极管L1,使L1在不停地一亮一灭,一亮一灭的时间间隔为0.2秒。

(2)系统板上硬件连线:把“单片机系统”A2区的J61接口的P1.0~P1.6端口与D1区的J52接口相连。

灯闪烁实验电路原理图(3)程序设计流程2.广告流水灯实验(1)做单一灯的左移右移,八个发光二极管L1~L8分别接在单片机的P1.0~P1.7接口上,输出“0”的时候,发光二极管亮,开始时P1.0->P1.1->P1.2->P1.3->...->P1.7->P1.6->...P1.0亮,重复循环。

(2)系统板上硬件连线:把“单片机系统”A2区的J61接口的P1.0~P1.6端口与D1区的J52接口相连。

要求:P1.0对应着L1,P1.1对应L2,……,P1.7对应着L8。

P1口广告流水灯实验电路原理图(3)程序设计流程:流程图如下3.模拟开关实验(1)监视开关K1(接在P3.0端口上),用发光二极管L1(接在单片机P1.0端口上)显示开关状态,如果开关合上,L1亮,开关打开,L1熄火。

(2)系统板上硬件连线:把“单片机系统”A2区的P1.0端口用导线连接到D1区的LED1端口上;把“单片机系统”A2区的P3.0端口用导线连接到D1区的KEY1端口上;模拟开关实验原理图(3)程序设计流程三、实验内容1 灯闪烁利用单片机的I/O引脚控制一发光二极管,实现闪烁效果。

(1)c语言代码#include<reg51.h>sbit P10=P1^0;void delay(){long int i;for(i=0;i<7550;i++);}void main(){while(1){P10=1;delay();P10=0;delay();}}(2)系统板上硬件连线(3)时间控制2 广告流水灯利用单片机的任一组I/O引脚控制八个发光二极管,实现广告流水灯效果(1)c语言代码#include<reg51.h>void time(){long int i;for(i=0;i<=38000;i++);}void delay(unsigned char tmp){unsigned char j;while(tmp--){j=255;while(j--);}}code unsigned char tmpled[8]={0Xfe,0Xfd,0Xfb,0Xf7,0xef,0xdf,0xbf,0x7f}; code unsigned char smpled[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe}; void main(void){unsigned char i;while(1){for(i=0;i<8;i++){P1=tmpled[i];delay(100);}P1=0xff;time();for(i=0;i<8;i++){P1=smpled[i];delay(100);}P1=0xff;time();}}(2)系统硬件电路(3)时间控制3 模拟开关读取单片机的I/O引脚状态来控制发光二极管,引脚状态由外部开关控制。

单片机IO口实验

单片机IO口实验

微机原理实验报告实验名称:单片机IO口控制实验姓名:学号:座位号:指导教师:实验原理:MCS-51单片机的内部结构:Mcs-51单片机的内部结构图如上所示,而且IO口作为单片机的重要组成部分,是连接单片机与外部设备的桥梁。

单片机IO口双列直插封装的管脚图:并行IO接口及其应用:MCS-5系列单片机内部有4个8位的并行I/O接口i,分别命名为P0,P1,P2和P3。

每个并行I/O接口的各位均可作为输入或者输出。

由于他们都属于地址号可被8整除的特殊功能寄存器,故可以通过位寻址或者直接寻址方式对其进行按位或字节型的I/O操作。

印象位地址或字节地址表:PO口的结构及其功能:(1)1个输出锁存器,用于进行输出数据的锁存;(2)2个三态输入缓冲器,分别用于锁存器和引脚数据的输入缓冲;(3)1个多路开关MUX,它的一个输入来自锁存器,另一个输入是地址/数据信号的反相输出。

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

(5)除具有与P1口相同的功能外,在系统扩展时作为低8位地址与数据分时复用总线,既此时P0为地址/数据分时复用端口。

低8位由ALE信号的下跳沿锁存到外部地址锁存器中,而高8位地址由P2口输出。

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

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

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

P1口的结构及其功能:(1)一个数据输出锁存器,用于输出数据的锁存;(2)两个三态输入缓冲器,BUF1用于读锁存器,BUF2用于读引脚;(3)数据输出驱动电路,由场效应管VT和片内上拉电阻R组成P1口的特点:(1)P1口由于有内部上拉电阻,没有高阻抗输入状态,所以称为准双向口。

实验二单片机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口的原理和应用场景,为以后的电子设计打下了基础。

单片机单灯闪烁实验报告

单片机单灯闪烁实验报告

单片机单灯闪烁实验报告实验目的:通过单片机控制一个LED灯的闪烁,熟悉单片机的基本操作以及IO口的使用。

实验器材:1. STC89C52单片机开发板2. LED灯3. 面包板4. 连接线实验原理:单片机是一种微型计算机,具有中央处理器、存储器和输入输出设备等,可以进行数据的输入、输出、运算等操作。

本实验使用的STC89C52单片机具有4个IO 口,其中P0口和P2口可以用来控制外部设备。

通过控制这些IO口的高低电平,可以控制LED灯的亮灭。

实验步骤:1. 将STC89C52单片机开发板连接到电脑上,并打开Keil软件。

2. 在Keil软件中新建一个工程,选择STC89系列单片机,并设置好工程的文件路径。

3. 在新建的工程中,编写代码实现单片机控制LED灯闪烁的功能。

代码如下:#includesbit LED = P2^0; // 将LED连接到P2.0口void delay// 延时函数{int i, j;for (i = 0; i < 100; i++)for (j = 0; j < 1000; j++);}void main{while (1) // 无限循环{LED = 0; // 点亮LED灯delay// 延时LED = 1; // 熄灭LED灯delay// 延时}}4. 在Keil软件中编译代码,生成HEX文件。

5. 将生成的HEX文件下载到STC89C52单片机开发板中。

6. 将LED灯连接到P2.0口上,保证正极连接到P2.0口,负极连接到GND。

7. 接通电源,LED灯开始闪烁。

实验结果:经过实验,可以看到LED灯在程序的控制下不断闪烁,每次亮灭的时间间隔为延时函数设置的时间。

实验总结:本实验通过单片机控制LED灯闪烁的实验,初步了解了单片机的基本操作和IO口的使用。

通过编写简单的代码,我们可以控制单片机的输出,实现各种不同的功能。

在今后的学习中,我们可以进一步学习单片机的其他功能,如输入输出、定时器、中断等,从而更深入地了解单片机的应用。

2021年单片机IO口控制实验实验报告

2021年单片机IO口控制实验实验报告

单片机IO口控制试验一、试验目1、熟悉MCS-51I/O结构;2、掌握MCS-51 I/O使用方法;3、掌握MCS-51中止机制。

二、试验原理1、MCS-51单片机硬件结构片内结构:2、内部数据存放器(字节地址为00H~0FH):3、SFR名称及其分布:4、I/O端口地址:5、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口与其它各口不一样之处。

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

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

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

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

单片机IO口操作是什么

单片机IO口操作是什么

单片机IO口操作是什么相信很多同学对单片机都有一定了解,那么你知道单片机IO口操作是什么吗?不知道的话跟着店铺一起来学习了解单片机IO口操作。

单片机IO口操作单片机中有四个i/o口,分别是P1,P2,P3和P4,每个引脚不止一种功能(如P3.2既是i/o口又是外部中断INT0引脚)。

下面用一个闪烁灯的例子来说明51单片机单个i/o口的用法:/************************************************************** ***************晶振:11.0593MHzLED接P1.0引脚实验结果:LED每隔0.5s闪烁一次*************************************************************** ****************/#include<reg51.h> //包含头文件#define LED P1.0 //定义LED为P1.0口void delay(unsigned int i) //延时1ms函数{for(;i>0;i--)for(int j=0;j<110;j++);}void main() //主函数{while(1){LED=1; //熄灭LEDdelay(500); //延时0.5sLED=0; //点亮LEDdelay(500);}}下面再用一个流水灯例子说明51单片机整体I/O的用法:/************************************************************** ***************晶振:11.0593MHz8个LED1~LED8分别接接P1.0~P1.7引脚实验结果:从LED1至LED8逐个点亮,呈现流水灯效果*************************************************************** ****************/#include<reg51.h>void delay(unsigned int i) //延时1ms函数{for(;i>0;i--)for(int j=0;j<110;j++);}void main(){while(1){P1=0xFF; //就是二进制中的11111111,全部熄灭delay(100); //延时0.1sP1=0xFE; //就是二进制中的11111110,点亮LED1delay(100); //延时0.1sP1=0xFD; //就是二进制中的11111101,点亮LED2delay(100); //延时0.1sP1=0xFB; //就是二进制中的11111011,点亮LED3delay(100); //延时0.1sP1=0xF7; //就是二进制中的11110111,点亮LED4delay(100); //延时0.1sP1=0xEF; //就是二进制中的11101111,点亮LED5 delay(100); //延时0.1sP1=0xDF; //就是二进制中的11011111,点亮LED6 delay(100); //延时0.1sP1=0xBF; //就是二进制中的10111111,点亮LED7 delay(100); //延时0.1sP1=0x7F; //就是二进制中的01111111,点亮LED8 delay(100); //延时0.1s}}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
} }
(2) 系统硬件电路
(3) 时间控制
3 模拟开关 读取单片机的 I/O 引脚状态来控制发光二极管,引脚状态由外部开关控制。 (1) c 语言代码 #include "reg51.h" sbit key = P3^0; sbit led= P1^0; void main(void) {
while(1){ if(key==0) led=0; if(key==1) led=1; }
P1 口广告流水灯实验电路原理图
(3) 程序设计流程:流程图如下
开始
P1 口赋初值
延时 1 秒
P1 口的各位灯依次从

右往左闪烁
延时 1 秒
P1 口 的各 位 灯 依次 从 左往右闪烁
3. 模拟开关实验 (1) 监视开关 K1(接在 P3.0 端口上),用发光二极管 L1(接在单片机 P1.0 端 口上)显示开关状态,如果开关合上,L1 亮,开关打开,L1 熄火。 (2) 系统板上硬件连线:把“单片机系统”A2 区的 P1.0 端口用导线连接到 D1 区的 LED1 端口上;把“单片机系统”A2 区的 P3.0 端口用导线连接到 D1 区 的 KEY1 端口上;
二、 实验原理
1. 灯闪烁实验 (1) 在 P1.0 端口上接一个发光二极管 L1,使 L1 在不停地一亮一灭,一亮一灭的时间
间隔为 0.2 秒。 (2) 系统板上硬件连线:把“单片机系统”A2 区的 J61 接口的 P1.0~P1.6 端口与 D1
区的 J52 接口相连。 灯闪烁实验电路原理图
(3) 程序设计流程
{P10=1; delay(); P10=0;
delay(); } } (2) 系统板上硬件连线
(3) 时间控制
2 广告流水灯 利用单片机的任一组 I/O 引脚控制八个发光二极管,实现广告流水灯效果
(1) c 语言代码 #include<reg51.h> void time() { long int i; for(i=0;i<=38000;i++);} void delay(unsigned char tmp) {
单片机实验报告
实验名称:
I/O 口控制实验
姓 名: 学 号: 班 级: 实验时间:
魏冶 090402105 光电一班 2011-11-15
南京理工大学紫金学院电光系
一、 实验目的
1、 Keil C51 软件的介绍,Proteus 软件的应用,及结合使用。 2、 学习 I/O 的使用; 3、 学习延时子程序的编写和使用; 4、 掌握单片机编程器使用和芯片烧写方法。
} (2) 系统硬件连接
四、 小结与体会
通过本次实验了解了 keil 和 protues 软件的使用,学会了 I/O 口的使用,学会了延时 子程序的编写和使用以及掌握了单片机编程器的使用和芯片烧写方法。在自己编写程序时, 要注意高低电平的分析,掌握好循环和片选定义。
unsigned char j; while(tmp--){
j=255; while(j--); } }
code unsigned char tmpled[8]={0Xfe,0Xfd,0Xfb,0Xf7,0xef,0xdf,0xbf,0x7f}; code unsigned char smpled[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe}; void main(void) {
unsigned char i; while(1){
for(i=0;i<8;i++) {
P1=tmpled[i]; delay(100); } P1=0xff; time(); for(i=0;i<8;i++) { P1=smpled[i]; delay(100); } P1=0xff; time();
开始 P1.0 输出“0”LED 灯亮
延时 0.2 秒 P1.0 输出“ 做单一灯的左移右移,八个发光二极管 L1~L8 分别接在单片机的 P1.0~P1.7
接口上,输出“0”的时候,发光二极管亮,开始时 P1.0->P1.1->P1.2->P1.3->...->P1.7->P1.6->...P1.0 亮,重复循环。 (2) 系统板上硬件连线:把“单片机系统”A2 区的 J61 接口的 P1.0~P1.6 端口与 D1 区的 J52 接口相连。要求:P1.0 对应着 L1,P1.1 对应 L2,……,P1.7 对应着 L8。
模拟开关实验原理图
(3) 程序设计流程
开始
否 L1 灭
开关闭合否 是 L1 亮
三、 实验内容
1 灯闪烁 利用单片机的 I/O 引脚控制一发光二极管,实现闪烁效果。
(1) c 语言代码 #include<reg51.h> sbit P10=P1^0; void delay() {
long int i; for(i=0;i<7550;i++); } void main() {while(1)
相关文档
最新文档