字幕机课程设计2Word文档格式.docx

上传人:b****6 文档编号:17626193 上传时间:2022-12-07 格式:DOCX 页数:27 大小:89.48KB
下载 相关 举报
字幕机课程设计2Word文档格式.docx_第1页
第1页 / 共27页
字幕机课程设计2Word文档格式.docx_第2页
第2页 / 共27页
字幕机课程设计2Word文档格式.docx_第3页
第3页 / 共27页
字幕机课程设计2Word文档格式.docx_第4页
第4页 / 共27页
字幕机课程设计2Word文档格式.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

字幕机课程设计2Word文档格式.docx

《字幕机课程设计2Word文档格式.docx》由会员分享,可在线阅读,更多相关《字幕机课程设计2Word文档格式.docx(27页珍藏版)》请在冰豆网上搜索。

字幕机课程设计2Word文档格式.docx

2.1主要原理

简单字幕机动态显示字幕移动是系统总线和LED点阵两个模块组成来实现的,通过系统总线实现数据的输入,将数据代码输入到数据段中,系统总线中的IOY0、IOY1、IOY2、IOY3分别与系统总线中的CS1、CS2、CS3、CS4相连接,IOY0、IOY1、控制16*16模块中的行输入,IOY2、IOY3控制16*16模块中的列输入,由于我的字幕是由下向上滚动显示,一行一行的输入,因此,数据段中的数据将一行中的第一模块第二模块连在一起,系统总线中的IOW#与LED中的WR相连控制写输入。

在程序段,另外在START程序中,MOVDS,AX为初始化,起到把数据存入DS中的作用,OUTDS,AL输出,BGO:

MOVAX,160为定义外循环次数,且,数值越大,速度越快,保持时间越长,MOVSL,OFFSETHZDOT为取偏移地址给SI,调用ML1,ML2可实现循环,每循环一次,内循环CX循环一次减1,直到为0为止,为了内外两个循环最终可在16*16发光二极管矩阵动态持续地循环显示“棋盘山之旅的美好回忆”。

若想改变汉字的移动速度和持续时间,我们可以改变0D0H值,数值越小,动态移动显示速度越快,持续时间越短;

反之,速度越慢,持续时间越长。

2.2程序调试及说明

编写程序并非轻而易举,也需要不断的摸索与研究。

该程序也是经过了无数次的上机调试、运行才最终得以确定的。

2.2.1程序调试

1、现象:

汉字“棋盘山之旅的美好回忆”中的“好”在显示器上显示时不清晰,有疵点。

原因:

“好”字数据编码誊写时有误。

解决:

仔细检查编码的对与错。

2、现象:

汉字在显示器上移动速度过快。

外循环次数BL值过小。

解决:

将BL值改为较为合适的值0D0H。

3、现象:

16*16发光二极管矩阵显示器上该亮的地方未亮,相反不该亮的亮。

原因:

接线时有的接反了。

重新按照接线图正确接线。

4、现象:

字幕循环完之后出现乱码。

循环后程序找不到继续输出的程序。

在最后加上一组000H。

2.2.2结果说明

此简单字幕机的程序还是比较成功的,不过由于8*8模块的输出范围有限,

所以用16*16模块,要考虑到一个字由四块组成,所以输入的数据要以来输入。

我们也可以人为的控制汉字移动速度和持续时间,即改变外循环次数BL值,值越小移动越快。

另外,此次程序实现的只是让汉字上下移动,若时间允许,我们会尝试着研究让汉字左右移动的程序,以实现汉字动态显示的更多样化。

3原理流程图

4实际接线图

5源程序清单及注释

;

============================================================

文件名称:

LED16.ASM

功能描述:

行:

CS1(600H),CS2(640H)列:

CS3(680H),CS4(6C0H)

ROW1EQU0600H;

端口定义

ROW2EQU0640H

COL1EQU0680H

COL2EQU06C0H

STACK1SEGMENTSTACK

DW256DUP(?

STACK1ENDS

DATASEGMENT

HZDOTDB000H,000H,000H,000H,00CH,005H,09EH,00FH

DB01EH,005H,00CH,005H,01EH,007H,03FH,005H

DB02DH,007H,00CH,005H,0CCH,01FH,00CH,000H

DB08CH,00DH,0CCH,018H,040H,010H,000H,000H

DB000H,000H,080H,000H,040H,000H,0E0H,003H

DB020H,002H,0A0H,002H,0F0H,007H,020H,002H

DB0A0H,002H,020H,002H,0F0H,007H,050H,005H

DB050H,005H,050H,005H,0FCH,01FH,000H,000H

DB000H,000H,000H,000H,080H,001H,080H,001H

DB080H,001H,080H,001H,098H,019H,098H,019H

DB098H,019H,098H,019H,098H,019H,0F8H,01FH

DB0F8H,01FH,000H,000H,000H,000H,000H,000H

DB000H,000H,080H,000H,000H,001H,000H,000H

DB0E0H,007H,0E0H,007H,000H,004H,000H,002H

DB000H,001H,080H,000H,040H,000H,020H,008H

DB0F0H,005H,000H,003H,000H,000H,000H,000H

DB000H,000H,000H,000H,018H,001H,018H,00FH

DB080H,001H,0BCH,004H,008H,002H,008H,013H

DB038H,00DH,024H,005H,024H,009H,024H,009H

DB022H,011H,032H,013H,020H,021H,000H,000H

DB000H,000H,020H,004H,010H,002H,008H,01FH

DB078H,010H,048H,010H,048H,011H,078H,012H

DB078H,014H,048H,010H,048H,010H,078H,018H

DB000H,018H,000H,000H,000H,000H,000H,000H

DB000H,000H,020H,004H,060H,006H,040H,002H

DB0E0H,007H,080H,000H,0C0H,001H,080H,000H

DB0E0H,007H,080H,001H,0F8H,01FH,0C0H,003H

DB060H,006H,030H,00CH,018H,018H,000H,000H

DB000H,000H,030H,000H,018H,01EH,0FCH,03EH

DB0FCH,020H,008H,020H,048H,030H,04CH,018H

DB044H,07FH,02CH,010H,028H,020H,018H,020H

DB03CH,020H,024H,014H,000H,008H,000H,000H

DB000H,000H,000H,000H,0FCH,03FH,0FCH,03FH

DB00CH,030H,00CH,030H,0CCH,033H,04CH,032H

DB04CH,032H,0CCH,032H,00CH,030H,00CH,030H

DB0FCH,03FH,0FCH,03FH,000H,000H,000H,000H

DB000H,000H,000H,000H,030H,07EH,030H,07EH

DB030H,040H,0B4H,060H,0B4H,030H,0B4H,018H

DB0B4H,00CH,030H,006H,030H,003H,030H,081H

DB030H,047H,030H,07CH,000H,000H,000H,000H

DB000H,000H,000H,000H,000H,000H,000H,000H

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVDX,ROW1

MOVAL,00H

OUTDX,AL

MOVDX,ROW2

MOVAL,0ffH

MOVDX,COL1

MOVDX,COL2

BG0:

MOVAX,160

MOVSI,OFFSETHZDOT

BG1:

CALLDISP

ADDSI,2

DECAX

JZBG0

JMPBG1

======显示汉字子程序======

入口参数:

SI=存放汉字起始地址

DISP:

MOVCX,000FH

PUSHAX

ML0:

PUSHCX

MOVBL,01H

MOVCX,0008H

ML1:

MOVDX,ROW1;

控制0--7行

MOVAL,[SI]

NOTAL

MOVDX,COL1;

0--7列

INCSI

MOVDX,COL2;

8--15列

INCSI

MOVDX,ROW1;

MOVAL,BL

ROLBL,1

CALLDELAY

LOOPML1

ML2:

MOVDX,ROW2;

控制8--15行

MOVDX,ROW2;

LOOPML2

SUBSI,32

POPCX

LOOPML0

POPAX

RET

DELAY:

PUSHCX;

延时子程序

MOVCX,0100H

DL1:

PUSHAX

POPAX

LOOPDL1

CODEENDS

ENDSTART

6.主要元器件介绍

6.18086简介

6.1.18086CPU简介

由于此系统最终要在西安唐都科教仪器出品的32位微机机教学实验系统TD-PITE/PITC上进行实验,故设计硬件配置时采用Intel8086,整个实验的硬件配置都以此为原则进行设计选用。

Intel8086是16位的微处理器(理论学习中为8088,其内部总线为16位,外部总线为8位,故称为准16位微处理器),它采用HMOS工艺40条引脚封装。

8086工作时使用5V电源,时钟频率5MHz(8086-1为10MHz,8086-2为8MHz)它有20根地址线,故可寻址的内存空间为1MB。

6.1.28086主要特性

Intel8086/8088CPU是Intel公司推出的高性能的微处理器,具体如下主要特性:

(1)8086CPU数据总线为16位,8088CUP数据总线为8位。

(2)地址总线都是20位,低16位用于数据总线复用,可直接寻址为1MB的存储空间。

(3)有16位的端口地址,可以寻址64KB的I/O端口。

(4)有99条基本指令,指令功能强大

(5)有9种基本寻址方式。

(6)可以处理内部和外部中断,外部中断源多达256个。

(7)兼容性好,与80*86,8085在源程序一级兼容。

(8)8086/8088标准主频为5MHz,8086/8088-2主频为8MH。

(9)支持单处理器或多处理器系统工作。

实验中是以Intel386EX微处理器为核心,来模拟8086处理器来进行系统的测试工作

AH

AL

BH

BL

CH

CL

DH

DL

SP

BP

DI

SI

CS

DS

SS

ES

IP

暂存器

外部

总线

ALU数据总线

指令预取

队列缓冲器

执行单元(EU)总线接口单元(BIU)

图1.1CPU8086内部结构图

6.1.38086CPU寄存器结构

8086CPU中有14个16位的寄存器,其中有4个16位的通用寄存器,2个16位指针寄存器,2个16位变址寄存器,1个16位指令指针及1个16位标志寄存器(仅用9位)。

●通用寄存器

通用寄存器包括累加器AX,基址寄存器BX,计数寄存器CX,数据寄存器DX四个寄存器,位于CPU的EU中,每个数据寄存器可存放16位操作数,

也可拆成两个8位寄存器,用来存放8位操作数。

表1.1通用寄存器的特殊用途和隐含属性

寄存器名称

特殊用途及隐含性质

AX

在输入输出指令中作数据寄存器,不能隐含

在乘法指令中存放被乘数或乘积,在除法指令中存放被除数或商,能隐藏

在LAHF指令中,作目标寄存器,能隐藏

在输入/输出指令中作数据寄存器,不能隐藏

在十进制运算指令中作累加器,能隐含

在XLAT指令中作累加器,能隐含

BX

在间接寻址中作基址寄存器,不能隐含

在XLAT指令中作基址寄存器,能隐含

CX

在串操作指令和LOOP指令中做计数器,能隐含

在移位/循环移位指令中作移位次数计数器,不能隐含

DX

在字乘法/除法指令中存放乘积高位或被除数高位或余数,能隐含

在间接寻址的输入/输出指令中作地址寄存器,不能隐含

●指针和变址寄存器

指针和变址寄存器包括:

堆栈指针SP、基址指针BP、源变址寄存器SI、和目的变址寄存器DI四个16位寄存器,可以来存放数据和地址。

表1.2指针和变址寄存器的特殊用途和隐含性质

在字符串运算指令中作源变址寄存器,能隐含

在间接寻址中作变址寄存器,不能隐含

在字符串运算指令中作目标变址寄存器,能隐含

在间接寻址中基址指针,不能隐含

在堆栈操作中作堆栈指针,能隐含

●段寄存器

段寄存器包括:

代码段寄存器CS,用于存放当前代码段的段地址;

数据段寄存器DS,用于存放当前数据段的段地址;

附加段寄存器ES,用于存放当前附加段的地址;

堆栈段寄存器SS,用于存放当前堆栈段的段地址。

这些段寄存器彼此不能互换,每个段寄存器在8086存储寻址空间中规定了64KB

的存储快。

该64KB存储快叫做段寄存器的当前段。

●专用寄存器

包括指令指针寄存器(IP)和标志寄存器(FR)。

指令指针寄存器(IP):

用来存放要取的下一条指令在当前代码段中的偏移地址,程序不能直接访问IP,在程序运行过程中,BIU可修改IP中内容。

指令指针寄存器每执行一次取操作,将自动加1,使它指向下一条要取的内存单元。

标志寄存器(FR):

尽定义了9位,其中6位用作状态标志,3位用作控制标志。

D15D12D4D2D0

OF

DF

IF

TF

SF

ZF

AF

PF

CF

●状态标志位

进位标志CF:

当前加法运算有进位,减法运算有借位时,CF=1,否则CF=0。

辅助进位标志AF:

在字节操作时,低4位向高4位有进位(加法)或有借位(减法);

在字操作时,低字节向高字节有进位(加法)或有借位(减法)时,则,AF=1,否则AF=0。

奇偶校验标志PF:

当运算结果低8位“1”的个数为偶数时,PF=1,否则PF=0。

零标志ZF:

当运算结果为0时,ZF=1,否则ZF=0。

溢出标志OF:

在有符号数的算术运算时,当运算结果有溢出时,OF=1,否则0F=0。

符号标志SF:

在有符号数的算术运算时,当运算结果为负时,SF=1,否则SF=0。

●控制标志位

方向标志DF:

当DF=0时,在串操作指令中,进行自动增址操作;

当DF=1时,在串操作指令中,进行自动减址操作。

中断允许标志IF:

当IF=0时,禁止响应可屏蔽中断;

当IF=1时,允许响应可屏蔽中断。

单步陷阱标志TF:

当TF=1时,表示进入单步工作方式;

当TF=0时,表示正

常执行。

6.1.4CPU引脚图

140

239

338

437

536

635

734

833

8086

932

1031

1130

1229

1328

1427

1526

1625

1724

1823

1922

2021

GND

AD14

AD13

AD12

AD11

AD10

AD9

AD8

AD7

AD6

AD5

AD4

AD3

AD2

AD1

AD0

NMI

INTR

CLK

Vcc

AD15

AD16/S3

AD17/S4

AD18/S5

AD19/S6

BHE/S7

MN/MX

RD

HOLD(RQ0/GT0)

HLDA(RQ1/GT1)

WR(LOCK

M/IO(S2)

DT/R(S1)

DEN(S0)

ALE(QS0)

INTA(QS1)

TEST

READY

REST

图1.2CPU8086引脚图

表1.38086CPU引脚说明

AD0~AD15

分时复用的双向、三态地址/数据线

AD19/S6~AD16/S3

分时复用,输出引脚

NMI(17)

输入,非可屏蔽请求

INTR(18)

输入,可屏蔽请求

CLK(19)

输入,时钟

GND(20)

(1)

地线(两个)

REST(21)

输入,复位

READY(22)

准备就绪,输入

TEST(23)

输入,测试低电平有效

INTA(QS1)(24)

输出,中断响应

ALE(QS0)(25)

输出,地址锁存允许

DEN(S0)(26)

三态输出,数据允许信号

DT/R(S1)(27)

三态输出,数据发送/接收控制信号

M/IO(S2)(28)

三态输出,存储器/IO端口

WR(LOCK)(29)

三态输出,写

HLDA(RQ1/GT1)(30)

总线请求响应,输出

HOLD(RQ0/GT0)(31)

输入总线请求

RD(32)

三态输出,读

MN/MX(33)

决定工作模式

BHE/S7(34)

三态输出,高8位数据有效/状态复

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1