基于DVCC环境的LED与数码管的协同控制

时间:2022-10-16 04:42:14

基于DVCC环境的LED与数码管的协同控制

摘要:本文主要探讨和讲述了在DVCC环境下,通过8255并行I/O端口扩展,将LED的流水式显示与数码管的跑马灯应用结合,同时通过程序加以协同控制,达到了LED与数码管同时轮转点亮的效果。硬件电路设计上采用了与数码管数量相对应的“6位分组控制”的形式,简化了程序设计;延时程序采用了寄存器控制可变延时的模式,可灵活同步控制LED与数码管的轮转点亮速率。本文的整体设计已在单片机课程的教学实验环节中多次使用,教学效果反映良好。

关键词:DVCC 8255 延时程序 6位分组控制

一、DVCC系列单片机仿真实验系统简介

DVCC系列单片机仿真实验系统由仿真技术及模块化实验电路结合而成,可用于MCS-51、MCS-96系列单片机的教学实验与仿真开发。该系统模拟用户开发环境,可与PC机联机,实现用户程序的编辑、编译与调试运行。DVCC仿真实验系统配备有8255、8251、8155等单片机常用接口芯片,脉冲发生器,步进电机,继电器,EPROM编程器等多种单片机应用设计辅助单元。本文主要涉及到数码管控制与8255并行I/O端口扩展对LED的控制。

二、详细设计

1.数码管控制

DVCC实验箱提供了6个数码管,其电路连接封装于实验箱内部,无需手动连线,使用极为简单。6个数码管的字形口地址为0FF22H,位选口地址为0FF21H;由16位寄存器DPTR或8位寄存器R0、R1控制皆可。

2.8255并行I/O端口扩展对LED的控制

DVCC实验箱提供了共12个LED,可直接通过MCS-51单片机I/O口(如P1)控制,也可由芯片(如8255)扩展控制,需通过插针线手动连接。在基本LED的流水式显示实验中,可选择MCS-51单片机P1口控制8个LED由进行;若需要控制所有12个LED,则需要由P1口和P2口共同控制。但是,如果将12个LED的流水式显示与数码管的跑马灯应用结合,则P2口必须用作数码管等设备的高8位地址位,无法和P1口共同控制LED,所以需要将12个LED的控制交由扩展芯片(如8255)完成。此时,需要合理分配使用3个地址寄存器(即DPTR、R0和R1),才能有效同时控制12个LED与6个数码管。本文选取DPTR动态控制8255的控制口、数码管的字形口与位选口,R0和R1分别控制8255的A口和B口(默认地址高8位为0FFH)。

3.六位分组控制

在确定8255的A口和B口控制LED后,需要从A口和B口共16位中选取12位逐一控制12个LED,本文选取了PA0~PA5和PB0~PB5共12位分别控制LED1~LED12,即“六位分组控制”。

将12个LED“六位分组控制”,分成2组,正好与6个数码管在数量上对应。这种分配方案的最大好处是可用1个寄存器(如累加器)同时控制一组LED与6个数码管,然后再用该寄存器控制另一组LED与6个数码管。反映在程序中则以对称的形式表现,代码的两部分完全对应,简洁易懂(可参见本文最后的程序清单)。

4.8255的A口与B口切换控制

将12个LED“六位分组控制”形成两组后,由于在流水式显示中任意时刻只使用两组中的某一组,所以用一个寄存器控制即可。不过,这里需要有一个切换开关,指示寄存器当前控制的是两组寄存器中的哪一组,即选用PA口连接还是PB口连接的LED。比较直观的解决方法是设置一个标志位作为开关,本文选取的程序状态字PSW中的用户自定义标志F0。

三、程序清单

ORG 0000H

MOV SP,#60H

CLR F0

MOV DPTR,#0FF2BH ;设置8255控制口地址

MOV A,#80H

MOVX @DPTR,A ;设置8255工作方式

MOV DPTR,#0FF22H ;设置数码管字形口地址

MOV A,#80H

MOVX @DPTR,A ;选定字形为数字"8"

MOV DPTR,#0FF21H ;设置数码管位选口地址

MOV R0,#29H ;设置A口地址

MOV R1,#2AH ;设置B口地址

ST:MOV A,#01H

CPL F0 ;置换开关F0

NEXT:JNB F0,L1

MOVX @DPTR,A ;选定数码管字位

MOVX @R0,A ;选定A口使用位

PUSH ACC ;保存A口使用位

CLR A

MOVX @R1,A ;将B口清零

POP ACC ;载入A口使用位

MOV R7,#25H

LCALL DELAY ;调用延时

AJMP L2

L1:MOVX @DPTR,A ;选定数码管字位

MOVX @R1,A ;选定B口使用位

PUSH ACC ;保存B口使用位

CLR A

MOVX @R0,A ;将A口清零

POP ACC ;载入B口使用位

MOV R7,#25H

LCALL DELAY ;调用延时

L2:RL A

JB ACC.6,ST

AJMP NEXT

DELAY: PUSH 07H

DELAY1: PUSH 07H

DELAY2: PUSH 07H

DELAY3: DJNZ R7,DELAY3

POP 07H

DJNZ R7,DELAY2

POP 07H

DJNZ R7,DELAY1

POP 07H

DJNZ R7,DELAY

RET

END

参考文献:

[1]胡辉.单片机原理与应用[M].中国水利水电出版社,2011-02.

[2]东南大学计算机科学与工程系.DVCC系列单片机微机仿真实验系统[M].启动计算机厂有限公司

上一篇:略谈建筑工程水电设备安装技术研讨 下一篇:暖通工程的施工质量控制