单片机实验IO口的输入输出实验
- 格式:doc
- 大小:28.51 KB
- 文档页数:3
单片机的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口输入输出电平不稳定时,可能会导致外部设备无法正常工作。
单片机控制发光二极管实验报告发光二极管广东石油化工学院单片机实验一实验报告实验报告实验一发光二极管实验学院: 电信学院专业:班级学生学号:实验时间一、实验目的1、掌握AT89C51 单片机IO 口的输入输出。
2、掌握用查表方式实现AT89C51 单片机IO 口的控制。
3、练习单片机简单延时子程序的编写。
4、熟练运用Proteus 设计、仿真AT89C51 系统。
二、实验内容1、编写延时子程序,延时时间为0.1S。
代码:void delay(){int i, j;for (i = 0; i 100; i++)for (j = 0; j 125; j++);}2、见图一。
通过AT89C51 单片机控制8 个发光二极管发光,实现亮点以由上到下循环移动,间隔时间为0.1S。
代码:#includereg51.h#includeintrins.hvoid delay(){int i, j;for(i = 0; i 100; i++)for(j = 0; j 125; j++);}void main(){P1 = 0xFE;while(1){P1 (转载于: 写论文网:单片机控制发光二极管实验报告)= _crol_(P1,1);delay();}}运行结果截图:图一3、见图一。
通过AT89C51 单片机控制8 个发光二极管发光,循环实现亮点由上到下移动1 次(间隔时间为0.2S),由下到上移动1 次(间隔时间为0.2S),闪烁1 次(即先全亮0.1S,再全灭0.1S)。
代码:#includereg51.h#define uchar unsigned char#define uint unsigned intvoid delay(){uint i, j;for (i = 0; i 100; i++){for (j = 0; j 128; j++){//delay 100ms, do nothing.}}}void shangXia(){uchar k;P1 = 0xFE;for (k = 0; k 8; k++){delay();P1 = _crol_(P1,1);}}void xiaShang(){uchar k;P1 = 0x7F;for (k = 0; k 8; k++){delay();P1 = _crol_(P1,-1);}}void main(){while(1){shangXia();xiaShang();}}截图与题一相同,增加由下至上。
实验三流水灯实验(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”,对应的外部引脚则输出“低电平”、“高电平”。
51单片机IO引脚IO口工作原理一、IO引脚的基本特性1.输入与输出:IO引脚可以配置为输入(接收外部信号)或输出(发送信号到外部设备)。
2. 高低电平:IO引脚可以输出高电平(通常为Vcc电压)或低电平(通常为接地GND电压)。
3.上拉与下拉:IO引脚可以通过上拉电阻或下拉电阻实现电平的稳定。
4. 悬空状态:未配置输入的IO引脚可能处于悬空状态(floating),容易受到噪声的干扰。
二、IO口的工作原理1.寄存器配置:通过对相应的寄存器进行配置,可以选择IO引脚的工作模式(输入或输出)、电平(高或低)、上拉或下拉等。
2.IO端口的控制:通过对控制寄存器进行设置,可以使IO引脚产生相应的电平信号,控制外部设备的操作。
3.输入输出驱动能力:IO引脚的输出能力决定了其能够驱动的外部设备的负载能力。
对于较重的负载,需要考虑使用缓冲电路或者外部驱动芯片。
三、IO口的配置与操作1.选择IO引脚功能:通过寄存器配置,将IO引脚配置为输入模式(将输入电平传递给芯片内部)或输出模式(将芯片内部的电平输出到外部设备)。
2.设置电平状态:对于输出模式的引脚,可以通过寄存器来设置输出电平的状态,使其输出高电平或低电平。
3.上拉与下拉电阻:通过配置相关寄存器,可以启用上拉电阻(使引脚在悬空状态时拉高到高电平)或下拉电阻(使引脚在悬空状态时拉低到低电平)。
四、IO端口的应用1.输入:将外部设备的信号输入到IO引脚,通过编程来实现对信号的判断和处理。
例如,读取按键的状态、读取传感器的数据等。
2.输出:将芯片内部产生的信号输出到外部设备,用于控制和驱动外部设备的操作。
例如,控制LED灯的亮灭、控制继电器的开关等。
3.通信:通过IO引脚与其他设备(例如外围设备、传感器、通信模块等)进行通信。
4.扩展IO口:通过外部的IO扩展芯片或者接口芯片,可以扩展更多的IO口。
总结:51单片机的IO口是其与外部设备通信的接口,通过配置相关寄存器来选择引脚的工作模式、电平和电阻状态。
单片机IO口控制技术解析随着物联网和嵌入式系统的不断发展,单片机成为了一个不可或缺的电子元件。
在单片机的应用中,IO口控制技术起着重要的作用。
IO口是指单片机的输入输出端口,可以连接各种外部设备和传感器,实现数据的输入与输出。
本文将对单片机IO口控制技术进行详细的解析,包括IO口的基本概念、控制方式和应用案例等内容。
首先,我们来介绍一下单片机IO口的基本概念。
在单片机中,IO口通常是通过引脚来实现的。
每一个引脚都可以被配置成为输入或输出。
当配置为输入时,它可以接收来自外部的电信号,并将其转换为数字信号,供单片机进行处理。
当配置为输出时,它可以将数字信号转换为电信号,通过外部电路或设备进行输出。
接下来,我们将讨论单片机IO口的控制方式。
单片机IO口的控制方式通常有四种:输入、输出、上拉和下拉。
在输入模式下,IO口可以通过配置为浮空输入或带上下拉电阻的输入。
浮空输入表示该引脚处于高阻态,不连接到任何电路,可以接收外部信号。
而带上下拉电阻的输入可以将引脚拉高或拉低,通过改变引脚的电平状态实现不同的输入状态。
在输出模式下,IO口可以通过配置为推挽输出、开漏输出或双向引脚。
推挽输出是最常见的输出模式,它通过驱动引脚的电平来控制外部电路。
开漏输出通过开关一个外部电路来控制引脚的电平状态。
双向引脚可以同时作为输入和输出,实现双向通信。
上拉和下拉是单片机IO口控制的常见方式。
上拉是指引脚通过上拉电阻连接到正电源,当外部信号没有驱动这个引脚时,引脚的电平会被拉高。
下拉是指引脚通过下拉电阻连接到地,当外部信号没有驱动这个引脚时,引脚的电平会被拉低。
上拉和下拉可以在输入模式下使用,提高引脚的抗干扰能力。
除了基本的输入和输出控制方式,单片机IO口控制还可以实现一些特殊的功能。
比如,对IO口的控制可以实现定时器和计数器功能,用于计时和计数;它还可以实现中断功能,当IO口的电平状态发生变化时,可以触发中断请求,进行相应的处理;还可以通过IO口控制外部设备的操作,如驱动LED灯、读取按键状态等。
目录(版本 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教学实验系统第三版。
实验八、8155可编程并行I/O扩展接口实验一、实验目的1.熟悉8155并行接口芯片的基本工作原理及应用2.掌握单片机与8155的接口电路设计和编程二、实验设备1.仿真器2.8155可编程并行I/O扩展接口模块3.单片机最小系统模块4.数码管动态扫描显示模块5.矩阵式键盘模块三、实验要求连接单片机最小系统、8155扩展接口实验模块、数码管动态扫描显示模块、矩阵式键盘模块,要求在键盘按下时,8位LED动态显示器上最低位显示相应的字符,以前的各位字符向高位推进1位。
四、实验原理8155芯片内包含有256字节RAM,2个8位、1个6位的可编程并行I/O口,和1个14位定时器/计数器。
由于8155既具有RAM又具有I/O口,因而是单片机系统中最常用的外围接口芯片之一。
4.1引脚说明8155共40个引脚,采用了双列直插的封装,主要引脚功能如下:◆AD7—AD0:地址数据总线;单片机和8155之间的地址、数据、命令、状态信息都是通过它来传送的。
◆CE:片选信号线,低电平有效。
◆RD:存储器读信号线,低电平有效。
◆WR:存储器写信号线,低电平有效。
◆ALE:地址及片选信号锁存信号线,高电平有效。
在下降沿时将地址及片选信号锁存到器件中。
◆IO/M:IO接口与存储器选择信号线,高电平选择I/O,低电平选择存储器。
◆PA7—PA0:A口输出/输入线。
◆PB7—PB0:B口输出/输入线。
◆PC5—PC0:C口输出/输入或控制信号线,用作控制信号时其功能如下:◆PC0:A INTR(A口中断信号线)◆PC1:A BF(A口缓冲器满信号线)◆PC2:ASTB(A 口选通线)◆PC3:B INTR(B口中断信号线)图8-1 8155引脚与逻辑图◆PC4:B BF(B口缓冲器满信号线)◆PC5:BSTB(B 口选通线)表8-1 地址与寄存器映射◆TIMER OUT:定时器/计数器输出端;◆RESET:复位信号线。
◆8155引脚与逻辑如图8-1所示。
用寄存器点亮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单片机开发的相关知识和技能。
单片机原理及应用的实验报告1. 引言在现代电子领域中,单片机技术的应用越来越广泛。
单片机(Microcontroller)是一种集成电路芯片,具有完整的处理器系统和外围设备。
它拥有小巧、灵活和强大的特点,适用于各种嵌入式系统的设计和应用。
本实验报告旨在介绍单片机的原理及其在实际项目中的应用。
2. 单片机的原理单片机是一种嵌入式微处理器,通常由中央处理器(CPU)、存储器、输入输出接口(I/O)、定时器、串行通信接口等部分组成。
其原理如下:•中央处理器(CPU):单片机的核心部件,负责执行各种指令和算术逻辑运算。
•存储器:包括随机存储器(RAM)和只读存储器(ROM),用于存储程序和数据。
•输入输出接口(I/O):用于与外部设备进行数据交互,如控制LED 灯、读取传感器数据等。
•定时器:用于产生精确的时间延时和定时触发操作。
•串行通信接口:用于和其他设备进行串行数据通信。
3. 单片机的应用单片机具有广泛的应用领域,下面列举了几个常见的应用实例:1.家电控制系统:使用单片机可以实现对家电设备的智能控制,如空调温度控制、灯光调节等。
2.汽车电子系统:单片机在汽车电子控制单元(ECU)中,用于控制发动机、变速器、制动系统等。
3.工业自动化:单片机可以应用于工业自动控制系统,如生产线上的自动化控制、温度监控等。
4.电子游戏机:单片机在电子游戏机中用于处理游戏逻辑和玩家输入。
5.智能穿戴设备:使用单片机可以实现智能手表、智能眼镜等穿戴设备的功能。
4. 单片机实验为了更好地理解单片机的原理和应用,我们进行了以下实验:4.1 LED闪烁实验这个实验旨在通过编程控制单片机,使LED灯以一定的频率闪烁。
实验步骤: 1. 连接单片机和LED灯,将LED的正极连接到单片机的IO口,负极连接到接地。
2. 编写程序,配置IO口为输出模式,并设置IO口的高低电平来控制LED的亮灭。
3. 将程序下载到单片机,运行程序。
4. 观察LED是否按照预期频率闪烁。
单片机与键盘或按键接口设计与实现方法单片机与键盘或按键接口设计是嵌入式系统开发中常见的任务,它可以实现通过键盘或按键输入控制单片机的功能。
本文将介绍单片机与键盘或按键接口设计的基本原理和实现方法。
一、基本原理单片机与键盘或按键接口设计的基本原理是通过将键盘或按键连接到单片机的IO口,利用IO口的输入功能来获取输入信号,并进行相应的处理。
在接口设计中,常见的有行列式键盘接口和矩阵式键盘接口两种方式。
1. 行列式键盘接口行列式键盘接口是一种常见的键盘接口设计方式。
它将键盘的行线和列线通过矩阵的方式连接到单片机的IO口。
当按下某个键时,单片机通过扫描每一行或每一列的电平变化,来检测按键的触发信号。
通过扫描方式,可以确定按下的键是哪一个。
行列式键盘接口的设计步骤如下:(1)将键盘的行线和列线分别连接到单片机的IO口。
(2)将行线接入IO口的输出引脚,并设置为高电平输出状态。
(3)将列线接入IO口的输入引脚,并设置为上拉输入状态。
(4)单片机通过改变行线的输出状态,逐行扫描键盘。
具体方法是将某一行的输出引脚设置为低电平,然后扫描各列的输入引脚,检测是否有低电平表示某个键被按下。
2. 矩阵式键盘接口矩阵式键盘接口是另一种常见的键盘接口设计方式。
它将键盘的每一个按键连接到单片机的IO口,通过设置IO口的输入输出模式和状态来检测按键的触发信号。
矩阵式键盘接口的设计步骤如下:(1)将键盘的每一个按键分别连接到单片机的IO口。
(2)将IO口的输入输出模式设置为相应的模式,如输入模式或输出模式。
(3)设置IO口的状态,如上拉输入状态或输出高电平状态。
(4)根据需要,单片机不断扫描每一个IO口,检测按键的触发信号。
二、实现方法实现单片机与键盘或按键接口可以使用各种软件开发工具,如Keil、IAR等,配合相应的编程语言,如C语言或汇编语言。
下面分别介绍两种接口设计的实现方法。
1. 行列式键盘接口实现方法在行列式键盘接口设计中,需要设置IO口的输入输出状态和扫描方法。
.51系列单片机原理与应用实验华南师范大学物理与工程工程学院微机教研室20010年9月目录实验须知 (2)实验一数字量输入输出实验 (4)实验二交通灯控制实验 (6)实验三定时与中断实验 (8)实验四串行通信实验 (11)实验五串行A/D转换实验 (13)实验六现实人体视觉暂留特性测试实验 (14)实验七实时时钟制作实验 (17)实验八简易电子琴制作实验 (18)实验九 EEPROM应用—数字密码锁 (20)实验十综合实验:教学板自检程序设计 (25)实验十一数据采集—火灾报警装置的软硬件设计 (26)附录一实验教学板 (27)附录二实验用软件使用说明 (28)实验须知一、预习要求1.实验前认真阅读实验指导书的相关内容,明确实验目的和实验任务。
2.实验前应做好预习报告,在报告中,要求画出所设计的实验电路原理图、程序流程图,编写好程序,并对程序加以注释,还要拟订好实验步骤。
二、实验要求1.按实验中心安排的时间到指定实验室上实验课,不要迟到、缺席。
有特殊原因不能在原安排时间来实验时,须提前一天通知实验中心负责教师。
2.认真完成每次实验的各项任务,实验结果要请指导教师检查。
教师对实验内容提问,并对完成者进行记录。
3.爱护设备,保持清洁,不得在实验室内大声喧哗,不要将食物带入实验室,不擅自更换设备。
4.在实验箱(板)通电状态下,不要用手随意触摸电路板上除按键和开关以外的芯片等其它元器件。
,严禁带电操作,即所有接线、改线和拆线操作均应在不带电的状态下进行。
5.实验中若发生异常情况应立即切断电源,并向指导教师报告,检查原因,避免再次发生类似情况。
6.实验完毕,请整理好实验设备后再离开实验室。
三、实验报告要求实验报告必须使用实验报告专用纸,书写要工整、清楚,并在下一次实验时交给指导教师。
实验报告应包括以下内容:1.实验名称、实验人姓名、学号、班级、同组人姓名。
2.实验目的、任务(内容)。
3.各任务程序流程图、自编程序清单,对程序须给出适量注释(例如:变量和某些寄存器的作用,关键程序段的功能等)。
单片机IO端口工作原理在单片机内部,每一个IO端口都对应着一个寄存器,该寄存器称为IO口寄存器,用于控制该IO端口的输入输出状态。
IO口寄存器通常是一个8位或16位的寄存器,每一位对应一个IO端口。
单片机的IO端口工作原理如下:1.输入方式:当一些端口被设置为输入模式时,它可以接收外部信号。
在输入模式下,该端口的电平状态可以被单片机读取到。
通常通过设置IO口寄存器的相应位来控制端口的输入模式。
在输入模式下,可以通过查询或中断方式读取IO端口的状态。
2.输出方式:当一些端口被设置为输出模式时,它可以向外部设备发送信号。
在输出模式下,可以通过设置IO口寄存器相应位的值来控制端口的输出电平状态。
高电平和低电平对应着不同的输出状态,可以通过操作寄存器来改变IO端口的电平状态。
3.端口模式设置:针对每一个IO端口,单片机提供了相应的寄存器来设置其工作模式。
通常包括输入模式、输出模式、上拉模式和下拉模式等。
输入模式和输出模式可以通过设置IO口寄存器的相应位来实现,上拉模式和下拉模式则需要通过设置其他寄存器或器件来实现。
4.状态改变:在一些情况下,IO端口的状态可能发生改变,如按键按下、外部信号触发等。
这时候可以通过查询或中断的方式来获取IO端口的状态变化,然后进行相应的处理。
5.外部设备连接:IO端口通常通过引脚连接到外部设备,如按键、LED灯、LCD显示屏、电机等。
通过IO端口的输出控制可以实现对外部设备的控制,通过IO端口的输入可以获取外部设备的状态。
总之,单片机IO端口通过IO口寄存器进行控制,可以实现与外部设备的信息交换和控制。
通过设置端口的输入输出模式,可以实现数据的输入和输出。
通过查询或中断的方式,可以实时获取IO端口的状态变化。
通过连接外部设备,可以实现对其控制和监测。
实验一发光二极管实验一、实验目的1、掌握AT89C51 单片机IO 口的输入输出。
2、掌握用查表方式实现AT89C51 单片机IO 口的控制。
3、练习单片机简单延时子程序的编写。
4、熟练运用Proteus 设计、仿真AT89C51 系统。
二、实验原理1、单片机最小系统由单片机芯片、时钟电路以及复位电路构成。
2、I/O 口P0 口:8 位双向I/O 口。
在访问外部存储器时,P0 口可用于分时传送低8 位地址总线和8 位数据总线。
能驱动8 个LSTTL 门。
P1 口:8 位准双向I/O 口(“准双向”是指该口内部有固定的上拉电阻)。
能驱动4 个LSTTL门。
P2 口:8 位准双向I/O 口。
在访问外部存储器时,P2 口可用于高8 位地址总线。
能驱动4 个LSTTL 门。
P3 口:8 位准双向I/O 口。
能驱动4 个LSTTL 门。
P3 口还有第二功能。
P1 口作为输出口时与一般的双向口使用方法相同。
当P1 口用为输入口时,必须先对它置“1”。
若不先对它置“1”,读入的数据可能是不正确的。
三、设计步骤:【PROTEUS 电路设计】在ISIS 中进行电路图设计,发光二极管流水灯实验装置电路原理图如下图所示。
图一1、按照元件清单从PROTEUS 库中选取元器件,进行第2、3、4、5、6 步,完成原理图。
元件名称所属类所属子类AT89C51(单片机)Microprocessor ICs8051 Family RES(电阻)Resistors GenericRX8(8 排阻)Resistors Resistor Packs LED-YELLOW(黄色发光二极管)Optoelectronics LEDsCAP(电容)Capacitors GenericCAP-ELEC(电解电容)Capacitors Generic CRYSTAL(晶振)Miscellaneous-- SWITCH(按键)Switich&relays Switchs2、放置元器件;3、放置电源和地;4、连线;5、参照原理图进行元件属性设置;6、电气检查。
篇一:单片机实验报告——流水灯电子信息工程学系实验报告课程名称:单片机原理及接口实验项目名称:实验2 流水灯实验时间: 2011-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。
目录一、实验一 (1)二、实验二 (7)三、实验三 (11)四、实验四 (15)实验一定时/计数器验证实验一、实验目的熟悉定时/计数器T0的特点,学会合理选择定时方式并能根据具体情况结合软件的方式定时;二、实验设备及器件IBMPC机一台PROTEUS硬件仿真软件KeilC51;三、实验内容用AT89C51单片机的定时/计数器T0产生1s的定时时间,作为秒计数时间,当1s产生时秒计数加1;秒计数到60时,自动从0开始;四、实验要求要求采用Proteus软件实现上述实验;五、实验步骤1.打开ProteusISIS编辑环境,按照表1-1所列的元件清单添加元件;元件全部添加后,在ProteusISIS的编辑区域中按图1-1所示的原理图连接硬件电路;图1-1电路原理图2.根据参考程序绘出流程图,并辅以适当的说明;流程图如图1-2所示:图1-2程序流程图3.打开KeilμVision4,新建Keil项目,选择AT89C51单片机作为CPU,将参考程序导入到“SourceGroup1”中;在“OptionsforTarget”对话窗口中,选中“Output”选项卡中的“CreateHEXFile”选项和“Debug”选项卡中的“Use:ProteusVSMSimulator”选项;编译汇编源程序,改正程序中的错误;4.在ProteusISIS中,选中AT89C51并单击鼠标左键,打开“EditComponent”对话窗口,设置单片机晶振频率为12MHz,在此窗口中的“ProgramFile”栏中,选择先前用Keil生成的.HEX文件;在ProteusISIS的菜单栏中选择“File”→“SaveDesign”选项,保存设计,在ProteusISIS的菜单栏中,打开“Debug”下拉菜单,在菜单中选中“UseRemoteDebugMonitor”选项,以支持与Keil的联合调试;5.在Keil的菜单栏中选择“Debug”→“Start/StopDebugSession“选项,或者直接单击工具栏中的“Debug”→“Start/StopDebugSession”图标,进入程序调试环境;按“F5”键,顺序运行程序;调出“ProteusISIS”界面可以看到7段数码管显示从0~59s的计数值,每个数值显示1s,如图1-3所示;图1-3程序运行结果六、实验程序SECOND EQU 30HCOUNT EQU 31HORG 00HLJMP STARTORG 0BHLJMP INT_T0START: MOV SECOND,00HMOV COUNT,00HMOV DPTR,TABLECLR AMOV P0,AMOV P2,AMOV TMOD,00HMOV TH0,65536-50000/256MOV TL0,65536-50000MOD256SETB TR0SETB ET0SETB EAMOVIE,82HLJMP $INT_T0:MOV TH0,65536-50000/256MOV TL0,65536-50000MOD256INC COUNTMOV A,COUNTCJNE A,20,I2MOV COUNT,00HINC SECONDMOV A,SECONDCJNE A,60,I1MOV SECOND,00HI1: MOV A,SECONDMOV B,10HDIV ABMOVC A,A+DPTRMOV P0,AMOV A,BMOVC A,A+DPTRMOV P2,AI2: RETITABLE: DB 3FH,06H,5BH,4FH,66HDB 6DH,7DH,07H,7FH,6FHEND七、思考题1.罗列一下Proteus软件的能带给我们的好处,指出一点最能帮助你的地方;使用Proteus软件能使我们方便的搭建电路,同时在没有元器件的情况下进行便于仿真,方便我们在将程序写入单片机前确认运行是否正确,同时可在采购器件之前即可开始开发产品,而不必等到器件采购完后搭建电路才进行程序调试;2.用Proteus界面中的播放键运行仿真与KeilμVision4的环境中联调运行它们两者的区别在什么地方3.用Proteus界面中的播放键运行仿真仅可以观察运行结果,即程序运行在硬件表面上的表现;而联调的时候可以再Keil软件里查看各寄存器和存储器的状况,即硬件的内部情况;4.Keil软件软件仿真与Proteus的仿真对比;使用Proteus仿真可从硬件的角度观察仿真结果,使仿真结果更加形象直观,使我们可从硬件运行状态清楚的判断运行结果是否正确;而在Keil环境中则是从程序的角度通过观察程序中数据的变化来观察仿真结果,需要对程序运行结果充分了解;八、实验总结及相关问题通过本次实验了解了Ptoteus软件的使用方法,以及在掌握了Keil的使用方法下,学会了Proteus与Keil软件联调的方法;在用Proteus中由于忽略了要在总线处放置网络标号导致联调失败,最后通过观察发现数码管引脚电平无变化发现此问题,放置网络标号后运行仿真时数码管引脚电平发生变化可是数码管却没有变亮,经过多次检查接线,未发现接线错误后,觉得可能是软件本身错误,故将总线及数码管周围硬件线路重新绘制一遍后再次运行仿真及可得到图1-3的结果;实验二单片机I/O口控制实验一、实验目的利用单片机的P1口作IO口,使同学学会利用P1口作为输入和输出口;二、实验设备及器件IBMPC机一台DP-51PRO单片机仿真器、编程器、实验仪三合一综合开发平台一台三、实验内容1.编写一段程序,用P1口作为控制端口,使D1区的LED轮流亮;2.编写一段程序,用P1.0~P1.6口控制LED,P1.7控制LED的亮和灭P1.7接按键,按下时LED亮,不按时LED灭;四、实验要求学会使用单片机的P1口作IO口,如果有时间同学也可以利用P3口作IO口来做该实验;五、实验步骤1.用导线把A2区的J61接口与D1区的J52接口相连;原理如图2-1所示;图2-1实验二原理图2.先编写一个延时程序;延时程序见程序1子程序DELAY;3.将LED轮流亮的程序编写完整并使用TKStudyICE调试运行;LED轮流亮程序见程序1;调试运行结果:D1区LED轮流亮;4.使用导线把A2区的J61接口的P1.0~P1.6与D1区的J52接口的LED1~LED7相连,另外A2区J61接口的P1.7与D1区的J53的KEY1相连;5.编写P1.7控制LED的程序,并调试运行;按下K1看是否全亮;P1.7控制LED的程序见程序2;调试运行结果:按下P1.7后D1区LED全灭;6.A2区J61接口的P1.7与D1区的J54的SW1相连;然后再使用TKStudyICE运行程序,查看结果;P1.7控制LED的程序见程序2;调试运行结果:按下P1.7后D1区LED全亮;六、实验参考程序程序1:ORG 0000HLJMP MAINORG 0100HMAIN: MOV A,0FFHCLR CMAINLOOP:CALL DELAYRLC AMOV P1,ASJMP MAINLOOPDELAY: MOV R7,0LOOP: MOV R6,0DJNZ R6,$DJNZ R6,$DJNZ R6,$DJNZ R7,LOOPRETEND程序2:ORG 000HLJMP MAINORG 0100HMAIN: JB P1.7,SETLEDCLRLED:CLR P1.0CLR P1.1CLR P1.2CLR P1.3CLR P1.4CLR P1.5CLR P1.6SJMP MAINSETLED:SETB P1.0SETB P1.1SETB P1.2SETB P1.3SETB P1.4SETB P1.5SETB P1.6SJMP MAINEND七、实验思考题1.请同学思考一下,想出几个实现以上功能的编程方法;程序1可利用单片机的定时计数器通过选择定时计数器工作方式和预置初值设定延时时间,通过定时计数器产生的中断在中断程序中对A进行移位后输出至P1口;程序2可在判断P1.7高低电平后根据判断结果直接将80H或7F直接送P1口而不必逐位进行位操作;2.请同学再思考一下,第二个程序中如果使用KEY1作为外部中断控制LED的亮和灭时,程序应如何修改;此时将KEY1接/INT0口,在主程序中开启外部中断设置外部中断触发方式,通过中断服务子程序控制LED亮灭;程序如下所示:ORG 000HLJMP MAINORG 0003H ;中断服务程序LJMP SETLEDMAIN: MOV SP,40HSETB ET0 ;开外部中断CLR IT0 ;设置为电平触发SETB EACLRLED:CLR P1.0CLR P1.1CLR P1.2CLR P1.3CLR P1.4CLR P1.5CLR P1.6SJMP CLRLEDSETLED:SETB P1.0SETB P1.1SETB P1.2SETB P1.3SETB P1.4SETB P1.5SETB P1.6RETIEND八、实验总结及相关问题通过本次实验掌握了使用TKStudyICE进行硬件仿真调试的方法,在设置仿真器驱动程序声明时对C:\Keil目录下的Tools.ini文件添加描述时,由于添加的路径错误导致无法进行硬件仿真调试,修改为正确路径后方可在DEBUG窗口中的Use选项中找到对应的选项;使用TKStudyICE进行硬件仿真调试相比本学期的电子系统设计中用到的调试方法更快捷,使用更方便;与此同时,通过本次实验对单片机的I/O控制有了更深入的了接,同时加深入对单片机I/O编程的理解;实验三串转并I/O口实验一、实验目的熟悉并掌握串转并的I/O口扩展方法;二、实验设备及器件IBMPC机一台DP-51PRO单片机仿真器、编程器、实验仪三合一综合开发平台一台三、实验内容1.写程序,通过单片机的P1口控制74HC164的串行输入端口,实现串并转换;2.验证串并转换数据的正确性;四、实验要求熟悉串并转换芯片的工作原理,学会使用串并转换芯片扩展单片机的I/O口资源;表3-174HC164真值表五、实验步骤1.短接C5区JP10接口,将C5区J43接口与A2区J61接口的P10~P13对应相连CLK对P10等等;如图3-1所示;图3-1实验三原理图2.运行编写好的软件程序,完成一次串并转换;实验程序见实验参考程序;2.使用C2区的逻辑笔或D1区的J52接口LED指示灯测试并行输出数据Q0~Q7数据的正确性;调试运行结果:通过观察LED的亮灭情况可判断完成一次串并转换,且转换结果正确无误;六、实验参考程序CLK EQU P1.0DINA EQUP1.1DINB EQU P1.2CLR164 EQUP1.3ORG 0000HLJMP MAINORG 0100HMAIN: MOV SP,60HNOPCLR CLKSETB DINBCLR CLR164SETB CLR164MOV A,0FFHMOV R4,08HSLCHG: RLC AMOV DINA,CSETB CLKNOPCLR CLKNOPDJNZ R4,SLCHGSJMP$END七、实验思考题参考图3-2电路图,尝试编写软件程序,实现8位LED流水灯的控制;图3.2实验原理图可利用单片机的定时计数器通过选择定时计数器工作方式和预置初值设定延时时间,通过定时计数器产生的中断在中断程序中对A进行移位;程序如下所示:CLK EQU P1.0DINA EQUP1.1DINB EQU P1.2CLR164 EQUP1.3ORG 0000HLJMP MAINORG 000BH ;定时器0中断服务程序LJMP SLCHGMAIN: MOV SP,60HNOPCLR CLKSETB DINBCLR CLR164SETB CLR164MOV A,0FFHMOV TMOD,01H ;定时器0工作方式1MOV TH0,18H ;送2ms时间常数MOV TL0,0FCHSETB TR0 ;开中断SETB ET0SETB EASJMP $SLCHG: MOV TH0,18HMOV TL0,0FCHRLC AMOV DINA,CSETB CLKNOPCLR CLKRETIEND八、实验总结及相关问题由于具有之前实验的基础所以本实验基本没碰到什么问题,调试运行都符合实验要求,通过本次实验对串并转化程序的编写有了一定了解,通过编写流水灯程序加深了对单片机串并口的了解;实验四继电器控制实验一、实验目的加深理解继电器的工作原理和特点,掌握利用单片机的IO口控制继电器的一般方法;二、实验设备及器件IBMPC机一台DP-51PRO单片机仿真器、编程器、实验仪三合一综合开发平台一台三、实验内容1.利用D1区的拨动开关和LED,学习继电器的工作原理和特点;2.编写一段程序,用P1.0口控制继电器,继电器控制LED的亮和灭,COM与CLOSE连通时,一盏LED亮;不连通时该LED灭;COM与OPEN连通时,另一盏LED亮,不通时该LED灭;四、实验要求学会继电器的使用和利用单片机的IO口控制继电器的方法;五、实验步骤图4-1继电器驱动控制电路图1.用短路帽短接JP7,使用导线把D1区J54接口的SW1与C7区J9接口的KJ任意一根针相连接;2.使用导线把D1区J52接口的LED1、LED2与C7区J103接口的OPEN1,CLOSE1分别相连,另外C7区J103接口的COM1接地GND;3.接好线后,同学可以拨动D1区的SW1拨动开关,观察现象拨到1时LED2亮,拨到0时LED1亮,并得出结论;运行结果:拨到1时LED2亮,拨到0时LED1亮,说明每拨动一次开关改变一次继电器的状态;4.然后把C7区J9接口的KJ改接到A2区的J61接口的P10;再编写一个程序程序参考实验二,使P1.0口延时一段时间后改变电平值,来控制继电器的开关;实验程序见实验参考程序;调试运行结果:两个LED交替变亮,继电器状态不断改变;六、实验参考程序ORG 0000HLJMP MAINORG 0100HMAIN: MOV R7,0LOOP: MOV R6,0DJNZ R6,$DJNZ R6,$DJNZ R6,$DJNZ R7,LOOPCPL P1.0SJMP MAINEND七、实验思考题1.请同学思考一下,改由OPEN2、COM2、CLOSE2时本实验如何进行;同使用OPEN1、COM1和CLOSE1时连接方法类似,把D1区J52接口的LED1、LED2与C7区J103接口的OPEN2,CLOSE2分别相连,另外C7区J103接口的COM2接地GND即可;2.请同学再思考一下,继电器的用途,并举例说明;继电器是一种电控制,是当输入量激励量的变化达到规定要求时,在电气输出电路中使被控量发生预定的阶跃变化的一种电器;它具有又称输入回路和被控制系统又称输出回路之间的互动关系;通常应用于自动化的控制中,它实际上是用小电流去控制大电流运作的一种“自动开关”;故在电路中起着自动调节、安全保护、转换电路等作用;按照其工作原理可有以下应用:电磁继电器固体继电器温度继电器舌簧继电器时间继电器高频继电器极化继电器其他类型的继电器八、实验总结及相关问题由于具有之前实验的基础所以本实验基本没碰到什么问题,调试运行都符合实验要求,通过本次实验了解了继电器的控制方法;对继电器这一器件有了一定了解;。
《单片机原理及应用》课程实验指导书一、实验目的《单片机原理及应用》课程实验是电子信息工程专业的一门专业基础课实验,是本专业学生获得单片机知识的开端。
要求学生通过本课程实验,具备利用单片机技术解决实际控制问题的能力。
培养与提高学生科学实验的能力,动手实践能力、理论联系实际的能力、自学能力、从简单的设计到综合的应用能力和创新能力。
通过实验的训练,使学生掌握《单片机原理及应用》实验的基本方法和基本技能,加深对单片机知识的理解,掌握单片机应用系统设计方法,为今后的工作打下良好的基础。
二、实验设备及器件PC机一台DP-51PROC单片机综合仿真实验仪一台示波器一台电阻若干电容若干导线若干三、实验内容本实验共8个实验内容:实验一仿真实验仪的操作使用练习实验二单片机I/O口控制实验实验三蜂鸣器驱动实验实验四电子琴实验实验五定时器输出PWM实验实验六直流电机实验实验七点阵LED 扫描输出实验实验八串口通信实验*详细指导内容请见附录。
四、实验考核、成绩评定考核方法:设计过程中检查学生实际操作能力,根据课程设计内容要求,设计相关程序, 指导书中所给代码仅供参考,要求学生独立进行整体程序设计,教师要检查学生的运行步骤及结果。
成绩评定:实验成绩根据考勤、实验态度、动手能力、创新能力和实验报告来综合评定,实验成绩计入课程平时成绩,占总成绩的20%。
五、参考资料1、DP-51PROC实验指导书(实验设备配套指导资料),2007年.2、李广第.等单片机基础.北京航空航天大学出版社,2005年.3、蒋辉平等.基于Proteus的单片机系统设计与仿真实例,2012年.六、实验报告格式要求按学院实验报告统一格式报告内容包括:实验目的与要求、实验步骤、程序流程图和实验程序、实验步骤和实验结论。
附录——详细指导内容第一次实验(4学时)实验一仿真实验仪的操作使用练习一.实验目的和要求熟悉Keil C51 集成开发环境调试功能的使用和DP-51PROC 单片机综合仿真实验仪的使用。
百度文库
1
实验二 I/O口输入、输出实验
一、实验目的
1. 学习I/O口的使用方法。
2. 学习延时子程序、查表程序的编写和使用。
二、参考程序框图
三、程序设计
1、P0口循环点亮程序
ORG 0030H
START : MOV P2,#00H; O口初始化
MOV P1,#0FFH; //P1口赋FFH初值
MOV P0,#00H;
开始
延时
设置初始值
数据输出
左移一位
开始
读入P1口值
置计数初值=0
P1口置1
将读入的值输出到P0
P1=0FFH?
Y
N
输入值右移1位到Cy
Cy=0?
N
计数值+1
Y
以计数值查段码表
段码输出到P2
百度文库
2
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; //跳转到LP
LL2 : 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是否按下
MOV P2,#66H;
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;
百度文库
3
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;
MOV P0,A;
LCALL DELAY;
LP : AJMP START; //跳转回程序开头
DELAY : MOV R7,#01H; //延时程序
DE1 : MOV R6,#28H;
DE2 : MOV R5,#5AH;
DJNZ R5,$;
DJNZ R6,DE2;
DJNZ R7,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或者。
单片机上电时I/O口出于高电平,则I/O口的输出电压要经过PNP三极管放大,再对继
电器控制。