当前位置:文档之家› 舞台灯的控制

舞台灯的控制

舞台灯的控制
舞台灯的控制

信息工程学院

课程设计报告

设计题目:舞台艺术灯的控制

名称:微机原理与接口课程设计

班级:通信1004班

姓名: 陈* 孙**

学号: 2010013597 2010013622

设计时间: 至

指导教师: 王**

评语:

评阅成绩: 评阅教师:

当今,现代的舞台美术元素中,灯光堪称是舞台美术的灵魂。虽言过其实,但有它一定的道理。舞台灯光在现代舞台演出中能使观众看清演员表演和景物形象;塑造人物形象,烘托情感和展现舞台幻觉;创造剧中需要的空间环境;渲染剧中气氛;显示时、空转换,丰富艺术感染力;配合舞台特技。舞台布景的样式、风格往往决定了舞台灯光艺术处理的框框,这就需要调动灯光特有的能动作用,而不是跟

着布景的样式依样画瓢,机械地去模拟生活,只起到"配光"的作用。

在现代文化艺术领域中,舞台艺术灯饰的设计在实际应用中起着重要的作用,随着科技的不断发展,舞台灯光控制正逐渐向自动化控制发展,在控制系统中的应用也得到越来越多的关注,由此可见,怎样才能发挥灯光在表演中的这些独特作用,具有重要作用。

一、课程设计的性质和目的 (1)

二、课程设计的要求 (1)

三、主要仪器设备及软件 (1)

四、课程设计题目及要求 (1)

五、课题分析及设计思路 (1)

5.1 8255A芯片的选择 (1)

5.2 8255A的内部结构 (2)

5.3 8255A的引脚功能 (3)

5.4 8255A的工作方式 (4)

5.5 8255A的初始化 (4)

六、程序流程图 (6)

七、仿真电路图 (7)

八、程序 (7)

九、心得体会 (12)

参考文献 (13)

一、课程设计的性质和目的

通过课程设计,进行程序设计方法和技能的基本训练,巩固在课堂上学到的有关软件程序设计的基本知识和基本方法,硬件电路的设计等,通过实际动手能力的培养,进一步熟悉汇编语言的结构和使用方法,掌握软硬结合的控制程序设计,达到能独立阅读、编制和调试一定规模的汇编语言程序的水平。

二、课程设计的要求

1、遵循模块化、结构化的程序设计方法。

2、要求程序必须正确。

3、程序简明易懂,多运用输入输出提示,有出错信息及必要的注释。

4、要求程序结构合理,语句使用得当。

5、适当追求编程技巧和程序运行效率。

三、主要仪器设备及软件

PC机、MASM汇编软件、Proteus软件及仿真等。

四、课程设计题目及要求

编写程序控制8255A可编程并行接口芯片,使实验台上的红、绿、黄发光二极管按照某种规律发光。

五、课题分析及设计思路

5.1 8255A芯片的选择

Intel8255A是一种通用的可编程序并行I/O接口芯片,又称“可编程外设接口芯片”,是为Intel8080/8085系列微处理据设计的,也可用于其它系列的微机系统。可由程序来改变其功能,通用性强、使用灵活。通过8255A,CPU可直接同外设相连接,是应用最广的并行I/O接口芯片。8255A含3个独立的8位并行输入/输出端口,各端口均具有数据的控制和锁存能力。可通过编程设置各端口的工作方式和数据传送方向(入/出/双向)。

5.2 8255A 的内部结构

数据总线缓冲器:三态8位双向缓冲器,与系统数据总线连接的缓冲部件;

传送数据、控制字、状态字的通道。

3个8位数据端口(PA 、PB 、PC):通常PA 口与PB 口用作输入输出的数据端口,PC 口用作数据传输或提供联络线的端口。在方式字的控制下,PC 口可以分成两个4位的端口,其中PC7~PC4同端口A 配合使用, PC3~PC0同端口B 配合使用。 A 组、B 组控制电路:这两组控制电路根据CPU 发出的方式选择控制字来控制8255A 的工作方式,每个控制组都接收来自读写控制逻辑的“命令”,接收来自内部数据总线的“控制字”,并向与其相连的端口发出适当的控制信号。A 组控制电路控制PA 口和PC 口高4位,B 组控制电路控制PB 口和PC 口低4位。

读/写控制逻辑:用来管理数据、控制字和状态字的传送,接收系统总线发来的有关信号,并向A 、B 两组控制部件发送命令。

内部数

据总线

PB 7~PB 0

B 组B 口(8位)

PC 3~PC 0

B 组

C 口(4位)

PC 7~PC 4PA 7~PA 0

A 组A 口(8位)

A 组C 口(4位)

A 组控制

B 组控制

D 7~D 0

数据总线缓冲器

读/写控制逻辑

RD WR A1A0RESET

CS

CPU 接口 内部逻辑 外设接口

图1 8255A 的结构框图

5.3 8255A 的引脚功能 DIP 封装,共40个引脚。 1. 连接系统总线的主要引脚

D0~D7:数据线,双向,连CPU 数据总线; RESET :复位输入,接系统总线的RESET ; CS :片选控制输入,接译码器; RD*:读命令输入,接CPU 的RD*或IOR*;

WR*:写命令输入,接CPU 的WR*或IOW*;

图2 8255A 的引脚图 A0,A1:片内端口地址输入,可选4个片内端口。接AB 的任2位。 A1、A0端口选择情况,见下表

由CS*、A1、A0、RD*、WR*引脚的不同组合,实现各种不同的功能。见下表:

2. 连接外设端的引脚

PA0~PA7:A 口外设数据线,接外设; PB0~PB7:B 口外设数据线,接外设; PC0~PC7:C 口外设数据线或联络线,接外设。

WR D 0D 1D 2D 3D 4D 5D 6D7V CC PB 7RD CS GND A 1A 0PA 4PA 5PA 6PA 7PB 5PB 6PB 4PB 3

RESET PB 1PB 2

PB 0PC 3PC 2PC 1PC 0PC 4PC 5PC 6PC 7PA 3PA 2PA 1PA 05

1

10

15

35

40

30

25

21

图3 8255A 与系统的连接示意图

5.4 8255A 的工作方式

①工作方式0—基本输入输出工作方式.

A,B,C 端口都可以作为输入或输出数据端口, 以无条件传送方式进行输入输出操作。

②工作方式1 —应答式单向输入输出工作方式

A,B 端口作为输入或输出数据端口,C 口分为两组分别作为A 口和B 口的应答联络线。

③工作方式2 —应答式双向输入输出工作方式

只有A 口可以工作于方式2, 可以双向操作,即可以输入也可以输出数据,C 口作为应答信号。 ④位操作工作方式

只有C 口可以进行位操作。

某端口工作于哪一种方式,可通过软件编程来指定。即向8255写入方式控制字来决定其工作方式。 5.5 8255A 的初始化

8255A 的各种工作方式由CPU 对8255A 写入控制命令字来设定,这个过程称为

“初始化”。

8255A 有2种控制命令字:

方式选择控制字——确定3个端口的工作方式; C 口置位/复位控制字——确定C 口某一位的初始状态。

D0~D7 WR RD A1 A0 CS DB

IOW IOR A2 A1

译码器

8255

A 口

B 口

C 口

D0~D7 外设1

A15~A2

系 统 总 线

外设2

外设3

两个控制字的差别:

工作方式控制字放在程序的开始部分;按位置位/复位控制字可放在初始化程序以后的任何地方。

8255A的初始化——方式选择控制字

图4 8255A的方式选择控制字格式

8255A的初始化——C口置位/复位控制字

位操作控制字

图5 8255A端口C置位/复位控制字格式

六、程序流程图

8255初始化

设置七段表数码管显示1 程序执行状态1 循环3次

数码管显示2 程序执行状态2

循环3次

数码管显示3 程序执行状态3

循环3次

数码管显示4 程序执行状态4 循环3次

数码管显示4 程序执行状态4 循环3次

结束

七、仿真电路图

AD0AD1AD2AD3AD4AD5AD6AD7

A0A1A2A3A4A5A6A7

AD0AD1AD2AD3AD4AD5AD6AD7

A3

A4A5

A6AD[0..15]READY 22INTR 18NMI 17RESET 21CLK 19

MN/MX 33HOLD/GT131HLDA/GT030A[16..19]M/IO/S028

ALE/QS025DT/R/S127INTA/QS124TEST 23BHE 34DEN/S226RD 32WR/LOCK 29U1

8086

D03Q02D14Q15D27Q26D38Q39D413Q412D514Q515D617Q616D718Q7

19

OE 1LE 11

U2

74LS373

D034D133D232D331D430D529D628D727RD 5WR 36A09A18RESET 35CS

6

PA04PA13PA22PA31PA440PA539PA638PA737PB018PB119PB220PB321PB422PB523PB624PB725PC014PC115PC216PC317PC413PC512PC611PC7

10

U3

8255A

AD[0..15]

A 1

B 2C

3

E16E24E35

Y015Y114Y213Y312Y411Y510Y69Y7

7

U4

74LS138

A[0..7]A1A2

AD[0..15]

RD WR M/IO

M/IO

RD WR XY BY NY DY BR XR NR DR BG XG NG DG

DX NX XX BX B R

D Y

N Y

X R

N R

DR

BG XG N G

D G

B X

X X

N X

DX

BY

XY

八、程序

DATA SEGMENT

TABLE DB 40H,79H,24H,30H,19H,12H DATA ENDS

CODE SEGMENT

ASSUME CS:CODE A8255 EQU 0040H B8255 EQU 0042H C8255 EQU 0044H CON8255 EQU 0046H

START : MOV AL,80H ;A 口方式0输出 MOV DX,CON8255

OUT DX,AL ;初始化8255 MOV AH,3

DISPLAY1: MOV BX,OFFSET TABLE ;七段代码表首地址 MOV AL,01H ;取1的偏移量

XLAT ;将被转换的七段代码赋给AL 寄存器 MOV DX,A8255 OUT DX,AL L1: MOV AL,0FFH

MOV DX,B8255

OUT DX,AL

MOV DX,C8255

OUT DX,AL ;PB=PC=FFH ,点亮全部灯

MOV BX,800 ;短延时,外循环次数为800

CALL DELY

MOV AL,00H

MOV DX,B8255

OUT DX,AL

MOV DX,C8255

OUT DX,AL ;PB=PC=00H ,关闭全部灯

MOV BX,800 ;短延时,外循环次数为800

CALL DELY

DEC AH

JNZ L1 ;闪3次

MOV AH,3

DISPLAY2: MOV BX,OFFSET TABLE ;七段代码表首地址

MOV AL,02H ;取2的偏移量

XLAT;将被转换的七段代码赋给AL寄存器

MOV DX,A8255

OUT DX,AL

L2: MOV AL,10101010B

MOV DX,C8255

OUT DX,AL

MOV AL,10101010B

MOV DX,B8255

OUT DX,AL

MOV BX,800

CALL DELY

MOV AL,01010101B

MOV DX,C8255

OUT DX,AL

MOV AL,01010101B

MOV DX,B8255

OUT DX,AL ;方式1:间隔一个灯亮

MOV BX,800 ;短延时,外循环次数为800

CALL DELY

DEC AH

JNZ L2 ;闪3次

MOV AH,3

DISPLAY3: MOV BX,OFFSET TABLE ;七段代码表首地址

MOV AL,03H ;取3的偏移量

XLAT;将被转换的七段代码赋给AL寄存器

MOV DX,A8255

OUT DX,AL

L3: MOV AL,11001100B

MOV DX,C8255

OUT DX,AL

MOV AL,11001100B

MOV DX,B8255

OUT DX,AL

MOV BX,800

CALL DELY

MOV AL,01100110B

MOV DX,C8255

OUT DX,AL

MOV AL,01100110B

MOV DX,B8255

OUT DX,AL

MOV BX,800

CALL DELY

MOV AL,00110011B

MOV DX,C8255

OUT DX,AL

MOV AL,00110011B

MOV DX,B8255

OUT DX,AL

MOV BX,800

CALL DELY

MOV AL,10011001B

MOV DX,C8255

OUT DX,AL

MOV AL,10011001B

MOV DX,B8255

OUT DX,AL ;方式2:间隔二个灯亮

MOV BX,800 ;短延时,外循环次数为800

CALL DELY

DEC AH

JNZ L3 ;闪3次

MOV AH,3

DISPLAY4: MOV BX,OFFSET TABLE;七段代码表首地址

MOV AL,04H ;取4的偏移量

XLAT;将被转换的七段代码赋给AL寄存器

MOV DX,A8255

OUT DX,AL

L4: MOV AL,11101110B

MOV DX,C8255

OUT DX,AL

MOV AL,11101110B

MOV DX,B8255

OUT DX,AL

MOV BX,800

CALL DELY

MOV AL,01110111B

MOV DX,C8255

OUT DX,AL

MOV AL,01110111B

MOV DX,B8255

OUT DX,AL

MOV BX,800

CALL DELY

MOV AL,10111011B

MOV DX,C8255

OUT DX,AL

MOV AL,10111011B

MOV DX,B8255

OUT DX,AL

MOV BX,800

CALL DELY

MOV AL,11011101B

MOV DX,C8255

OUT DX,AL

MOV AL,11011101B

MOV DX,B8255 ;方式3:间隔三个灯亮

OUT DX,AL

MOV BX,800 ;短延时,外循环次数为800

CALL DELY

DEC AH

JNZ L4 ;闪3次

MOV AH,3

DISPLAY5: MOV BX,OFFSET TABLE;七段代码表首地址

MOV AL,05H ;取5的偏移量

XLAT;将被转换的七段代码赋给AL寄存器

MOV DX,A8255

OUT DX,AL

L5: MOV AL,10110111B

MOV DX,C8255

OUT DX,AL

MOV AL,10110111B

MOV DX,B8255

OUT DX,AL

MOV BX,800

CALL DELY

MOV AL,11011011B

MOV DX,C8255

OUT DX,AL

MOV AL,11011011B

MOV DX,B8255

OUT DX,AL

MOV BX,800

CALL DELY

MOV AL,11101101B

MOV DX,C8255

OUT DX,AL

MOV AL,11101101B

MOV DX,B8255

OUT DX,AL

MOV BX,800

CALL DELY

MOV AL,11110110B

MOV DX,C8255

OUT DX,AL

MOV AL,11110110B

MOV DX,B8255

OUT DX,AL ;方式4:间隔四个灯亮

MOV BX,800 ;短延时,外循环次数为800

CALL DELY

DEC AH

JNZ L5 ;闪3次

DELY PROC ;延时子程序

NEXT2: MOV CX,500 ;内循环次数固定为500 NEXT1: LOOP NEXT1

DEC BX ;外循环次数由主程序决定

JNZ NEXT2

RET

DELY ENDP

CODE ENDS

END START

九、心得体会

本次<<微机原理与接口技术>>课程设计,我们付出了很多,也收获了不少,感受颇多。

1、对所学理论知识有了深一步的理解,尤其是通过编程对可编程并行接口芯片8255A相关用法有了一定的了解,进一步巩固了书上所学的内容,加深了印象。

2、提高了自己学习和实践能力。刚开始我们自己不知道怎么编写程序,就参考了平时做过的一些硬件和软件实验的程序,自己模仿着写,通过自己慢慢摸索,知道了一些常见的错误,反复修改自己的编写程序,再慢慢调试程序,直到没有错误,然后将程序运用到硬件电路中,编写的程序与硬件电路相结合,最后到硬件电路能正确仿真。

3、增加了团结协作的能力。在这次课程设计过程中我们遇到了一些问题,但通过我们的共同讨论和老师的指导,最后还是解决了。每个人对问题的看法不同,所以思路更广泛。

总之,通过这次课程设计,我们学到了不少东西,掌握和了解了一定的知识,对汇编语言中的一些指令有了新的理解,也对Proteus软件中的一些功能知道如何去运用。

参考文献

[1]周国祥.微机原理里与接口技术.合肥:中国科学技术大学出版社,2010.

[2]汪吉鹏.微机原理与接口技术[M] .北京:高等教育出版社,2001.

[3] 王克义,宋新波,罗建英.微型计算机基本原理与应用[M].北京:北京大学出版社,1997.

[4]周佩玲,彭虎,傅忠谦.微机原理与接口技术学习指导:基于16位机.北京:电子工业出版社,2005.

[5] 朱莹,王让定.汇编语言与接口技术习题汇编及精解.北京:清华大学出版社,2007.11

相关主题
文本预览
相关文档 最新文档