用单片机控制8位LED灯的流水点亮及其PROTEUS仿真_第1页
用单片机控制8位LED灯的流水点亮及其PROTEUS仿真_第2页
用单片机控制8位LED灯的流水点亮及其PROTEUS仿真_第3页
用单片机控制8位LED灯的流水点亮及其PROTEUS仿真_第4页
用单片机控制8位LED灯的流水点亮及其PROTEUS仿真_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

用单片机控制8位LED灯的流水点亮及其PROTEUS仿真摘要:LED灯的流水控制可以由多种方式实现,这里选用80c51系列单片机作为CPU,采用函数型指针的方式编程,用Proteus进行电路图绘制和仿真,用keil进行编译和虚拟写入,得到了理想的仿真效果。Abstract:LEDlightsfromavarietyofwatercontrolcanbeachieved,80c51chosenhereasaseriesofsingle-chipCPU,theuseoffunctionalprogrammingguideway,usingProteusfordrawingcircuitdiagramsandsimulation,carriedoutusingkeilcompilerandvirtualwrite,beanidealsimulationoftheeffect.1引言1.1AT89C51简介AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案1.2Proteus简介Proteus(海神)的ISIS是一款Labcenter出品的电路分析实物仿真系统,可仿真各种电路和IC,并支持单片机,元件库齐全,使用方便,是不可多得的专业的单片机软件仿真系统。该软件的特点:①全部满足我们提出的单片机软件仿真系统的标准,并在同类产品中具有明显的优势。②具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS一232动态仿真、1C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。③目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。④支持大量的存储器和外围芯片。总之该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大,可仿真51、AVR、PIC。Proteus

与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU

的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。对于这样的仿真实验,从某种意义上讲,是弥补了实验和工程应用间脱节的矛盾和现象。2仿真实验过程2.1硬件设计由于在PROTEUS中单片机的的晶振等基本电路都默认设置为已经添加好,所以在绘制电路图时不必画出,线路连接如图1.1图1.12.2软件设计在c语言中,指针变量除了能只想数据对象外,也可以指向函数。一个函数在编译时分配了一个入口地址,这个入口地址就称为函数的指针。可以用一个指针变量指向函数的入口地址,然后通过该指针变量调用此函数。定义指向函数的指针变量的一般形式如下:类型说明符(*指针变量名)(形参列表)函数的调用可以通过函数名调用,也可以通过函数指针来调用。要通过函数指针调用函数,只要把函数的名字赋给该指针就可以了。一个函数被执行时,在内存中占据一定的存储单元,该存储单元的起始地址是用函数名表示的,称为函数的入口地址。因此可以用指针指向这个函数的入口地址,并通过该指针变量来调用这个函数,这种指针变量称为函数型指针变量。函数型指针变量定义的一般形式为:数据类型标识符(*指针变量名)();其中,数据类型标识符说明该指针变量所指向函数返回值的数据类型。例如:int(*p1)();float(*p2)();以上定义了两个函数型指针变量p1和p2,p1所指向的函数返回整数型数据,p2所指向的函数返回实数型数据。在程序中,一旦将函数的入口地址赋予指定的函数型指针变量,该指针变量就指向了一个具体的函数。还可以对一个函数型指针变量多次赋值,使该指针变量先后指向不同的函数。函数的入口地址赋给函数型指针变量后,函数的调用可以通过该指针的引用来实现。用函数型指针控制P1口灯花样#include<reg51.h>//包含51单片机寄存器定义的头文件unsignedcharcodeTab[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};//流水灯控制码,该数组被定义为全局变量/**************************************************************函数功能:延时约150ms**************************************************************/voiddelay(void){unsignedcharm,n;for(m=0;m<200;m++)for(n=0;n<250;n++) ;}/**************************************************************函数功能:流水灯左移**************************************************************/voidled_flow(void){unsignedchari;for(i=0;i<8;i++)//8位控制码{P0=Tab[i];delay();}}/**************************************************************函数功能:主函数**************************************************************/voidmain(void){void(*p)(void);//定义函数型指针,所指函数无参数,无返回值 p=led_flow;//将函数的入口地址赋给函数型指针pwhile(1)(*p)();//通过函数的指针p调用函数led_flow()}2.3程序写入和连接过程在编译时,由于系统质只辨识HEX类型文件,在51单片机的编辑属性里写入编译好的HEX文件路径输入,设置好波特率,点击仿真按钮,即可看到仿真结果。图1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论