2实验二 单片机IO口的使用

合集下载

单片机的IO口配置与操作技巧

单片机的IO口配置与操作技巧

单片机的IO口配置与操作技巧单片机是一种集成电路,其中包含了处理器、存储器和各种输入输出接口。

其中,IO口是单片机最重要的部分之一,它可以用于连接和控制外部设备,实现数据输入和输出。

本文将介绍单片机IO口的配置和操作技巧,帮助读者更好地理解和应用单片机。

一、IO口的基本概念IO口是单片机与外部设备进行数据交互的接口,它可以用于输入数据或输出数据。

在单片机中,IO口通常由多个引脚(Pin)组成,每个引脚都可作为一个IO口使用。

二、IO口的配置方法1. 硬件配置IO口的硬件配置是指通过设置相关硬件连接器的方式来配置IO口的功能。

根据具体的单片机型号和规格,硬件配置方法可能会有所不同。

一般来说,可以通过连接跳线和选择器等方式将特定的引脚配置为IO口,并设置相应的电平逻辑,以实现输入输出功能。

2. 软件配置软件配置是通过单片机内部的寄存器来配置IO口的功能。

可以通过写入特定的数值或位操作来设置IO口的输入输出状态、电平逻辑和控制方式等。

通常,可以使用特定的编程语言或软件工具来实现软件配置。

三、IO口的操作技巧1. 输入操作当将IO口配置为输入状态时,可以使用读取寄存器的方式来获取外部设备传递的数据。

读取寄存器时需要注意数据的有效性和稳定性,可采用轮询、中断等方式进行读取。

2. 输出操作当将IO口配置为输出状态时,可以使用写入寄存器的方式将特定的数据发送至外部设备。

输出操作需要注意数据的正确性和稳定性,可以通过设置特定的输出保护电路来防止因输出电流过大而引起的电源电流波动等问题。

3. 状态检测与改变IO口的状态检测和改变可以通过读取和写入寄存器来实现。

当需要检测IO口的当前状态时,可以通过读取相应的寄存器来获取IO口的电平状态。

而当需要改变IO口的状态时,可以通过修改寄存器的数值或位操作来改变IO口的电平状态。

四、常见问题与解决方法1. 输入输出电平不稳定当IO口输入输出电平不稳定时,可能会导致外部设备无法正常工作。

单片机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口控制实验是单片机学习中的重要实践环节。

通过实验,可以让学生了解单片机的硬件接口和软件编程,提高学生的实践能力和编程能力,培养学生独立思考和解决问题的能力。

【实验2io口实现流水灯】

【实验2io口实现流水灯】

实验二IO口实现LED灯闪烁一、实验目的:1.正确安装keil软件2.正确安装调试驱动,熟悉实验板的用法3.学习IO口的使用方法。

二、实验设备:单片机开发板、学生自带笔记本电脑三、实验内容:利用单片机IO口做输出,接发光二极管,编写程序,使发光二极管按照要求点亮。

四、实验原理:1.LPC1114一共有42个GPIO,分为4个端口,P0、P1、P2口都是12位的宽度,引脚从Px.0~Px.11,P3口是6位的宽度,引脚从P3.0~P3.5。

引脚的内部构造如图所示。

其中Rpu为上拉电阻、Rpd为下拉电阻。

2.为了节省芯片的空间和引脚的数目,LPC1100系列微处理器的大多数引脚都采用功能复用方式,用户在使用某个外设的时候,要先设置引脚。

控制引脚设置的寄存器称之为IO配置寄存器,每个端口管脚PIOn_m都分配一个了一个IO配置寄存器IOCON_PIOn_m,以控制管脚功能和电气特性。

3.IOCON_PIOn_m寄存器其位域定义如表所列。

4.各引脚IOCON寄存器的位[2:0]配置不同的值所相应功能。

5.GPIO寄存器GPIO数据寄存器用于读取输入管脚的状态数据,或配置输出管脚的输出状态,表5-5对GPIOnDATA寄存器位进行描述。

GPIO的数据方向的设置是通过对GPIOnDIR寄存器的位进行与或操作实现的,LPC1100微处理器和8051单片机的GPIO不同,在使用前一定要先设置数据方向才能使用,6.发光二级管的工作电压和工作电流如何?___________________________________________________________________________ ___________________________________________________________________________ _________________________________________________________________________。

实验二 IO 口方式基础应用实验

实验二  IO 口方式基础应用实验

电子科技大学中山学院学生实验报告学院:机电工程专业:课程名称:单片机原理与接口技术实验班级:姓名:学号:组别:实验名称:实验二I/O 口方式基础应用实验实验时间:成绩:一、实验目的和任务1、掌握80C51单片机程序的调试与下载方法。

2、掌握80C51单片机并口的特性及程序控制方法。

3、掌握步进电机转向、转速和角度控制原理。

4、掌握步进电机与单片机的接口及程序控制方法。

二、实验原理简介P0口控制8个发光管的电路结构,P0口某口线输出低电平时,相应的发光管点亮,口线输出高电平时发光管熄灭。

在做发光管相关实验时,应将实验箱上LED101~LED108发光管右上侧的拨码开关JUMP2拨到ON一侧,使发光管限流电阻公共端连接到MCU1电源正极(即Vcc端)。

VccMCU1JUMP2STC12C5A60S239 L101 470ΩP0.038 L102 470ΩP0.137 L103 470ΩP0.236 L104 470ΩP0.335 L105 470ΩP0.434 L106 470ΩP0.533 L107 470ΩP0.632 L108 470ΩP0.7图2-1 发光管控制电路步进电机是一种将电脉冲转化为角位移的执行机构,可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。

由于步进电动机能直接接受数字量,所以特别适合利用单片机进行控制。

ZSC-1实验箱MCU1利用P2口的高4位控制一个四相步进电机(其最小步距角为5.625°/64),如图3-1所示。

某口线输出低电平时,相应的功率三极管导通,其所连接的一相线圈通电,口线输出高电平时线圈断电。

程序以单4拍、双4拍或4-8拍方式依次输出各相序字,就可控制步进电机转动,颠倒相序顺序,可改变步进电机的转向。

改变各相序字之间的时间间隔可控制步进电机的转速。

图3-1中4个独立按键可用于电机控制命令的输入。

单片机原理及应用实验二报告

单片机原理及应用实验二报告

单片机原理及应用实验二报告实验二:单片机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的亮灭。

实验二 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 置位时所有端口引脚的上拉电阻都被禁止。
端口引脚配置图

电气化自动技术 实验2 IO口开关量输入-实验指导书

电气化自动技术 实验2  IO口开关量输入-实验指导书

实验二 IO开关量输入实验一、实验概述使用按键来控制单片机IO口的高低电平。

二、实验目的熟悉单片机的最小系统,了解单片机I/O的结构;掌握按键键值的读入和处理;学习简单程序的编写。

三、实验预习要求1、单片机最小系统电路构成;2、I/O口的内部结构;3、简单程序指令熟悉;四、实验原理图:AT89C52本实验使用了单片机AT89C52来做实验,该单片机有4组IO口。

单片机总的IO 会分为这几类:电平可变化的IO口和VCC、GND两类。

其中电平可变化的IO有P0口、P1口、P2口、P3口。

本实验就是读取了P1口的电平从而读取按键输入的值,P0口来输出高低电平来控制LED的亮或灭。

图:P1口的电路R1、R2是上拉电阻,拉高了P10和P11两个端口的电平,当按下按键的时候,相应的端口变为低电平。

图:P0口的电路P0口接了8个LED,RP1是限流电阻,保护LED,避免电流过高,烧坏LED;RP2是上拉电阻,将P0口的电平拉高。

五、Proteus使用的元器件1.AT89C51 //51单片机。

2.BUTTON //按键,用于最小系统复位;实现输入功能。

3.CAP //电容,用于搭建复位电路。

4.CAP-ELEC //电解电容,用于搭建复位电路。

5.CRYSTAL //晶振,给单片机提供时钟信号。

6.LED-YELLOW //黄色LED灯。

7.RES //电阻。

8.RESPACK-8 //排阻;RP1是限流电阻,RP2是上拉电阻。

六、实验要求1、利用单片机,按键和发光二极管,构成一个LED灯控制电路;2、上电时, 点亮LED,按下K1时, LED向左移一位,按下K2时, LED向右移一位。

七、硬件连接图1. 硬件电路图:8位独立LED图:8位独立按键2.硬件连接表3.Proteus仿真图图:Proteus仿真图八、实验程序/******************************************************************** ****文件名称: main.c作者:版本: V1.00说明: IO开关量输入实验修改记录:-------------------------------------------------------------------------* 功能描述: 按键扫描程序* 上电时, 点亮P00口LED ,按下K1时, LED向右移一位,按下K2时, LED向左移一位-------------------------------------------------------------------------* 接线说明:P10-K1,P11-K2,P00~P07——D1~D8********************************************************************** ****/#include <reg52.h>#include <intrins.h>#define uchar unsigned char //数据类型宏定义#define uint unsigned int/**********单片机IO口引脚定义********************************************/#define LED P0sbit K1 = P1^0;sbit K2 = P1^1;/**********函数定义******************************************************/uchar scan_key();void proc_key(uchar key_v);void delayms(uchar ms);/**********主函数********************************************************/void main(void){uchar key_s,key_v;key_v = 0x03; //初始化IO口LED = 0xfe;while(1){key_s = scan_key();if(key_s != key_v) //判断按键是否按下{delayms(10); //延时消抖key_s = scan_key();if(key_s != key_v){key_v = key_s;proc_key(key_v);}}}}/**********键盘扫描函数**************************************************/ uchar scan_key(){uchar key_s;key_s = 0x00;key_s |= K2;key_s <<= 1;key_s |= K1;return key_s; //返回按键号}/**********键盘处理函数**************************************************/ void proc_key(uchar key_v){if((key_v & 0x01) == 0){LED = _cror_(LED,1); //循环右移一位}else if((key_v & 0x02) == 0){LED = _crol_(LED, 1); //循环左移一位}}/***********延时函数*****************************************************/void delayms(uchar ms)// 延时子程序{uchar i;while(ms--){for(i = 0; i < 120; i++);}}九、实验步骤1、打开Proteus 8环境,在快捷工具栏中点击源代码按纽,然后在菜单栏选择系统-编译器配置。

单片机实验 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口的位操作
位设置
通过将某一位设置为1或0,可以 控制该位对应的硬件设备的工作
状态。
位清除
将某一位清零,通常用于关闭某个 硬件设备。
位反转
将某一位取反,实现硬件设备的状 态切换。
IO口的配置寄存器
1 2
配置寄存器的功能
配置寄存器用于设置IO口的模式、输出类型、输 出速度等参数,以满足不同的硬件设备控制需求。
按键输入
01
```c
02
void main() {
03
unsigned char keyState = 0; // 按键初始状态为未 按下
按键输入
while (1) {
if
(GPIO_ReadInputDataBit(GPIOx,
GPIO_Pin_x) == 0) { // 检测按键是否被按下
if (keyState == 0) { // 如果之前未按下,则进 入处理函数
特性。
02
LED灯的连接方式
LED灯通常与单片机的一个GPIO(通用输入输出)端口连接,通过控
制该GPIO端口的电平高低来控制LED灯的亮灭。
03
LED灯的控制代码
在单片机程序中,可以通过设置GPIO端口的寄存器值来控制LED灯的
亮灭,例如在C语言中,可以使用以下代码实现LED灯的闪烁
LED灯控制
• delay(1000);
LED灯控制
} } ```
按键输入
按键输入的原理
按键输入通常通过单片机的中断或轮询方式实现,当按键被按下时,会触发一个电平变化 或中断事件。
按键输入的连接方式
按键通常与单片机的一个GPIO端口连接,当按键被按下时,该GPIO端口的电平会发生跳 变。

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口控制实验报告单片机实验报告实验名称:I/O 口控制姓名:张昊学号:110404247 班级:通信 2 班时间:20__.11.19南京理工大学紫金学院电光系一、实验目的1、学习 I/O 口的使用。

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

3、掌握单片机编程器的使用和芯片烧写方法。

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

(2)系统板上硬件连线:把“单片机系统”A2 区的 P1.0 端口用导线连接到 D1 区的 LED1 端口上;把“单片机系统”A2 区的P3.0 端口用导线连接到 D1 区的 KEY1 端口上;实验原理图如下图程序设计流程否是二、实验内容1、流水灯#include<reg51.h> sbit p10=P1^0; sbit p11=P1^1; sbit p12=P1^2; sbit p13=P1^3; sbit p14=P1^4; sbit p15=P1^5; sbit p16=P1^6; sbit p17=P1^7;unsigned char count=0; bit flag; void main { 开始开关闭合否 L1 灭 L1 亮P1=0_ff; TMOD=0_01; TH0=55536/256; TL0=55536%256;EA=1; ET0=1; TR0=1; while(1) { p10=0; while(flag==0);flag=0; p10=1;p11=0; while(flag==0); flag=0; p11=1;p12=0; while(flag==0); flag=0; p12=1;p13=0; while(flag==0);flag=0; p13=1;p14=0; while(flag==0); flag=0; p14=1;p15=0; while(flag==0); flag=0; p15=1;p16=0; while(flag==0);flag=0; p16=1;p17=0; while(flag==0); flag=0; p17=1; } } void t0_srv interrupt 1 { TH0=55536/256; TL0=55536%256; count++; if(count==10) { flag=1;count=0; } } 2、模拟开关#include<reg51.h> sbit p30=P3^0; sbit p10=P1^0; void main {while(1) { if(p30==0)p10=0; elsep10=1; } }三、小结与体会通过本次实验学会了 I/O 口的使用,学会了延时子程序的编写和使用以及掌握了单片机编程器的使用和芯片烧写方法。

单片机实验报告二 单片机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口的输入输出实验

单片机实验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口的输入输出实验是非常重要的。

单片机io口控制led实验报告

单片机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的应用实验

单片机并行口IO的应用实验

单片机并行I/O口的应用实验一、实验目的1、熟悉Proteus软件和Keil软件的使用方法。

2、熟悉单片机应用电路的设计方法。

3、掌握单片机并行I/O口的直接应用方法。

4、掌握单片机应用程序的设计和调试方法。

二、实验内容或原理1、利用单片机并行I/O口控制流水灯。

2、利用单片机并行I/O口控制蜂鸣器。

三、设计要求1、用Proteus软件画出电路原理图。

要求在P1.0至P1.7口线上分别接LED0至LED7八个发光二极管,在P3.0口线上接一蜂鸣器。

2、编写程序:要求LED0至LED7以秒速率循环右移。

3、编写程序:要求LED0至LED7以秒速率循环左移。

4、编写程序:要求在灯移动的同时,蜂鸣器逐位报警。

四、实验报告要求1、实验目的和要求。

2、设计要求。

3、实验程序流程框图和程序清单。

4、电路原理图。

5、实验结果6、实验总结。

7、思考题。

五、思考题1、编程实现LED0至LED7以十六进制计数规律亮灯?参考实验图:程序参考:ORG 0000HLJMP MAINORG 00B0HLJMP LOOP1MAIN:MOV SP,#10HMOV A,#01HLOOP:MOV P1,ACLR P3.0LCALL DELAYRL ALJMP LOOPLOOP1:SETB P3.0MOV TH0,#3CHMOV TL0,#0B0HINC R2CJNE R2,#20,LOOP2CLR TR0LOOP2:RETIDELAY:MOV R2,#00HMOV TMOD,#01HMOV TH0,#0FCHMOV TL0,#03HSETB EASETB ET0SETB TR0DEL:CJNE R2,#20,DEL1LJMP DEL2DEL1:SJMP DELDEL2:RETEND(中断方式)ORG 0000HMOV R0,#2000MOV P1,#0FFHMOV A,#0FEHCPL ALOOP:MOV P1,AMOV P3,#01HLCALL DELRL A ;左移(右移用RR A)SJMP LOOPDEL:MOV SP,#10HMOV TMOD,#00HMOV TH0,#1EH MOV TL0,#0CH CLR EACLR ET0SETB TR0MOV P1,AMOV P3,#01HDEL1:JNB TF0,DEL1 CLR TF0MOV TH0,#1EH MOV TL0,#0CH MOV P3,#00H DJNZ R0,DEL1RETEND思考题参考:ORG 0000HMOV R1,#0FH MOV R0,#2000 MOV P1,#0FFH MOV A,#0FEHCPL ALOOP:MOV P1,A MOV P3,#01H LCALL DELINC ADJNZ R1,LOOP SJMP LOOPDEL:MOV SP,#10H MOV TMOD,#00H MOV TH0,#1EH MOV TL0,#0CH CLR EACLR ET0SETB TR0MOV P1,AMOV P3,#01HDEL1:JNB TF0,DEL1 CLR TF0MOV TH0,#1EH MOV TL0,#0CH MOV P3,#00H DJNZ R0,DEL1RETEND(查询方式)。

2 IO操作-基本

2 IO操作-基本
什么?
P4OUT是一个寄存器(Register),是用来设置
管脚输出电平的寄存器。
在单片机中,寄存器是单片机内置功能模块提 供的接口,单片机程序操作这些寄存器来实现对硬 件功能模块的控制。
I/O口基本操作
生物医学工程
I/O的寄存器
I/O口基本操作
生物医学工程
I/O口基本操作
生物医学工程
发光二极管
LED
电压?
电压?
I/O口基本操作
生物医学工程
数字电路中的电压
输出 5V CMOS 0 1 0V 5V 5V TTL 0V 3.4V 3.3V MCU 0V 3.3V RS232 3~15V -3~-15V
I/O口基本操作
生物医学工程
数字电路中的电压
输入 5V CMOS 0 1 <1.3V >3.1V 5V TTL <0.8V >2V 3.3V MCU <0.6V >2.6V RS232 3~15V -3~-15V
}
I/O口基本操作
生物医学工程
发光二极管
器件简介
LED
LED,Light Emitting Diode,发光二极管,是一种能够将电能转 变为可见光的固态半导体器件。
最常见的是红光、绿光LED,还有如:黄色、蓝色、白色LED。 LED的正向压降在1.4V~3V之间,小功率LED一般为1.8V左右。
LED的正向工作电流一般在几毫安到几十毫安。
I/O的基本结构
I/O口基本操作
生物医学工程
I/O的基本操作
当作为输出时
当作为输入时
P1SEL.x=0; P1DIR.x=1; P1OUT.x控制输出的电平
P1SEL.x=0; P1DIR.x=0; P1IN.x获取输入的电平 P1SEL.x=0; P1DIR.x=0; P1IE.x=1;允许管脚中断 P1IES.x选择中断的触发沿 P1IFG.x是中断标志

单片机课后习题答案(《单片机应用技术》C语言版)

单片机课后习题答案(《单片机应用技术》C语言版)

单片机课后习题答案(《单片机应用技术》C语言版)单片机课后习题答案《单片机应用技术》C语言版1. 实验一:单片机概述与开发环境搭建题目一:简述单片机的概念及其优势。

答案:单片机是一种集成电路,具有微型化、低功耗、低成本等优势。

它可以独立完成各种任务,广泛应用于嵌入式系统中。

题目二:描述单片机开发环境的搭建步骤。

答案:单片机开发环境的搭建步骤如下:1) 安装C语言编译器;2) 安装单片机开发工具;3) 配置单片机开发环境;4) 创建工程并编写程序;5) 编译、下载并运行程序。

2. 实验二:基本IO口操作题目一:使用C语言编写程序,将P0口的四个引脚连接到四个LED灯,实现依次点亮、逐个点亮、全亮和全灭功能。

答案:代码如下:```c#include <reg52.h>#define uchar unsigned charvoid delay(uchar t) {while (t--);}void main() {P0 = 0xfe; // 1111 1110,点亮第一个LED delay(60000);P0 = 0xfd; // 1111 1101,点亮第二个LED delay(60000);P0 = 0xfb; // 1111 1011,点亮第三个LED delay(60000);P0 = 0xf7; // 1111 0111,点亮第四个LED delay(60000);P0 = 0xff; // 1111 1111,全亮delay(60000);P0 = 0x00; // 0000 0000,全灭while (1);}```题目二:编写程序,通过P1口的第0~3引脚接收外部开关信号,并通过P2口的0~3引脚控制LED灯的亮灭状态。

答案:代码如下:```c#include <reg52.h>#define uchar unsigned charvoid delay(uchar t) {while (t--);}void main() {uchar temp;while (1) {temp = P1 & 0x0f; // 获取P1口低4位的值P2 = ~temp; // 反转temp后赋值给P2口delay(60000);}}```3. 实验三:中断与定时器题目一:利用定时器0中断,编写程序实现一个1s的计时器,并在数码管上显示计时器的值。

2单片机IO口控制实验实验报告

2单片机IO口控制实验实验报告
(6)EX0:外部中断0中断允许位。
MCS-51复位后,IE清0,所有中断请求被禁止。
若使某一个中断源被允许中断,除了IE相应的位的被置“1” ,还必须使EA位=1。
改变IE的内容,可由位操作指令来实现,即:
SETB bit;
CLR bit。
b、中断优先级寄存器IP
两个中断优先级,可实现两级中断嵌套。
归纳为两条基本规则:
(1)低优先级可被高优先级中断,反之则不能。
(2)同级中断不会被它的同级中断源所中断。
若CPU正在执行高优先级的中断,则不能被任何中断源所中断。
中断优先级寄存器IP,其字节地址为B8H。
IP各个位的含义:
(1)PS——串行口中断优先级控制位
1:高优先级中断;
0:低优先级中断。
(2)PT1——定时器T1中断优先级控制位
15、中断控制:
a、中断允许寄存器IE
CPU对中断源的开放或屏蔽,由片内的中断允许寄存器IE控制。字节地址为A8H,可位寻址。格式如下:
IE对中断的开放和关闭为两级控制
总的开关中断控制位EA(IE.7位):
EA=0,所有中断请求被屏蔽。
EA=1,CPU开放中断,但五个中断源的中断请求是否允许,还要由IE中的5个中断请求允许控制位决定。
11、MCS-51的中断系统:
单片机能及时地响应和理单片机外部事件或内部事件所提出的中断请求。
对事件的整个处理过程,称为中断处理(或中断服务)。
12、五个中断请求源:
(1)INT0*—外部中断请求0,由引脚INT0*输入,中断请求标志为IE0。
(2)INT1*—外部中断请求1,由引脚INT1*输入,中断请求标志为IE1。
为保证引脚上的信号能正确读入,在读入操作前应首先向锁存器写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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

姓名:ﻩ学号:ﻩ日期:
实验二单片机I/O口的使用
一、实验名称:单片机I/O口的使用
二、实验目的
ﻩ1.掌握在Keil环境下建立项目、添加、保存源文件文件、编译源程序的方法;
2.掌握运行、步进、步越、运行到光标处等几种调试程序的方法;
ﻩ3.掌握在Proteus环境下建立文件原理图的方法;
4.实现Proteus与Keil联调软件仿真。

三、使用仪器设备编号、部件及备件
ﻩ1.实验室电脑;
2.单片机实验箱。

四、实验过程及数据、现象记录
ﻩ1.在Proteus环境下建立如下仿真原理图,并保存为文件;
ﻩ原理图中常用库元件的名称:
ﻩ无极性电容:CAPﻩ极性电容:CAP-ELECﻩ单片机:AT89C51ﻩ
晶体振荡器:CRYSTALﻩ电阻:RES ﻩﻩ按键:BUTTON
发光二极管:红色LED-RED 绿色LED-GREEN蓝色LED-BLUE黄色LED-YELLOW
2.在Keil环境下建立源程序并保存为.ASM文件,生成.HEX文件;
ﻩ参考程序如下:
ﻩﻩORG 0000H
ﻩLJMP MAIN
ﻩﻩORG 0100H
MAIN: MOV A,# H
LOOP: MOV P2,A

CALL DELAY
ﻩﻩSJMP LOOP
DELAY:ﻩMOV R1,# H
DL1:ﻩMOV R2,# H
DL2:ﻩMOV R3,# H
ﻩﻩDJNZ R3,$
DJNZR2,DL2
ﻩDJNZR1,DL1
RET
ﻩﻩEND
ﻩ将以上程序补充完整,流水时间间隔为50ms。

3.将.HEX文件导入仿真图,运行并观察结果;
4.利用Keil软件将程序下载至实验箱,进行硬件仿真,观察实验结果。

五、实验数据分析、误差分析、现象分析
现象:进行软硬件仿真时,观察到8支LED发光二极管流水发光。

六、回答思考题
ﻩ1.如何让改变流水方向?
ﻩ2.若将R3至R10上拉电阻省略,8支LED还能正常发光吗?
ﻩ3.如果将LED接到P0口与接到P2口硬件设计时应注意什么问题?
Keil软件建立项目的方法:
1.新建项目
2.新建文件
3.添加文件
4.设置选项
5.重建所有目标文件
6.调试仿真。

相关文档
最新文档