当前位置:首页 > 专题范文>公文范文> 正文

gpio控制流水灯实验报告总结5篇

木木文档网 发表于:2022-11-25 12:20:23 来源:网友投稿

gpio控制流水灯实验报告总结5篇gpio控制流水灯实验报告总结  修改源程序实现修改源程序实现修改源程序实现ledledled的各种不同移动闪烁效果的各种不同移动闪烁效果的各种不同移动闪烁效果lpc下面是小编为大家整理的gpio控制流水灯实验报告总结5篇,供大家参考。

gpio控制流水灯实验报告总结5篇

篇一:gpio控制流水灯实验报告总结

  修改源程序实现修改源程序实现修改源程序实现ledledled的各种不同移动闪烁效果的各种不同移动闪烁效果的各种不同移动闪烁效果lpclpclpc系列处理器系列处理器系列处理器gpiogpiogpio口的原理口的原理口的原理pinselxpinselxpinselx管脚功能选择寄存器管脚功能选择寄存器管脚功能选择寄存器iopiniopiniopinxgpiogpiogpio引脚值寄存器引脚值寄存器引脚值寄存器iosetiosetiosetxgpiogpiogpio输出置位寄存器输出置位寄存器输出置位寄存器iodiriodiriodirxgpiogpiogpio方向控制寄存器方向控制寄存器方向控制寄存器ioclrioclrioclrxgpiogpiogpio输出清零寄存器输出清零寄存器输出清零寄存器222实验电路原理图实验电路原理图实验电路原理图实验电路的连接如下图实验电路的连接如下图实验电路的连接如下图44个个个ledledled是利用是利用是利用lpc1368lpc1368lpc1368的gpiogpiogpio口的p114p114p114到到到p117p117p117来控制来控制来控制的

  控制流水灯流水灯实验实验1、GPIO控制流水灯实验

  【实验目的】实验目的】1、学习LPC系列处理器GPIO口的使用方法;2、学习用Keil软件开发ARM程序方法和步骤。3、理解基于ARM内核的LPC2368实验开发平台的管脚链接及原理。(实验原理图见文件夹下PROTEL文件夹)4、掌握使用J——LINK下载程序的方法。(驱动程序和使用手册见J—LINK仿真器文件夹)【实验要求】实验要求】1、了解LPC系列处理器GPIO口的功能原理;2、在Keil中设计ARM程序,实现对流水灯的控制;3、下载到实验平台,并成功运行。4、附加要求:修改源程序,实现LED的各种不同移动、闪烁效果【实验原理】实验原理】1、LPC系列处理器GPIO口的原理PINSEL(x)管脚功能选择寄存器

  IOPIN(x)GPIO引脚值寄存器IOSET(x)GPIO输出置位寄存器IODIR(x)GPIO方向控制寄存器

  IOCLR(x)GPIO输出清零寄存器2、实验电路原理图实验电路的连接如下图,4个LED是利用LPC1368的GPIO口的P1.14到P1.17来控制的。引脚输出高电平则LED点亮,输出低电平则LED熄灭(因为LED的另一端接地)。

  对管脚的操作实际上就是对控制管脚寄存器的操作,所以可以通过对管脚寄存器的操作,实现管脚的不同输出(即高低电平),从而控制LED的状态(亮、灭)。#include<LPC23xx.h>

  #definep14_17(0x0f<<14)

  //指定P1.14到p1.17口

  constunsignedcharLED[]={0x0e,0x0d,0x0b,0x07,0x0b,0x0d};//流水灯控制数组

  voidDelay(unsignedlongt){while(t--);}

  //延时函数

  intmain(){inti;IODIR1|=p14_17;//选择p14_17的方向为输出IOCLR1|=p14_17;//p14_17输出低电平,使所有的灯都灭while(1){for(i=0;i<6;i++){IOCLR1|=p14_17;//每次给p14_17赋值都要将管脚先清零,保证写入正确

  IOSET1=(LED[i]<<14);//将数组内容左移14位到p14_17口Delay(10000000);}}}//延时保证灯的状态停留一段时间,否则无闪烁效果

  

  

篇二:gpio控制流水灯实验报告总结

  实验二

  一、实验目的:

  1.正确安装keil软件

  IO口实现LED灯闪烁

  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寄存器其位域定义如表所列。

  位域符号描述

  选择管脚功能000:选择功能1001:选择功能2(如果未定义功能2,则保留)2:0FUNC010:选择功能3(如果未定义功能3,则保留)011:选择功能4(如果未定义功能4,则保留)100~111:保留

  选择功能模式(片内上拉/下拉电阻控制)00:无效模式(无上拉和下拉电阻被允许)4:3MODE01:允许下拉电阻10:允许上拉电阻11:中继模式

  滞后模式5HYS1:禁止0:允许

  6

  -

  保留,复位值为1

  选择模拟/数字模式(无AD功能,则保留,复位值为1)7ADMODE0:模拟输入模式1:数字功能模式

  选择为I2C模式9:8I2CMODE00:标准I2C模式/快速I2C模式(默认)01:标准I/O功能

  10:FM+I2C模式11:保留

  31:8

  -

  保留,复位值为0

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

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

  位11:031:12

  符号DATA-

  访问R/W-

  描述管脚PIOn_0~PIOn_11输入数据(读)或输出数据(写)保留

  GPIO的数据方向的设置是通过对GPIOnDIR寄存器的位进行与或操作实现的,LPC1100微处理器和8051单片机的GPIO不同,在使用前一定要先设置数据方向才能使用,

  位符号访问值011:0IOR/W131:12引脚PIOn_0~PIOn_11配置为输出保留描述引脚PIOn_0~PIOn_11配置为输入

  6.发光二级管的工作电压和工作电流如何?_______________________________________________________________________________________________________________________________________________________________________________________________________________________________。7.发光二极管的限流电阻如何计算?__________________________________________________________________________。

  五、实验原理图:

  六、实验步骤:

  一、基本要求1、默写发光二极管闪烁程序。二、扩展要求1.查找关于呼吸灯的资料,弄懂呼吸灯工作原理。2.自行编写呼吸灯代码,在实验板子上面验证。

  七、程序框图:八、供参考程序:

  /*************************************************************************/#include"LPC11XX.H"//头文件#defineLED1_ON()(LPC_GPIO1->DATA&=~(1<<0))//点亮连接到P1.0的LED#defineLED1_OFF()(LPC_GPIO1->DATA|=(1<<0))//熄灭连接到P1.0的LED#defineLED2_ON()(LPC_GPIO1->DATA&=~(1<<1))//点亮连接到P1.1的LED#defineLED2_OFF()(LPC_GPIO1->DATA|=(1<<1))//熄灭连接到P1.1的LED/***************************************************************************FunctionName:Delay()*Description:延时函数*EntryParameter:None*ReturnValue:None**************************************************************************/voidDelay()

  {uint16_ti,j;for(i=0;i<5000;i++)for(j=0;j<200;j++);}/***************************************************************************FunctionName:LedInit()*Description:初始化LED引脚*EntryParameter:None*ReturnValue:None**************************************************************************/voidLedInit(void){LPC_SYSCON->SYSAHBCLKCTRL|=(1<<16);//使能IOCON时钟LPC_IOCON->R_PIO1_0&=~0x07;LPC_IOCON->R_PIO1_0|=0x01;//把P1.0脚设置为GPIOLPC_IOCON->R_PIO1_1&=~0x07;LPC_IOCON->R_PIO1_1|=0x01;//把P1.1脚设置为GPIOLPC_SYSCON->SYSAHBCLKCTRL&=~(1<<16);//禁能IOCON时钟LPC_GPIO1->DIR|=(1<<0);//把P1.0设置为输出引脚LPC_GPIO1->DATA|=(1<<0);//把P1.0设置为高电平LPC_GPIO1->DIR|=(1<<1);//把P1.1设置为输出引脚LPC_GPIO1->DATA|=(1<<1);//把P1.1设置为高电平}/***************************************************************************FunctionName:main()*Description:主函数*EntryParameter:None*ReturnValue:None**********************************************************************/intmain(void){LedInit();while(1){Delay();LED1_ON();LED2_OFF();Delay();LED1_OFF();LED2_ON();}}

  

  

篇三:gpio控制流水灯实验报告总结

  流水灯控制实验报告及程序

  文件排版存档编号:[UYTR-OUPT28-KBNTL98-UYNN208]

  实验三

  流水灯控制实验

  姓名专业通信工程学号成绩一、实验目的

  1.掌握KeilC51软件与protues软件联合仿真调试的方法;2.掌握如何使用程序与查表等方法实现流水效果;3.掌握按键去抖原理及处理方法。二、实验仪器与设备1.微机1台2.KeilC51集成开发环境3.Proteus仿真软件三、实验内容1.用Proteus设计一流水灯控制电路。利用P1口控制8个发光二级管L1—

  L8。口接一按键K1。参考电路如下图所示。其中74LS240为八反响三态缓冲器/线驱动器。2.用中断或查询方式编写程序,每按动一次K1键,演示不同的流水效果。若用KEY表示按键的次数,则其对应的流水效果如下:①KEY=0:L1-L8全亮;②KEY=1:L1-L8先全灭,然后自右向左单管点亮,如此循环;③KEY=2:L1-L8先全灭,然后自右向左依次点亮,如此循环;④KEY=3:L1-L8先全亮,然后自左向右依次熄灭,如此循环;⑤KEY=4:L1-L8先全灭,然后整体闪烁,如此循环;⑥KEY=5:自行设计效果。以上移位及闪烁时间间隔均设置为秒,按动5次按键后,再按键时,流水效果从头开始循环。

  四、实验原理1.按键去抖原理:通常按键所用的开关为机械弹性开关,当机械触点断开、闭合时,电压信号波形如下图所示。由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定的接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动。抖动时间的长短由按键的机械特性决定,一般为5~10ms。按键抖动会引起一次按键被误读多次。为了确保CPU对键的一次闭合仅做一次处理,必须去除按键抖动。在键闭合稳定时,读取键的状态,并且必须判别;在键释放稳定后,再作处理。按键的抖动,可用硬件或软件两种方法消除。常用软件方法去抖动,即检测到按键闭合后执行一个5~10ms延时程序;让前沿抖动消失后,再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有按键按下。当检测到按键释放后,也要给5~10ms的延时,待后延抖动消失后,才能转入该键的处理程序。

  2.74LS240:八反相三态缓冲器/线驱动器引脚排列图:

  3.中断原理:当某种内部或外部事件发生时,单片机的中断系统将迫使CPU暂停正在执行的程序,转而去进行中断事件的处理,中断处理完毕后,又返回被中断的程序处,继续执行下去。每次按键是一次外部中断,按

  下按键后,CPU利用switchcase语句跳转到相应语句执行。五、实验步骤

  1.用Proteus设计流水灯控制电路;2.在KeilC51中编写流水灯控制程序,编译通过后,与Proteus联合调试;3.按动K1键,观察是否达到演示效果;4.试用中断和查询两种方式编写程序,比较二者区别。六、电路设计及调试1.实验电路2.程序设计与调试#include<>#defineucharunsignedchar#defineuintunsignedintuchari=0,j,k,m,n;ucharcodetable1[]={0x00,0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};//自右向左单个点亮二极管的代码ucharcodetable2[]={0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};//自右向左依次点亮二极管的代码

  ucharcodetable3[]={0xff,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};//自左向右依次熄灭二极管的代码ucharcodetable4[]={0x00,0x03,0x06,0x0c,0x18,0x30,0x60,0xc0};//双灯循环右移voiddelay(uinta);voidINT_1()interrupt2{

  EX1=0;delay(20);EX1=1;i++;

  if(i==6)i=0;}voidmain(){EA=1;//打开总中断EX1=1;//打开外部中断1IT1=1;//设置中断触发方式为下降沿触发方式while(1){

  switch(i){

  case0:P1=0xff;break;

  case1:P1=table1[j];delay(500);j++;if(j==10)j=0;break;

  case2:P1=table2[k];delay(500);k++;if(k==10)k=0;break;

  case3:P1=table3[m];delay(500);m++;if(m==10)m=0;break;

  case4:P1=0x00;delay(300);P1=~P1;delay(300);break;

  case5:P1=table4[n];delay(500);n++;if(n==10)n=0;break;

  default:break;}}}voiddelay(uinta){ucharb;

  for(a;a>0;a--)//循环600*255次机器在这里执行需要一段时间也就达到了延时效果

  for(b=255;b>0;b--);}在“Optionsfortarget”的“debug”里选中“ProteusVSMSimulator”并选择输出“hex”文件进行联合调试。分别进行全速调试与单步调试,看是否出现编程所想要实现的效果。3.实验结果

  按下不同的按键次数,执行不同的流水效果,自行设计效果为双灯循环右移。七、实验总结及问题通过本次流水灯控制实验,进一步掌握了KeilC51软件与proteus联合仿真调试的方法,逐步熟练了单步调试的方法。自己用中断方法完成了本次实验,也尝试用查询方法编写程序,知道中断方法是在有中断请求时CPU再去处理,之前可一直忙于其他事情,而查询方法需一直查询标志位,CPU不能做其他事情,中断方法效率要比查询方式高而且较简单。第一次用按键控制电路,学习了按键的去抖原理及使用方法。在实验中,会出现未知效果,总体看来原因不明,只要进行单步调试就可找到问题所在。思考:如果不进行去抖处理,CPU可能会误判,按下后认为按键松开,多次执行相应程序,得不到想要的控制效果。

  

  

篇四:gpio控制流水灯实验报告总结

  文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

  嵌入式流水灯实验心得体会

  篇一:嵌入式流水灯实验实验三GPIO输出控制实验一、实验目的熟悉LPCXX系列ARM7微控制器的GPIO输入控制。二、实验设备?硬件:PC机一台LPC2131教学实验开发平台一套?软件:Windows98/XP/XX系统,集成开发环境。三、实验内容1.管脚控制EasyARM教学实验开发平台上的蜂鸣器报

  警。2.GPIO输出实验-流水灯实验实验预习要求:LPCXXGPIO管脚的设置和控制。四、实验原理输出实验,蜂鸣器控制在EasyARM2131开发板上,接有一个蜂鸣器,由控

  制,通过跳线JP11选择连接。蜂鸣器控制电路如所示。图3-1蜂鸣器控制电路

  如果跳线JP11选择蜂鸣器,当输出低电平时,蜂鸣器鸣叫,当输出高电平则停止鸣叫。程序设置PINSEL0使

  1文档收集于互联网,已整理,word版本可编辑.

  文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

  连接GPIO,并通过IO0DIR将其设置为输出状态,然后通过IO0CLR和IO0SET清零和置位口,控制蜂鸣器,流程图见图3-2。

  图3-2蜂鸣器控制实验流程图2.GPIO输出实验-流水灯实验单路LED控制EasyARM2131开发板上有8个独立的LED,分别由8个GPIO口控制,现在使用其中一路进行实验,使用的电路如图3-3所示。图3-3单路LED电路图当跳线JP12连接LED1时,采用灌电流方式驱动LED1,当输出低电平时,LED1点亮,当输出高电平时,LED1熄灭。实验程序首先设置管脚连接GPIO,接着设置口为输出模式,然后通过IO1CLR和IO1SET控制,驱动LED1的亮灭。GPIO输出实验-流水灯实验EasyARM2131开发板上的8路LED(LED8~LED1)分别可选择P1[25:18]进行控制,电路如图3-4所示。

  图3-48路LED控制电路当跳线JP12全部选择LED8~LED1后,~分别控制这8路LED,就可以进行流水灯实验。流水灯显示花样可以通过数组人为定义,亦可通过一定的算法计算,程序清单所

  2文档收集于互联网,已整理,word版本可编辑.

  文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

  示为采用人为定义数组控制显示花样的实验程序,流程图如图3-5所示。

  图3-5流水灯花样显示流程图五、实验步骤实验内容1步骤①启动集成开发环境,选择ARMExecutableImageforlpc2131工程模板建立一个工程BeepCon_C。②在user组里编写主程序代码。③将EasyARM教学实验开发平台上的管脚与Beep跳线短接。④选择Project->Debug,启动AXD进行JLINK仿真调试。在工程窗口中选择DebugInRAM生成目标,然后编译连接工程(单击Make按钮)。如图所示。选择DebugInRAM生成目标时,编译连接生成的目标代码就是用于在片内RAM调试。打开ADS开发环境下的【Edit】->【DebugInFLASHSettings...】,在”ARMfromELF”下Outputformat做如图选择,输出文件选择你的文件同一目录下,扩展名’.HEX’

  ⑥全速运行程序,程序将会在的主函数中停止(因为main函数起始处默认设置有断点)。

  ⑦单击ContextVariable图标按钮(或者选择ProcessorViews->Variables)打开变量观察窗口,通过此

  3文档收集于互联网,已整理,word版本可编辑.

  文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

  窗口可以观察局部变量和全局变量。选择SystemViews->DebuggerInternals即可打开LPCXX系列ARM7微控制器的片内外寄存器窗口。

  ⑧可以单步运行程序,可以设置/取消断点;或者全速运行程序,停止程序运行,观察变量的值,判断蜂鸣器控制是否正确。

  在FLASH中调试在工程窗口中选择DebugInFLASH生成目标,然后编

  译连接工程(单击Make按钮)。选择DebugInFLASH生成目标时,编译连接生成的目标代码就是用于在片内FLASH调试。编译连接通过后,按键盘的F5键,启动AXD进行调试。注意,由于程序要烧写到片内FLASH,默认选项在每次装载FLASH地址的调试文件时,将会擦除FLASH并下载代码到FLASH中。

  篇二:嵌入式系统与单片机流水灯实验报告中南大学嵌入式系统与单片机实验报告学生姓名学号专业班级

  指导教师学院信息科学与工程学院完成时间XX年5月

  [实验名称]

  4文档收集于互联网,已整理,word版本可编辑.

  文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

  单片机流水灯。[实验目的]

  进一步熟悉keil仿真软件、伟福仿真器和实验板的使用。了解并熟悉实验板上单片机I/O口和LED灯的电路结构,掌握C51中单片机I/O口的编程方法,掌握顺序控制程序的简单编程。

  [实验原理]MCS-51系列单片机有四组8位并行I/O口,记作P0、P1、P2和P3。每组I/O口内部都有8位数据输入缓冲器、8位数据输出锁存器及数据输出驱动等电路。四组并行I/O端口即可以按字节操作,又可以按位操作。当系统没有扩展外部器件时,I/O端口用作双向输入输出口;当系统作外部扩展时,使用P0、P2口作系统地址和数据总线、P3口有第二功能,与MCS-51的内部功能器件配合使用。

  

篇五:gpio控制流水灯实验报告总结

  篇一:单片机实验报告——流水灯电子信息工程学系实验报告课程名称:单片机原理及接口验2流水灯实验时间:2011-10-21蔡松亮学号: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机,基本配置cpupii以上,内存2g软件:keil2,proteus7.5四、实验内容及过程:1、用proteus画流水灯电路图流程:1)、运行proteus实验项目名称:实班级:电信092姓名:

  仿真软件,单击pickfromlibraries,打开搜索元器件窗口,如图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。总电路图如图3所示:图3流水灯电路原理图2、用keil建项目流程:1)、运行keil2软件,启动后,点击project菜单新建项目,新建项目后,选择为at89c51的仿真单片机的型号,单击file选择new新建程序文件,保存后,右击sourcegroup1添加入程序文件。2)、编写程序,右击target1打开设置输出hex窗口,如图4所示:图4打开设置输出hex窗口3)、设置输出hex文件,勾选上output下的createhexfi:,单击确定保存,运行程序得到hex文件,如图5所示:图5设置输出hex文件3、实验内容:1)、8个led灯从新建keil文件,编写程序,程

  最高位依次点亮,每次只亮一盏灯,依此循环。序如下:

  #include&lt;reg52.h&gt;#include&lt;intrins.h&gt;#defineuintunsignedint#defineucharunsignedcharvoiddefay(uintz){uintx,y;for(x=100;x&gt;0;x--)main(){temp=0xfe;p2=temp;while(1){for(y=z;y&gt;0;y--);}uchartemp;void

  temp=_crol_(temp,1);defay(500);p2=temp;}}2)、编写程序使8个led灯从两边向中间循环点亮。编写程序,程序如下:uchartemp,m,n;uinti;voidmain(){m=0xfe;n=0x7f;while(1){p2=m&amp;n;m=_crol_(m,1);n=_cror_(n,1);if(m==0xef){m=0xfe;n=0x7f;}}3)、编写程序使用一根或二根i/o线接一开关控制流水灯流向。编写程序,程序如下:sbitvoidmain(){defay(500);}{if{temp=_crol_(temp,1);defay(500);}if(p15==0){temp=_cror_(temp,1);defay(500);}p2=temp;}}五、实验心得:通过本次的实验,熟悉keil仿真软件、proteus仿真软件的使用。了解并熟悉单片机i/o口和led灯篇二:51单片机流水灯实验报告51单片机流水灯试验一、实验目的1.了解51单片机的引脚结构。2.根据所学汇编语言编写代码实现led灯的流水功能。(p15==1)temp=0xfe;p2=temp;while(1)p15=p1^5;

  3.利用开发板下载hex文件后验证功能。二、实验器材个人电脑,80c51单片机,开发板三、实验原理单片机流水的实质是单片机各引脚在规定的时间逐个上电,使led灯能逐个亮起来但过了该引脚通电的时间后便灭灯的过程,实验中使用了单片机的p2端口,对8个led灯进行控制,要实现逐个亮灯即将p2的各端口逐一置零,中间使用时间间隔隔开各灯的亮灭。使用rl或rra实现位的转换。a寄存器的位经过rra之后转换如下所示:然后将a寄存器转换一次便送给p2即movp2,a便将转换后的数送到了p2口,不断循环下去,便实现了逐位置一操作。四、实验电路图五、通过仿真实验正确性代码如下:org0mova,#00000001bloop:movp2,arlaacalldelaysjmploopdelay:movr1,#255del2:movr2,#250del1:djnzr2,del1djnzr1,del2retend实验结果:六、实验总结这次试验我通过proteus仿真实现对流水灯功能的实现。受益匪浅,对80c51的功能和结构有了深层次的了解,我深刻的明白,要想完全了解c51还有一定距离,但我会一如既往的同困难作斗争。在实验中,我遇到了不少困难,比如不知道怎么将程序写进单片机中,写好程序的却总出错,不知道什么原因,原来没有生成hex文件。这些错误令我明白以后在试验中要步步细心,避免出错。篇三:流水灯单片机课程设计报告

  井冈山大学机电工程学院单片机课程设计报告课程名称:单片机设计题目:流水灯姓名:覃家应陈东阳学专业:生物医学工程班工本一班号:100615062指导教师:王佑湖2012年11月10日目录1言„„„„„„„„„„„„„„„„„„„„„„..21.1务„„„„„„„„„„„„„„„.„„„.2求„„„„„„„„„„„„„„„„„„述„„„„„„„„„„„„„„„„„„„„.2源„„„„„„„„„„„„„„„„„..2题„„„„„„„„„„„„„„„„„析„„„„„„„„„„„„„„„„„„„„.22.2面对的问23系统分1.2设计要..22课题综2.1课题的来设计任引级:10级医

  3.189c52单片机引脚图及引脚功能介绍„„„„„„„24系统设计„„„„„„„„„„„„„„„„„„„„.44.1硬件设计„„„„„„„„„„„„„„„„„„...44.1.1硬件框图„„„„„„„„„„„„„„„„..44.1.2硬件详细设计„„„„„„„„„„„„„„..54.2软件设计„„„„„„„„„„„„„„„..............54.3硬件原理图„„„„„„„„„„„„„„„„„..64.4元件清单„„„„„„„„„„„„„„„„„„..6

  4.5硬件焊接图„„„„„„„„„„„„„„„„„..64.6写„„„„„„„„„„„„„„„„„„..75会„„„„„„„„„„„„„„„„„„„„...76谢„„„„„„„„„„„„„„„„„„„„„„..8参献„„„„„„„„„„„„„„„„„„„„.....81引言单片机课程设计主要是为了让我们增进对89c52单片机电路的感性认识,加深对理论方面的理解。了解软硬件的有关知识,并掌握软硬件设计过程、方法及实现,为以后设计和实现应用系统打下良好基础。另外,通过简单课题的设计练习,使我们了解必须提交的各项工程文件,达到巩固、充实和综合运用所学知识解决实际问题的目的。1.1设计任务设计一个单片机控制的流水灯系统1.2设计要求(1)至少8个灯;(2)可实现不同的亮灯(如左循环,右循环,间隔闪等)。2课题综述2.1课题的来源当今社会,这种由单片机芯片控制各种硬件工作的技术也日益成熟,并普及在交通、化工、机械等各个领域。而流水灯这项技术在生活中的应用更是广泛,较为贴近生活。而流水灯控制的设计所需要的知识也正好吻合了我们本学期对于单片机这门课程的学习,所以设计流水灯控制的这个课题让我们对知识的学习和巩固都有了进一步的加深。2.2面对的问题这次课程设计是通过89c52位单片机实现。但面对的问题却是两方面的:一个是软件的设计,也就是实现流水灯控制功能的程序编辑;另一个是硬件的设计,需要我们自己连接、焊接电路板。而更为严峻的就是设计的最后还要将软硬件相结合。首先我们需要通过protel将设计的实物的电路图画出来,再根据电路图连接实物电路。3系统分析3.189c52单片机引脚图及引脚功能介绍本次设计的目的在于加深89c52单片机的理解,首先来简单认识一下,它的引脚如图3-1所示:图考文致心得体代码编

  3.189c52单片机的引脚大致可分为4类:电源、时钟、控制和i/o引脚。1.电源:(1)vcc:芯片电源,接+5v;(2)vss:接地端;2.时钟:xtal1、xtal2:晶体振荡电路反相输入端和输出端。3.控制线:控制线共有4根,(1)ale/prog:地址锁存允许/片内eprom编程脉冲ale功能:用来锁存p0口送出的低8位地址prog功能:片内有eprom的芯片,在eprom编程期间,此引脚输入编程脉冲。(2)psen:外rom读选通信号。(3)rst/vpd:复位/备用电源。rst(reset)功能:复位信号输入端。vpd功能:在vcc掉电情况下,接备用电源。(4)ea/vpp:内外rom选择/片内eprom编程电源。ea功能:内外rom选择端。vpp功能:片内有eprom的芯片,在eprom编程期间,施加编程电源vpp。4.i/o线89c52共有4个8位并行i/o端口:p0、p1、p2、p3口,共32个引脚。篇四:单片机流水灯实验报告单片机流水灯实验报告一、实验目的1、at89s52-ⅰ型开发板的使用方法和注意事项。2、了解简单单片机应用系统的设计方法。3、掌握应用keil软件编辑、编译源汇编程序的操作方法。熟练掌握

  4、usbisp烧录软件的操作方法。

  掌握应用

  5、帮助学生养成良好实验习惯。二、实验内容在at89s52-ⅰ开发板上实现8个发光led“流水”的现象,并通过编写程序控制流水现象。三、实验说明当8255的pa口有低电平输出时,相应的发光二极管就会点亮。应用这一原理我们可以容易的点亮一个数码管,例如令pa口输出01111111时d1就会点亮。若再把01111111向右循环一位,利用pa口输出,就会点亮d2。在发光二极管两次点亮的间隔中加延时程序,让每次点亮停留一段时间,像这样人眼就可以看到“流水”的现象。五、实验原理图六、实验参考程序#include&lt;reg52.h&gt;#defineunsignedchar#defineuintunsignedintuchartable[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};sbitp00=p0^0;sbitp01=p0^1;voiddelay(uchart){uchari,j;for(i=0;i&lt;t;i++)for(j=0;j&lt;110;j++);}voidmain(){uchari;while(1){p00=1;delay(200);p00=0;uchar

  for(i=0;i&lt;8;i++){p1=table[i];p2=table[i];delay(200);}p01=1;delay(200);p01=0;}}实物展示:(1)单片机最小系统板(2)自己焊制的集成最小系统板(3

  )自己制作的心形流水灯实验板(4)系统板与实验板的连接展示篇五:单片机并口简单应用(流水灯)实验报告实验一单片机并口简单应用(流水灯)一、实验目的1、了解单片机汇编语言程序的基本结构2、了解单片机汇编语言程序的设计和调试方法3、掌握顺序控制程序的简单编程二、实验仪器单片机开发板、万利仿真机、稳压电源、计算机三、实验原理1、流水灯硬件电路如图4-1所示,流水灯硬件电路由移位寄存器74ls164、功能选择开关j502、二极管、三极管、单片机并口(p0)、

  限流电阻等组成。发光二极管连接成共阳极结构。发光二极管点亮的条件是:阳极接高电平、各阴极接低电平。因此,通过程序控制74ls164的q0端。q0端输出0,公共端阳极就接成高电平,然后再按一定规则从p0口输出数据,发光二极管就会点亮。图4-1流水灯电路图2、单片机流水灯程序设计由上图可知,发光二极管要点亮,需要先把j502的2、3脚相连,三极管q500导通,然后从p0口输出数据。(1)控制三极管导通程序控制三极管有两种方法,第一种:在74ls164的第8脚产生一个正脉冲,此时1脚为0,三极管就导通;为1,三极管就截止。第二种:在单片机io模拟74ls164时序,一次输出一个字节,只要q0=0即可控制三极管开通。为1,三极管截止。两种方法的程序流程如图4-2所示。图4-2流水灯位选信号控制(2)产生流水灯效果程序三极管导通后,就可以从p0口输出数据控制发光二极管。p0口输出数据既可以编写程序逐个输出,也可以将输出数据序列定义在存储器中,然后用读程序存储器指令逐个取出并输出到p0口。程序流程图如图4-3所示。图4-3流水灯程序流程图四、实验内容1、直接输出法输出数据序列五、实验步骤及调试信息1、新建实验项目hua2、输入实验程序并补充完整程序如下:#include&lt;reg51.h&gt;#defineuint

  unsignedintsbitclk=p3^4;sbitdin=p2^3;uintnum;uintcodetable[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};voiddelay(uintz){uinti,j;for(i=z;i&gt;0;i--)for(j=100;j&gt;0;j--);}voidmain(){din=0;clk=0;*/delay(5);/*74ls164的第8脚,产生一个正脉冲*/clk=1;1脚为0,三极管就导通*/clk=0;*/while(1){for(num=0;num&lt;8;num++){p0=table[num--];delay(500);}}}3、编译下载实验程序,全速运行实验现象:全速运行程序,指示灯从第一个开始亮,8个指示灯依次亮了以后。指示灯就没有规律的几盏一起亮,原因是/**/delay(5);/*/*此时在/*

  for(num=0;num&lt;8;num++){p0=table[num--];程序运行到num=0时,递减以后就为0ffh,此时程序的取值是任意的,修改如下:

  for(num=0;num&lt;8;num++){p0=table[num];实验现象:全速运行程序,指示灯从第一个开始亮,8个指示灯依次亮起。4、整理实验设备六、实验现象指示灯从左到右逐一变亮。七、实验心得通过本次的实验,我对单片机的基本使用和程序的编写有了初步的了解,但是在实验过程中对程序的编写还不够熟练,仍然需要继续学习。八、思考题1、请把学号后两位数进转换成二进制数,然后依次点亮其中为1对应的二极管,写出输出序列。例如,60号转换成二进制后是00111100b,依次点亮四个1对应的二极管,输出序列是0dfh,0efh,0f7h,0fch.(从低位到高位也可以)答:31号(00011111b)输出序列是0efh,0f7h,0fch.ofbh,0fah.2、参考实验内容2,编写程序把输出序列增加到30个。

  

  

推荐访问:gpio控制流水灯实验报告总结 流水 实验 控制