基于Proteus和8086的花样流水灯电路设计与仿真

2018-12-06 10:48
关键词:灯光效果数码管子程序

李 丽

(太原工业学院 计算机工程系,山西 太原 030008)

0 引 言

Proteus是英国Labcenter electronics公司研发的用于电路分析与实物仿真、印制电路板设计的软件,它支持Windows 操作系统,是目前世界上唯一将电路仿真、虚拟模型仿真、PCB设计合为一体的EDA软件[1].Proteus提供了很多种虚拟仿真模型,例如: VSM for ARM7/LPC2000、VSM for 805l、 VSM for AVR等.2009年推出的Proteus 7.5版本更增加了VSM for 8086仿真模型,使8086/8088微处理器、并行接口芯片8255A、定时计数器8253、中断控制器8259、串行接口8251等芯片的仿真运行得以实现[2].一直以来,Proteus都以其强大的功能、方便的操作,备受广大电子设计者的青睐.

随着科技的进步和城市建设的发展,人们对城市亮化的要求也越来越高,单一的路灯照亮,已经不能满足人们的需要,人们希望有绚丽多彩的城市夜景,遇到喜事也喜欢“张灯结彩”.所以我们的周围有各种各样的装饰彩灯,那些炫目的灯光效果,实际上都是在微控制器的控制下实现的多样流水灯效果[3].本文就介绍了在Proteus仿真环境下,以INTEL8086微处理器为核心,利用并行接口芯片8255控制LED花样流水灯的电路设计与实现.经仿真调试,运行效果良好,且后期经过简单的代码修改,亦可扩展出更多灯光效果.

1 硬件电路设计

电路主要由8086微处理器、地址译码电路、8255驱动电路、按钮输入、LED流水灯显示电路和状态显示电路构成.电路设计框架图如图1所示.

图1 花样流水灯电路设计框架图

硬件设计思路为:在微处理器8086的控制下驱动并行接口8255实现花样流水灯效果,其中,8255具体负责接收按钮输入、流水灯的显示和状态显示功能.当用户每按下一次按钮就切换一种流水灯效果,并显示当前状态号.考虑到实效性,用户按钮输入以中断请求的方式提交给CPU.

电路所需元器件列表如表1所示.

表1 元器件清单

系统具体电路连接则如图 2 所示.

图2 花样流水灯硬件电路连接图

表2 灯光效果与状态号对应表

2 软件设计

软件设计部分利用EMU8086仿真系统实现汇编语言程序的编写和编译.

系统控制程序采用程序段CODE和数据段DATA两段结构.数据段定义了按钮计数变量NUM,五种灯光效果的初始状态变量S0(0),S1(FFH),S2(01H),S3(80H),S4(55H)以及7段数码管0-9的字形码表DIGITALDISP.程序段包括MAIN主程序、INTPROC中断服务子程序、多个流水灯控制子程序(MODE2-MODE5)、DIGITALDISP数码管显示子程序和DELAY延时子程序.主程序控制流程如图3所示.

图3 主程序流程图

图4 中断服务子程序流程图

主程序的主要任务是完成中断类型号的设置和初始化8255A,然后循环等待即可.如果用户点击了按钮,即触发了不可屏蔽中断,CPU执行中断服务子程序,该程序流程如图4所示.服务子程序对按键次数计数,并根据按键值转入数码管显示子程序和不同的灯光控制子程序,控制实现不同的流水灯效果.程序中共给出了6种灯光控制,当按键值大于5时,清零重新开始循环判断.数码管显示子程序较简单,按照按键值查字形码表B口输出即可.多个灯光控制子程序结构相似,但灯光控制不同,以单灯顺时针流水显示为例,其实现代码如下:

MODE2 PROC NEAR

MOV AL,S2;对8255A的A口送状态2

MOV DX,IO3

NEXT2: OUT DX,AL

CALL DELAY; 软件延时0.5秒

ROL AL,1

CMP NUM,2

JZ NEXT2

RET

MODE2 ENDP

如果需要更多流水灯效果,只需要添加相应控制子程序,并在中断服务子程序中,对计数判断稍作修改即可.

3 Proteus仿真联调

Proteus支持多种外部编译器,如:EMU8086,MASM32,TASM等,添加相应的编译器.加载源程序成功即可进行仿真调试,特别应该注意修改CPU的Internal Memory Size和Program Loading Segment参数为合适大小[5],否则,调试无法进行.系统仿真调试界面如图5所示.

图5 系统仿真调试界面图

4 结论

本系统以8086为核心,在Proteus平台联合EMU8086编译器仿真运行.设计中利用按钮产生NMI中断请求,使CUP必响应每次中断,执行中断服务程序,驱动可编程并行接口芯片8255A实现花样流水灯效果.仿真结果表明:系统运行效果良好,代码可扩展性强,具有一定实用价值.将其作为《微机原理与接口技术》的典型案例,应用于的实践教学中,亦能起到了不错的效果.

猜你喜欢
灯光效果数码管子程序
基于51单片机的分数计数器设计
微课教学设计之“数码管动态显示”
Arduino编程
MC9S08FL16单片机数码管静态显示分析
浅谈售楼处的灯光设计分析
浅析人性化设计在室内设计中的重要性
舞台灯光效果在舞台表演中的作用
灯光效果的艺术性分析
浅谈子程序在数控车编程中的应用
子程序在数控车加工槽中的应用探索