I-O口控制实验复习过程
- 格式:doc
- 大小:101.00 KB
- 文档页数:7
实验三单片机I/O口控制实验一、实验目的利用单片机的P1口作I/O口,学会利用P1口作为输入和输出口。
二、实验设备及器件PC机一台单片机仿真器、编程器、实验仪三合一综合开发平台一台三、实验内容1.编写一段程序,用P1口作为控制端口,使D1区的LED轮流亮。
2.编写一段程序,用P1.0~P1.6口控制LED,P1.7控制LED的亮和灭(P1.7接按键,按下时LED亮,不按时LED灭)。
四、实验要求学会使用单片机的P1口作为I/O口,如果有时间用户也可以利用P3口作I/O口来做该试验。
五、实验步骤1.用导线把A2区的J61接口与D1区的J52接口相连。
原理如图所示。
2.先编写一个延时程序。
3.将LED轮流亮的程序编写完整并使用TKStudy ICE仿真器调试运行。
4.使用导线把A2区的J61接口的P1.0~P1.6与D1区的J52接口的LED1~LED7相连,另外A2区J61接口的P1.7与D1区的J53的KEY1相连。
原理如上图所示。
5.编写P1.7控制LED的程序,并调试运行。
(按下K1看是否全亮)6.A2区J61接口的P1.7与D1区的J54的SW1相连。
然后再使用TKStudy ICE仿真器运行程序,查看结果。
六、实验预习要求仔细阅读实验箱介绍中的各个接口内容,理解该实验的硬件结构。
还可以先把程序编好,然后在Keil C51环境下进行软件仿真。
七、实验参考程序程序1:ORG 0000HLJMP MainORG 0100HMain: MOV A,#0FFHCLR C MainLoop:CALL DelayRLC AMOV P1,ASJMP MainLoop Delay:MOV R7, #0 Loop:MOV R6, #0DJNZ R6, $DJNZ R6, $DJNZ R6, $DJNZ R7, LoopRETEND程序2:ORG 0000HLJMP MainORG 0100HMain: JB P1.7,SETLED CLRLED:CLR P1.0CLR P1.1CLR P1.2CLR P1.3CLR P1.4CLR P1.5CLR P1.6SJMP Main SETLED:SETB P1.0SETB P1.1SETB P1.2SETB P1.3SETB P1.4SETB P1.5SETB P1.6SJMP MainEND八、实验思考题(1)请同学们思考一下,还可以用哪些其它的方法编程能够实现以上功能。
a b cde f gh(dp) 实验二 I/O 口输入、输出实验一、实验目的1. 学习I/O 口的使用方法。
2. 学习延时子程序、查表程序的编写和使用。
二、实验说明本实验1通过单片机的I/O 口控制LED 的亮灭,从而观察I/O 口的输出。
实验2通过单片机的I/O 口接受按键动作信息,然后通过LED 和数码管指示。
通过本实验学生可以掌握单片机I/O 口输入输出的控制方法,同时也可以掌握单片机延时子程序、查表程序的编写和调试方法。
要求预先编写好程序并通过伟福仿真软件调试。
三、实验内容1、P0口做输出口,接八只LED (L1—L8),编写程序,使LED 循环点亮,间隔0.5秒。
2、P1.0--P1.7作输入口接拨动开关K1—K8;P0.0--P0.7作输出口,接发光二极管L1—L8,编写程序读取开关状态,将此状态在对应的发光二极管上显示出来,同时将开关编号(1—8)显示在共阴极LED 数码管上。
编程时应注意P1作为输入口时应先置1,才能正确读入值。
四、实验电路连线P0.0 ---- L1 P1.0 ----- K1 P0.1 ---- L2 P1.1 ----- K2 P0.2 ---- L3 P1.2 ----- K3 P0.3 ---- L4 P1.3 ----- K4 P0.4 ---- L5 P1.4 ----- K5 P0.5 ---- L6 P1.5 ----- K6P0.6 ---- L7 P1.6 ----- K7 P0.7 ---- L8 P1.7 ----- K8实验1:P0口循环点灯 实验2:P1、P0口输入输出a b c d e f g h(dp)P2.0P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7实验2: 共阴极LED 数码管各段与I/O 的连接五、实验仪器和设备PC 机、WA VE 软件、仿真器+仿真头、实验板、电源等。
六、参考程序框图P1口输入/输出框图七、思考题1、实验1欲改变LED循环的方向程序应如何修改?循环的时间间隔由什么决定?写出间隔时间为1秒的延时程序并说明计算方法。
电子科技大学中山学院学生实验报告学院:机电工程专业:课程名称:单片机原理与接口技术实验班级:姓名:学号:组别:实验名称:实验二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个独立按键可用于电机控制命令的输入。
简单I/O实验(交通灯控制)
一.实验要求
以74LS273作为输出口,控制4个双色LED灯(可发红,绿,黄光),模拟交通灯管理。
二.实验目的
1.学习在单片机系统中扩展简单I/O接口的方法。
2.学习数据输出程序的设计方法。
3.学习模拟交通灯控制的方法。
4.学习双色灯的使用。
三.实验电路及连线
四.实验说明
1.因为本实验是交通灯控制实验,所以要先了解实际交通灯的变化规律。
假设一个十字路口为东西南北走向。
初始状态0为东西红灯,南北红灯。
然后转状态1南北绿灯通车,东西红灯。
过一段时间转状态2,南北绿灯闪几次转亮黄灯,延时几秒,东西仍然红灯。
再转状态3,东西绿灯通车,南北红灯。
过一段时间转状态4,东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯。
最
后循环至状态1。
2.双色LED是由一个红色LED管芯和一个绿色LED管芯封装在一起,公用负端。
当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。
五.实验框图
程序框图:
TRLED1.ASM主程序框图。
实验一 I/O控制实验1.实验目的① 掌握基本IO输入输出操作指令;② 熟练运用keil环境对硬件接口进行调试。
2.预习要求① 理解51单片机IO的输入、输出控制方式;理解P0、P1、P2、P3口做为普通的IO口有何区别。
② 理解实现软件延时程序设计的延时时间估算;③ 认真预习本节实验内容,设计出器件之间的实验连接线,自行编写程序,填写实验报告。
3.实验设备计算机1台;ZDGDTH-1型80C51实验开发系统1套;2号导线4条;8P数据线1条。
4.基础型实验内容① 8位逻辑电平显示的接口电路设计如图1-1所示,用P1口做输出口,接八位逻辑电平显示,程序功能使发光二极管从右到左轮流循环点亮。
用8P数据线将D2区80C51/C8051F020MCU模块的 JD1(P1口)与A5区8位逻辑电平显示模块JD1A5相连。
在Keil环境运行该程序,观察发光二极管显示情况。
图1-1 8位八位逻辑电平显示接口电路LOOP: MOV A, #0FEHMOV R2,#8OUTPUT: MOV P1,ARL AACALL DELAYDJNZ R2,OUTPUTLJMP LOOPDELAY: MOV R6,#0 ;延时程序MOV R7,#0DELAYLOOP: DJNZ R6,DELAYLOOPDJNZ R7,DELAYLOOPRETEND② 8位拨动开关的接口电路设计如图1-2所示,假设采用P1口控制LED显示,P2口接收拨码开关的输入值,用8P数据线将D2区80C51/C8051F020MCU模块的 JD1(P1口)、JD1(P2口)分别与A5区八位逻辑电平显示模块JD1A5、C6区8位拨动开关模块JD1 C6相连。
在Keil环境运行该程序,观察实验结果。
图1-2 拨码开关接口电路ORG 0000HLL: MOV P2,#0FFHNOPMOV A, P2NOPMOV P1,ALJMP LLEND③ 如图1-3所示,假设采用P1.0口控制外部LED,拨动开关控制外部中断,用二号导线将D2区80C51/C8051F020MCU模块的 P1.0、P3.2口分别与A5区八位逻辑电平显示模块的L0、C8区单次脉冲输出相连。
实验一简单I/O口扩展一、实验目的1.学习单片机系统中扩展简单I/O口的方法。
2.学习数据输入输出程序的编制的方法。
二、实验内容利用74LS244作为输入口,读取开关状态,通过74LS273再驱动发光二极管显示出来。
三、电路原理图1.程序流程2.实验电路图四、程序清单CODE SEGMENTCS:CODE,DS:CODE,ES:CODEORG 3380H ;273,244PIO1 EQU 0FFE0HPIO2 EQU 0FFE4HP4: MOV DX,PIO1IN AL,DXMOV DX,PIO2OUT DX,ALJMP P4CODE ENDSEND P4五、实验步骤1、实验连线⑴74LS244的输入端PI0-PI7接K1-K8,74LS273的输出端PO0-PO7接L1-L8。
用8芯扁平电缆将I/O IN区、I/O OUT区的数据总线插座与数据总线单元任一插座相连。
⑵连接138译码输入端A.B.C,其中A连A2,B连A3,C连A4,138使能控制输入端G 与总线单元上方的GS相连。
⑶74LS02门电路的①脚接缓冲输出单元的CLK,02门电路②脚接系统单元IOW,02门电路的③脚接译码单元的Y1;02门电路的④脚与⑨脚相连,02门电路的的⑤脚接译码单元的Y0,02门电路⑥脚接系统单元IOR,02门电路的⑧脚接GND,02门电路的⑩脚接缓冲输入单元的G。
2、LED环境(1)在“P.”状态下按“0→EV/UN”,装载实验所需的代码程序。
(2)在“P.”状态下键入3380,然后按“EXEC”进入实验项目的运行。
3、PC环境在与PC联机状态下,编译、连接、下载PH88.asm,用连续方式运行程序。
4、观察运行结果以连续方式运行程序,拨动K1-K8,观察L1-L8点亮情况。
5、终止运行按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出该程序的运行返回监控状态。
六、实验心得本次实验学习了单片机系统中扩展简单I/O口的方法,掌握了扩展简单I/O口的方法,学习数据输入输出程序的编制的方法。
简单的I/O端口实验报告一.实验目的和内容1.掌握三态门,锁存器构成简单I/O端口的原理及应用。
2.完成流水灯及其控制的编程实验。
二.实验电路及说明1.74ALS273锁存器的输出控制LED发光管的亮暗,1表示亮,0表示暗。
2.流水灯原理:K1和K2是八位拨动开关的1位和2位。
在这里试验中我设置了10为闪烁,00为从左到右,01为从右到左,11为退出。
即K1H,K2L闪烁;K1L,K2H从右至左;K1L,K2L从左到右。
(注:ON方向为L,OFF方向为H)三.具体步骤1.开始实验前,要先准备好实验器材,确保实验器材都是完整并且正常的。
器材有电脑和试验箱,电路线源。
2.现在启动了电脑,插上插头给试验箱通电,进入E盘,打开MFC标志所意味着的程序。
点击主键,在拉开的选项中点击八位拨动开关所对应的程序,用这个来检查我们的箱子是否是好的。
拨动开关,置向ON和OFF两个方向,每一个开关都要置好,然后一一对应电脑显示屏幕上的显示情况,如果每个都能用,且对应正常,就说明检查结果为良好。
3.依据流程图,用键盘写代码敲入电脑内存。
运行和调试。
4.其实验结果为依照程序所写的思想而变相显示在LED发光管的明暗上,闪烁、从左至右、从右至左都会显示出来。
四.具体设计1.头文件包含了#include"stdio.h",#include"dos.h",#include"math.h",#include"time.h"。
2.设计的函数为:void flash();void l_to_r();void r_to_l()。
注:本程序采用了C语言的方式,结合接口实验的内容来实现。
3.void main(){int x1,x2;while(1){x1=inportb(0x0c860)%2;x2=(inportb(0x0c860)%4)/2;if(x1==0&&x2==1) flash();if(x1==0&&x2==0) l_to_r();if(x1==1&&x2==0) r_to_l();else break;}}//主函数用于用户界面的使用和程序的执行。
昆明理工大学信息工程与自动化学院学生实验报告(2011 —2012 学年第 2 学期)课程名称:嵌入式技术基础与实验开课实验室:信自楼234 2012 年 5 月 10 日年级、专业、班自动化092 学号姓名成绩实验项目名称I/O口的实验指导教师教师评语教师签名:年月日注:报告内容按实验须知中七点要求进行。
一、实验目的1.熟悉MCU的第一个汇编/C程序框架结构。
2.掌握I/O口的编程方法。
3.了解最小系统的测试方法。
4.模仿小灯驱动程序,编写I/O口的开关程序5.了解源程序工程中添加新模块的方法。
二、实验原理及基本技术路线图(方框原理图)AW60 MCU的I/O口有A、B、C、D、E、F、G等7个端口能接收外界开关量信号MCU处理,也能将MCU内部的信号输出给外部设备,显示数据或者控制对象。
I/O口的使用涉及方向寄存器、上拉允许寄存器和数据寄存器。
(1)方向寄存器决定该口的引脚时输入还是输出。
(2)接收或发送信息的缓冲有数据寄存器完成。
(3)接收信息的正确与上拉允许寄存器有关,是否设置寄存器取决于外部电路。
若外部电路有上拉电阻可以不需要,否则MCU内部一定需要设置。
引脚的接线如下图3-1图3-1 I/O口引脚的连接图三、所用仪器、材料(设备名称、型号、规格等)飞思卡尔试验箱四、实验方法、步骤1、资源使用用B口的0号引脚连接小灯,用B口的1号引脚连接开关,开关通过MCU控制小灯,开关向上拨,小灯亮,开关向下拨,小灯暗,放在主循环中,则形成开关随时开,小灯随亮的效果。
2、硬件设计先阅读源程序,查看相应的端口的宏定义,再根据端口号来接线。
3、软件设计(主要的程序流程图)开关驱动程序流程图:4、编程(关键性程序段)用开关控制小灯亮暗主程序:#include "Includes.h" //在此添加全局变量定义void main(void){//1 关总中断DisableInterrupt(); //禁止总中断//2 芯片初始化MCUInit();//3初始化//3.1指示灯初始化Light_Init(Light_Run_PORT,Light_Run,Light_OFF);//3.2开关初始化Key_Init(Key_PORT,Key_Pin);//4 主循环while (1){i f(Get_Key_State(Key_PORT,Key_Pin)==Key_ON){Light_Control(Light_Run_PORT,Light_Run,Light_ON);}elseLight_Control(Light_Run_PORT,Light_Run,Light_OFF);}}2)指示灯驱动程序代码://-------------------------------------------------------------------------*// 文件名: Light.h// 说明: 指示灯驱动程序头文件//-------------------------------------------------------------------------*#ifndef Light_H //防止重复定义#define Light_H//1 头文件#include "GPIO.h" //包含GPIO头文件//2 灯控制宏定义//2.1 灯控制引脚定义#define Light_Run_PORT PORT_B //运行指示灯使用的端口#define Light_Run 7 //运行指示灯使用的引脚//2.2 灯状态宏定义#define Light_OFF 1 //灯亮(对应低电平)#define Light_ON 0 //灯暗(对应高电平)//3 灯控制相关函数声明//-----------------------------------------------------------------------*//函数名: Light_Init *//功能: 初始化指示灯状态* //参数: port:端口名* // name:指定端口引脚号*// state:初始状态,1=高电平,0=低电平*//返回: 无* //说明: 调用GPIO_Init函数* //-----------------------------------------------------------------------*void Light_Init(uint8 port,uint8 name,uint8 state);//-----------------------------------------------------------------------*//函数名: Light_Control *//功能: 控制灯的亮和暗* //参数: port:端口名*// name:指定端口引脚号* // state:状态,1=高电平,0=低电平*//返回: 无* //说明: 调用GPIO_Set函数* //-----------------------------------------------------------------------*void Light_Control(uint8 port,uint8 name,uint8 state);//-----------------------------------------------------------------------*//函数名: Light_Change *//功能: 状态切换:原来"暗",则变"亮";原来"亮",则变"暗" *//参数: port:端口名*// name:指定端口引脚号* //返回: 无* //说明: 调用GPIO_Get、GPIO_Set函数* //-----------------------------------------------------------------------*void Light_Change(uint8 port,uint8 name);#endif3)指示开关驱动程序代码://-------------------------------------------------------------------------*// 文件名: Key.h (指示开关驱动程序头文件) *//-------------------------------------------------------------------------*#ifndef Key_H //防止重复定义#define Key_H//1 头文件#include "GPIO.h" //包含GPIO头文件//2 开关控制//2.1 开关控制引脚定义#define Key_PORT PORT_A //B口#define Key_Pin 7 //引脚//2.2 开关状态宏定义#define Key_ON 0 //开关连通(对应低电平)#define Key_OFF 1 //开关断开(对应高电平)//2.3 开关控制相关函数声明//---------------------------------------------------------------------*//函数名: Key_Init *//功能: 初始化指示开关*//参数: port:端口名; *// name:指定端口引脚号; *//返回: 无*//---------------------------------------------------------------------*void Key_Init(uint8 port,uint8 name);//---------------------------------------------------------------------*//函数名: Get_Key_State *//功能: 获取开关的状态(断开还是连通) *//参数: port:端口名; *// name:指定端口引脚号; *//返回: 无*//---------------------------------------------------------------------*uint8 Get_Key_State(uint8 port,uint8 name);#endif五、实验过程原始记录(数据、图表、计算等)六、实验结果、分析和结论(误差分析与数据处理、成果总结等。
I-O口控制实验
单片机实验报告
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单片机中定时器/计数器的基本结构、工作原理和工作方式,掌握工作在定时器和计数器两种方式下的编程方法。
由于定时器和计数器在不同的工作方式下有不同的性质,因此学会选取恰当的工作方式十分重要。