用单片机控制8位LED灯的流水点亮及其PROTEUS仿真.docVIP

用单片机控制8位LED灯的流水点亮及其PROTEUS仿真.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用单片机控制8位LED灯的流水点亮及其PROTEUS仿真

用单片机控制8位LED灯的流水点亮及其PROTEUS仿真 摘要:LED灯的流水控制可以由多种方式实现,这里选用80c51系列单片机作为CPU,采用函数型指针的方式编程,用Proteus进行电路图绘制和仿真,用keil进行编译和虚拟写入,得到了理想的仿真效果。 Abstract: LED lights from a variety of water control can be achieved, 80c51 chosen here as a series of single-chip CPU, the use of functional programming guide way, using Proteus for drawing circuit diagrams and simulation, carried out using keil compiler and virtual write, be an ideal simulation of the effect. 1引言 1.1 AT89C51简介 AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案 Proteus简介 Proteus(海神)的ISIS是一款Labcenter出品的电路分析实物仿真系统,可仿真各种电路和IC,并支持单片机,元件库齐全,使用方便,是不可多得的专业的单片机软件仿真系统。 该软件的特点: 全部满足我们提出的单片机软件仿真系统的标准,并在同类产品中具有明显的优势。 具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS一232动态仿真、1 C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。 目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。 支持大量的存储器和外围芯片。总之该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大 ,可仿真51、AVR、PIC。Proteus?与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU?的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。对于这样的仿真实验,从某种意义上讲,是弥补了实验和工程应用间脱节的矛盾和现象。一个函数被执行时,在内存中占据一定的存储单元,该存储单元的起始地址是用函数名表示的,称为函数的入口地址。 因此可以用指针指向这个函数的入口地址,并通过该指针变量来调用这个函数,这种指针变量称为函数型指针变量。 函数型指针变量定义的一般形式为: 数据类型标识符 (*指针变量名) ( ); 其中,数据类型标识符说明该指针变量所指向函数返回值的数据类型。例如: int (*p1) ( ); float (*p2) ( ); 以上定义了两个函数型指针变量 p1 和 p2,p1 所指向的函数返回整数型数据,p2 所指 向的函数返回实数型数据。 在程序中,一旦将函数的入口地址赋予指定的函数型指针变量,该指针变量就指向了一个具体的函数。还可以对一个函数型指针变量多次赋值,使该指针变量先后指向不同的函数。函数的入口地址赋给函数型指针变量后,函数的调用可以通过该指针的引用来实现。unsigned char code Tab[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F}; //流水灯控制码,该数组被定义为全局变量 /************************************************************** 函数功能:延时约150ms **************************************************************/ void delay(void) {

文档评论(0)

2017ll + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档