当前位置:首页 >> 信息与通信 >> 用单片机控制8位LED灯的流水点亮及其PROTEUS仿真

用单片机控制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 单片机为很多嵌入式控制系统提供了一种灵 活性高且价廉的方案 1.2 Proteus 简介 Proteus(海神)的 ISIS 是一款 Labcenter 出品的电路分析实物仿真系统,可仿真各种 电路和 IC,并支持单片机,元件库齐全,使用方便,是不可多得的专业的单片机软件 仿真系统。 该软件的特点: ① 全部满足我们提出的单片机软件仿真系统的标准,并在同类产品中具有明显的优 势。 ②具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS 一 232 动态仿真、1 C 调试器、SPI 调试器、键盘和 LCD 系统仿真的功能;有各种虚 拟仪器,如示波器、逻辑分析仪、信号发生器等。 ③ 目前支持的单片机类型有:68000 系列、8051 系列、AVR 系列、PIC12 系列、PIC 16 系列、PIC18 系列、Z80 系列、HC11 系列以及各种外围芯片。 ④ 支持大量的存储器和外围芯片。总之该软件是一款集单片机和 SPICE 分析于一身 的仿真软件,功能极其强大 ,可仿真 51、AVR、PIC。 Proteus 与其它单片机仿真软件不同的是,它不仅能仿真单片机 CPU 的工作情况,也能仿 真单片机外围电路或没有单片机参与的其它电路的工作情况。 因此在仿真和程序调试时, 关 心的不再是某些语句执行时单片机寄存器和存储器内容的改变, 而是从工程的角度直接看程 序运行和电路工作的过程和结果。对于这样的仿真实验,从某种意义上讲,是弥补了实验和 工程应用间脱节的矛盾和现象。

2 仿真实验过程 2.1 硬件设计
由于在 PROTEUS 中单片机的的晶振等基本电路都默认设置为已经添加好, 所以在绘制电路图 时不必画出,线路连接如图 1.1

图 1.1

2.2 软件设计
在 c 语言中,指针变量除了能只想数据对象外,也可以指向函数。一个函数在编译时分 配了一个入口地址, 这个入口地址就称为函数的指针。 可以用一个指针变量指向函数的入口 地址,然后通过该指针变量调用此函数。 定义指向函数的指针变量的一般形式如下: 类型说明符 (*指针变量名) (形参列表) 函数的调用可以通过函数名调用,也可以通过函数指针来调用。要通过函数指针调用函数, 只要把函数的名字赋给该指针就可以了。 一个函数被执行时, 在内存中占据一定的存储单元, 该存储单元的起始地址是用函数名表示的,称为函数的入口地址。 因此可以用指针指向这 个函数的入口地址, 并通过该指针变量来调用这个函数, 这种指针变量称为函数型指针变量。 函数型指针变量定义的一般形式为: 数据类型标识符 (*指针变量名) ( ); 其中,数据类型标识符说明该指针变量所指向函数返回值的数据类型。例如: int (*p1) ( ); float (*p2) ( ); 以上定义了两个函数型指针变量 p1 和 p2,p1 所指向的函数返回整数型数据,p2 所 指向的函数返回实数型数据。 在程序中,一旦将函数的入口地址赋予指定的函数型指针变 量,该指针变量就指向了一个具体的函数。还可以对一个函数型指针变量多次赋值,使该指 针变量先后指向不同的函数。 函数的入口地址赋给函数型指针变量后, 函数的调用可以通过 该指针的引用来实现。 用函数型指针控制 P1 口灯花样 #include<reg51.h> //包含 51 单片机寄存器定义的头文件

unsigned char code Tab[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F}; //流水灯控制码,该数组被定义为全局变量 /************************************************************** 函数功能:延时约 150ms **************************************************************/ void delay(void) { unsigned char m,n; for(m=0;m<200;m++) for(n=0;n<250;n++) ; } /************************************************************** 函数功能:流水灯左移 **************************************************************/ void led_flow(void) { unsigned char i; for(i=0;i<8;i++) //8 位控制码 { P0=Tab[i]; delay(); } } /************************************************************** 函数功能:主函数 **************************************************************/ void main(void) { void (*p)(void); //定义函数型指针,所指函数无参数,无返回值 p=led_flow; //将函数的入口地址赋给函数型指针 p while(1) (*p)(); //通过函数的指针 p 调用函数 led_flow() }

2.3 程序写入和连接过程
在编译时,由于系统质只辨识 HEX 类型文件,在 51 单片机的编辑属性里写入编译好 的 HEX 文件路径输入,设置好波特率,点击仿真按钮,即可看到仿真结果。

图 1.2

3.实验结论
在试验过程中,只要各步骤操作正确,就会得到正确的实验结果,HEX 文件的生成和 波 特 率 的 设 置 问 题 , 是 容 易 出 现 错 误 的 地 方 。 实 验 结 果 如 图 1.3 所 示 。

图 1.3

参考文献
[1] 《单片机 C 语言应用 100 例》 王东锋 电子工业出版社 [2] 《c 语言程序设计》谭浩强 清华大学出版社


更多相关文档:

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

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

Proteus硬件仿真(单片机控制LED流水灯)_图文.ppt

Proteus硬件仿真(单片机控制LED流水灯) - 第4讲 Proteus仿真单片机实验 ? 本讲内容: 书本第13章(P223-233) 介绍Proteus的使用 选择元器件,画电路图...

第4讲Proteus硬件仿真(单片机控制LED流水灯)_图文.ppt

第4讲Proteus硬件仿真(单片机控制LED流水灯) - 第4讲 Proteus仿真单片机实验 ? 本讲内容: 书本第13章(P223-233) 介绍Proteus的使用 选择元器件,画...

...一个开关控制的流水灯程序设计及proteus仿真图.doc

基于单片机(c语言控制的)一个开关控制的流水灯程序设计及proteus仿真图_计

LED花样流水灯Keil和Proteus结合实例之一.pdf

keil+proteus流水灯实验 7页 免费 用单片机控制8位LED灯的... 5页 2下载券 第4讲 Proteus硬件仿真(... 27页 1下载券LED花样流水...

基于单片机(c语言控制的)流水灯程序设计及proteus仿真图.doc

基于单片机(c语言控制的)流水灯程序设计及proteus仿真...(i=0;i<8;i++) { P1=ledtab[i]; delay(...//4 个一组,每隔 0.5 秒交替闪烁点亮 of back...

流水灯(电路和汇编)-Proteus和Keil仿真演示实例.doc

流水灯点亮电路,用Proteus仿真电路和Keil使用汇编代码...示例要求:在 80C51 单片机的 P2 口连接 8 个发光...晶振 CRYSTAL、发光二极管 LED-RED,如图 3 所示。 ...

基于Proteus和Keil的花样流水灯控制电路的设计与仿真_图文.doc

来源:《科技资讯》2017 年第 20 期 摘要:在 Proteus 仿真软件与 Keil 编程软件的基础上设计了基于 AT89C51 单片机控制 核心的八位 LED 花样流水灯的控制...

流水灯在Proteus下的仿真实现.doc

控制单片机点亮 LED 的程序; 3、将 keil 生成的 hex 文件导入 proteus 中...8、根据仿真现象优化代码。 实验效果: 1、4 个流水灯循环闪烁,1、3、2、4 ...

基于单片机仿真软件proteus的流水灯实验报告.doc

二、实验内容 单片机仿真软件 proteus 上实现 8 个发光 LED流水”的现象,实现两个流水灯情况:1、先奇数 灯亮,再偶数灯亮;2、实现流水灯从两边向中间亮,再...

单片机八个流水灯左右依次点亮实验.doc

单片机八个流水灯左右依次点亮实验 - 单片机八个流水灯左右依次点亮实验 一、实验目的 1.掌握 keilC51 软件与 PROTEUS 软件联合仿真调试的方法; 2.掌握单片机的去...

基于Proteus仿真的流水灯制作花样流水灯制作.doc

《基于 Proteus 仿真的流水灯制作》教案一、教学内容:51 系列单片机的 I/O 口...用单片机控制8位LED灯的... 5页 1下载券 LPC2106流水灯proteus仿... ...

流水彩灯控制器 proteus 单片机4输入8输出.doc

流水彩灯控制proteus 单片机4输入8输出_电子/电路...设计的电路进行仿真; 【基本要求说明】: 1、按照...将不同的 LED 灯点亮的方式编写成相应的控 制子...

单片机课程设计 8个LED灯来回点亮_图文.doc

单片机课程设计 8个LED灯来回点亮_工学_高等教育_...在众多场合随处可见的闪光灯, 流水灯不仅大方美观...(5)使用 Proteus 与 Keil 软件仿真运行; (6)写出...

单片机LED灯的花样控制与仿真--史宝周.doc

关键词: AT89C51 单片机; keil 软件编程;proteus 模拟仿真;LED; 流水灯;一、设计任务及要求 用 3 只开关控制八个 LED 的不同点亮方式实现流水灯的花样设计及...

基于单片机的LED流水灯控制系统设计_图文.doc

基于单片机的 LED 流水灯控制系统设计 业: 级: 名...逐步掌握模块化程序设计方法和 Proteus 仿真软件和 ...系统及 80S51 引脚结构,芯片内集成了通用 8 位...

基于单片机的LED流水灯设计.doc

基于单片机的LED流水灯设计_其它_高等教育_教育专区...及工作过程 3 设计 LED 流水灯系统,实现 8 个 ...次的实验,熟悉 keil 仿真软件、proteus 仿真软件的...

基于51单片机的流水灯.doc

基于51单片机的流水灯 - 基于 51 单片机的流水灯 利用 51 单片机 P0 口实现 8 个 LED(发光二极管)的流水灯控制。可以使用 Proteus 软件进行仿真调试。 1 硬件...

51单片机流水灯实验报告.doc

实验中使用单片机的 P2 端口,对 8 个 LED 灯进行控制,要实现逐个亮灯即将 ...实验结果: 六、 实验总结 这次试验我通过 Proteus 仿真实现对流水灯功能的实现...

流水灯实验报告.doc

用单片机 P0 口的 8 个输出去控制 8 个 LED 灯,实现如下 功能: 先使 8...实验结果: 五、实验总结 这次试验我通过 Proteus 仿真实现对流水灯功能的实现。...

更多相关标签:
网站地图

文档资料共享网 nexoncn.com copyright ©right 2010-2020。
文档资料共享网内容来自网络,如有侵犯请联系客服。email:zhit325@126.com