简单字幕机课程设计.docx

上传人:罗晋 文档编号:6198839 上传时间:2020-09-22 格式:DOCX 页数:23 大小:460.72KB
返回 下载 相关 举报
简单字幕机课程设计.docx_第1页
第1页 / 共23页
简单字幕机课程设计.docx_第2页
第2页 / 共23页
简单字幕机课程设计.docx_第3页
第3页 / 共23页
简单字幕机课程设计.docx_第4页
第4页 / 共23页
简单字幕机课程设计.docx_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《简单字幕机课程设计.docx》由会员分享,可在线阅读,更多相关《简单字幕机课程设计.docx(23页珍藏版)》请在三一文库上搜索。

1、.1 设计任务描述1.1 设计题目简单字幕机1.2 设计内容1.2.1 设计目的通过课程设计使学生更进一步掌握微机原理及应用课程的有关知识, 提高应用微机解决问题的能力, 加深对微机应用的理解。 通过查阅资料, 结合所学知识进行软、 硬件的设计,使学生初步掌握应用微机解决问题的步骤及方法。为以后学生结合专业从事微机应用设计奠定基础。1.2.2 设计的主要要求及内容要求:查阅可编程并行芯片 8255 或其他相关资料。文字显示是通过把该文字的图形信息输出到显示器件,配合软件不同的刷新方式即可实现文字的多种方式的移动。内容:利用所编的软件配合微机原理实验箱的 1616 发光二极管矩阵,动态显示汉字及

2、字符。1.2.3 发挥部分实现字幕的多种方式的移动。;.2 设计思路2.1 主要原理 字幕机 示字幕移 是由可 程的并行接口器件点 LED 示 元的四个口来 的,包括点 LED 示 元的 CS1 口、 CS2 口、 CS3 口和一个 CS4 口。整个 程序是 的:首先,通 指令操作定 端口,其中 CS1、CS2 定 行控制端口 CS3、CS4 定 列控制端口,再定 一个 256 位的字型存 空 。 然后再利用包含 指令 INCLUDE 来指明包含的 入我相思门 知我相思苦 示符号的 ,共由 176 行、16 列 成, 个数字矩 可根据不同的数字而改 , 也是程序 写的关 之一。 然后, 写程序

3、初始化 句。把上述数据全部数据寄存器 DS 中;因 足 1616 光二极管矩 灯亮的条件是列 1 且行 0,并且将 1616 分成四个模 示 ,所以在此 定列的最高位 L8 列 足全 1,从列高位到列低位 10000000。定 完成后,即 程序最关 的部分 循 示字幕移 。定 外循 次数 160,取 指令 INCLUDE 中包含的第一个 字的偏移地址(首地址) SI。 用程序 DISP( 字 示程序),定 内部外循 次数 000FH 次(16 次),内部内循 次数 0008H, 用 DELAY 子程序 行延 ,延 共 4us+4us+4us 4次+4us+4us=32us,然后返回主程序。即内

4、循 每循 8 次,内部外循 中 CX 减 1,直至减 0,可达到 字持 示。 此段程序可循 示第一个 字, 下面依照上述步 , 循 示第二个 字、第三个 字 第十一个 形,通 内外循 ,最 即可在 1616 光二极管矩 上 、持 、循 示 字。若想改 字的移 速度和持 ,我 可以改 160 ,数 越小, 移 示速度越快,持 越短;反之,速度越慢,持 越 。2.2 程序调试及说明 写程序并非 而易 , 也需要不断的摸索与研究。 程序也是 了无数次的上机 、运行才最 得以确定的。2.2.1 程序 1、 象: 字 “我 ”在 示器上 示 和“相”字界限不清晰, 人混乱的感 。原因: “我”字 , 注

5、意空出行的 定。解决:将“我”字改 。2、 象: 字在 示器上移 速度 快。原因:外循 次数 小。解决:将 BL 改 合适的 160。;.3、现象: 1616 发光二极管矩阵显示器上该亮的地方未亮,相反不该亮的亮了。原因:接线时有的接反了。解决:重新按照接线图正确接线。2.2.2 结果说明此简单字幕机的程序还是比较成功的, 由于 16X16发光二极管矩阵显示器不够大,有些笔画复杂的汉字就无法清晰的显示了。 我们可以人为的控制汉字移动速度和持续时间,即改变外循环次数值,值越小移动越快。另外,此次程序实现的只是让汉字上下移动, 若时间允许,我们会尝试着研究让汉字左右移动的程序,以实现汉字动态显示的

6、更多样化。;.3 设计原理流程图初 始 化工 作 部 分内 循 环外循环修改与控制外 循 环外循环修改与控制外 循 环;.4 实际硬件接线图系XD0D0点统阵总XD7D7显线IOW#WR示单IOY0CS1单元IOY1CS2元IOY2CS3IOY3CS4;.5 源程序清单及注释ROW1EQU 0600H;端口定义ROW2EQU 0640HCOL1EQU 0680HCOL2EQU 06C0HSTACK1SEGMENT STACKDW 256 DUP(?)STACK1ENDS;定义为数据段DATASEGMENT;入HZDOT1 DB 000H,000H,00CH,000H,01EH,000H,030

7、H,000H DB 060H,000H,0C0H,000H,080H,001H,080H,003HDB 0C0H,006H,060H,00CH,030H,018H,01FH,070H DB 00EH,0E0H,000H,000H,000H,000H,000H,000H;我DB 000H,000H,040H,001H,020H,009H,010H,011HDB 018H,021H,016H,001H,010H,001H,0FEH,07FHDB 010H,001H,030H,001H,010H,011H,01CH,00AHDB 016H,004H,010H,04AH,014H,029H,018H,

8、010H;相DB 000H,000H,010H,0FEH,010H,082H,010H,082HDB 07FH,082H,018H,0FEH,038H,082H,054H,082HDB 092H,082H,011H,0FEH,010H,082H,010H,082HDB 010H,082H,010H,0FEH,010H,082H,000H,000H;思DB 000H,000H,0FCH,03FH,004H,021H,004H,021HDB 0FCH,03FH,004H,021H,0FCH,03FH,004H,020HDB 000H,021H,034H,042H,034H,094H,032H,02

9、0HDB 020H,010H,0C0H,00FH,000H,000H,000H,000H;.;门DB 000H,000H,018H,000H,0A0H,03FH,024H,020HDB 004H,020H,004H,020H,004H,020H,004H,020HDB 004H,020H,004H,020H,004H,020H,004H,020HDB 004H,020H,004H,028H,004H,038H,000H,000H;知DB 008H,000H,008H,000H,07CH,07EH,002H,042HDB 011H,042H,010H,042H,010H,042H,07FH,04

10、2HDB 010H,042H,010H,042H,018H,042H,028H,042HDB 024H,042H,044H,07EH,002H,042H,001H,000H;我DB 000H,000H,040H,001H,020H,009H,010H,011HDB 018H,021H,016H,001H,010H,001H,0FEH,07FHDB 010H,001H,030H,001H,010H,011H,01CH,00AHDB 016H,004H,010H,04AH,014H,029H,018H,010H;相DB 000H,000H,010H,0FEH,010H,082H,010H,082H

11、DB 07FH,082H,018H,0FEH,038H,082H,054H,082HDB 092H,082H,011H,0FEH,010H,082H,010H,082HDB 010H,082H,010H,0FEH,010H,082H,000H,000H;思DB 000H,000H,0FCH,03FH,004H,021H,004H,021HDB 0FCH,03FH,004H,021H,0FCH,03FH,004H,020HDB 000H,021H,034H,042H,034H,094H,032H,020HDB 020H,010H,0C0H,00FH,000H,000H,000H,000H;苦DB

12、 000H,000H,010H,008H,0FEH,07FH,010H,008HDB 000H,001H,0FCH,03FH,000H,001H,000H,001HDB 000H,001H,0F0H,01FH,010H,010H,010H,010HDB 010H,010H,010H,010H,0F0H,01FH,010H,010H;.;心DB 000H,000H,030H,018H,078H,03CH,0FCH,07EHDB 0FEH,0FEH,0FEH,0FFH,0FCH,07FH,0F8H,03FHDB 0F0H,01FH,0E0H,00FH,0C0H,007H,080H,003HDB 0

13、00H,001H,000H,000H,000H,000H,000H,000HDATAENDSCODESEGMENTASSUMECS:CODE, DS:DATASTART: MOV AX, DATAMOV DS, AXMOV DX, ROW1MOV AL, 00HOUT DX, ALMOV DX, ROW2OUT DX, ALMOV AL, 0ffHMOV DX, COL1OUT DX, ALMOV DX, COL2OUT DX, ALBG0:MOV AX, 160MOV SI, OFFSET HZDOT1BG1:CALL DISPADD SI, 2DEC AXJZ BG0JMP BG1;= 显

14、示汉字子程序 =;入口参数 : SI = 存放汉字起始地址DISP:MOV CX, 000FHPUSH AXML0:PUSH CXMOV BL, 01HMOV CX, 0008HML1:MOV DX, ROW1;控制 0-7 行;.MOV AL, 00HOUT DX, ALMOV AL, SInot alMOV DX, COL1;0-7 列OUT DX, ALINC SIMOV AL, SInot alMOV DX, COL2;8-15 列OUT DX, ALINC SIMOV DX, ROW1;控制 0-7 行MOV AL, BLOUT DX, ALROL BL, 1CALL DELAYLO

15、OP ML1MOV DX, ROW1MOV AL, 00HOUT DX, ALMOV CX, 0008HML2:MOV DX, ROW2;控制 8-15 行MOV AL, 00HOUT DX, ALMOV AL, SInot alMOV DX, COL1;0-7 列OUT DX, ALINC SIMOV AL, SInot alMOV DX, COL2;8-15 列OUT DX, ALINC SIMOV DX, ROW2;控制 8-15 行MOV AL, BL;.OUT DX, ALROL BL, 1CALL DELAYLOOP ML2MOV DX, ROW2MOV AL, 00HOUT DX

16、, ALSUB SI, 32POP CXLOOP ML0POP AXRETDELAY: PUSH CX;延时子程序MOV CX, 0100HDL1:PUSH AXPOP AXLOOP DL1POP CXRETCODEENDSEND START;.6. 主要元器件介绍6.1 8086 简介6.1.18086 CPU 简介由于此系统最终要在西安唐都科教仪器出品的32 位微机机教学实验系统 TD-PITE/PITC 上进行实验,故设计硬件配置时采用 Intel8086,整个实验的硬件配置都以此为原则进行设计选用。 Intel8086 是 16 位的微处理器(理论学习中为 8088,其内部总线为 16

17、 位,外部总线为 8 位,故称为准 16 位微处理器),它采用 HMOS 工艺 40 条引脚封装。 8086 工作时使用 5V 电源,时钟频率 5MHz( 8086-1 为 10MHz ,8086-2 为 8MHz )它有 20 根地址线,故可寻址的内存空间为 1MB 。6.1.2 8086主要特性Intel8086/8088CPU 是 Intel 公司推出的高性能的微处理器,具体如下主要特性:(1) 8086CPU 数据总线为 16 位, 8088CUP 数据总线为 8 位。(2) 地址总线都是 20 位,低 16 位用于数据总线复用, 可直接寻址为 1MB的存储空间。(3) 有 16 位的

18、端口地址,可以寻址64KB 的 I/O 端口。(4) 有 99 条基本指令,指令功能强大(5) 有 9 种基本寻址方式。(6) 可以处理内部和外部中断,外部中断源多达 256 个。(7) 兼容性好,与 80*86 , 8085 在源程序一级兼容。(8) 8086/8088 标准主频为 5MHz ,8086/8088-2 主频为 8MH 。(9)支持单处理器或多处理器系统工作。;.实验中是以 Intel386EX 微处理器为核心,来模拟 8086 处理器来进行系统的测试工作地址总线地址加法器通用寄存器AHALBH BL CH CLDHDLSPBPDISIAXBXCXDXCSDSSSESIP暂存器

19、ALU 数据总线数据总线总线外部逻辑控制总线暂存器 TALUEU指令预取队列缓冲器控制器标志寄存器 FR队列总线执行单元 (EU)总线接口单元 (BIU)图 1.1 CPU8086内部结构图6.1.3 8086CPU 寄存器结构8086CPU 中有 14 个 16 位的寄存器 ,其中有 4 个 16 位的通用寄存器 ,2 个 16 位指针寄存器 ,2 个 16 位变址寄存器 ,1 个 16 位指令指针及 1 个 16 位标志寄存器 (仅用 9 位)。 通用寄存器通用寄存器包括累加器 AX ,基址寄存器 BX ,计数寄存器 CX,数据寄存器 DX 四个寄存器,位于 CPU 的 EU 中,每个数据

20、寄存器可存放 16 位操作数,也可拆成两个 8 位寄存器,用来存放 8 位操作数。;.表 1.1 通用寄存器的特殊用途和隐含属性寄存器名称特殊用途及隐含性质AX在输入输出指令中作数据寄存器,不能隐含在乘法指令中存放被乘数或乘积, 在除法指令中存放被除数或商,能隐藏AH在 LAHF 指令中,作目标寄存器,能隐藏AL在输入 /输出指令中作数据寄存器,不能隐藏在十进制运算指令中作累加器,能隐含在 XLAT 指令中作累加器,能隐含BX在间接寻址中作基址寄存器,不能隐含在 XLAT 指令中作基址寄存器,能隐含CX在串操作指令和 LOOP 指令中做计数器,能隐含CL在移位 /循环移位指令中作移位次数计数器

21、,不能隐含DX在字乘法 /除法指令中存放乘积高位或被除数高位或余数,能隐含在间接寻址的输入 /输出指令中作地址寄存器,不能隐含 指针和变址寄存器指针和变址寄存器包括: 堆栈指针 SP、基址指针 BP、源变址寄存器 SI、和目的变址寄存器 DI 四个 16 位寄存器,可以来存放数据和地址。表 1.2 指针和变址寄存器的特殊用途和隐含性质寄存器名特殊用途及隐含性质称SI在字符串运算指令中作源变址寄存器,能隐含在间接寻址中作变址寄存器,不能隐含DI在字符串运算指令中作目标变址寄存器,能隐含在间接寻址中作变址寄存器,不能隐含BP在间接寻址中基址指针,不能隐含SP在堆栈操作中作堆栈指针,能隐含 段寄存器

22、段寄存器包括:代码段寄存器 CS,用于存放当前代码段的段地址;数据段寄存器 DS,用于存放当前数据段的段地址;附加段寄存器 ES,用于存放当前附加段的地址;堆栈段寄存器 SS,用于存放当前堆栈段的段地址。这些段寄存器彼此不能互换,每个段寄存器在8086 存储寻址空间中规定了64KB 的存储快。该 64KB 存储快叫做段寄存器的当前段。 专用寄存器;.包括指令指针寄存器( IP)和标志寄存器( FR)。指令指针寄存器( IP):用来存放要取的下一条指令在当前代码段中的偏移地址,程序不能直接访问IP,在程序运行过程中,BIU 可修改 IP 中内容。指令指针寄存器每执行一次取操作,将自动加 1,使它

23、指向下一条要取的内存单元。标志寄存器( FR):尽定义了 9 位,其中 6 位用作状态标志, 3 位用作控制标志。D15D12D4D2D0OF DFIF TFSF ZFAFPFCF状态标志位进位标志 CF:当前加法运算有进位,减法运算有借位时, CF=1,否则CF=0。辅助进位标志 AF:在字节操作时,低 4 位向高 4 位有进位(加法)或有借位(减法);在字操作时,低字节向高字节有进位(加法)或有借位(减法)时,则, AF=1 ,否则 AF=0。奇偶校验标志 PF:当运算结果低 8 位 “1的”个数为偶数时, PF=1,否则PF=0。零标志 ZF:当运算结果为0 时, ZF=1,否则 ZF=

24、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.4 CPU 引脚图;.GND140VccAD14AD15239AD13338AD16/S3AD12A

25、D17/S4437AD11AD18/S5536AD10AD19/S6635AD9BHE/S7734AD8MN/MX833AD7RD932AD68086HOLD(RQ0/GT0)1031AD5HLDA(RQ1/GT1)1130AD4WR(LOCK1229AD3M/IO(S2)1328AD2DT/R(S1)1427AD1DEN(S0)1526AD0ALE(QS0)1625NMIINTA(QS1)1724INTRTEST1823CLKREADY1922GNDREST2021图 1.2 CPU8086 引脚图表 1.3 8086CPU 引脚说明AD0AD15分时复用的双向、三态地址/数据线AD19/S

26、6AD16/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)(3

27、1)输入总线请求RD(32)三态输出,读MN/MX(33)决定工作模式;.BHE/S7(34)三态输出,高8 位数据有效 /状态复用6.1.5 16 16LED 点阵1616 LED 点阵是将 16 行 16 列的 LED 以矩阵方式排列成为一个器件。 本次设计所使用的 LED 点阵是使每行 LED 的阴极连接在一起 ,每列 LED 的阳极连接在一起 ,再经过驱动电路分别引出16 个行引角和 16 个列引角,若要点亮其中的 LED ,则列为低电平 0,行为高电平 1。LED 点阵的显示采用扫描的方式,首先将所要显示的字按每行拆解成多组显示信号。若让LED 点阵显示出所需要的“入我相思门 ”“知

28、我相思苦 ”十个字和一个,则可列出显示编码,如下表:“入 ”扫描顺序显示数据第1-4行000H,000H,00CH,000H,01EH,000H,030H,000H第5-8行060H,000H,0C0H,000H,080H,001H,080H,003H第 9-12行0C0H,006H,060H,00CH,030H,018H,01FH,070H第 13-16行00EH,0E0H,000H,000H,000H,000H,000H,000H“我 ”扫描顺序显示数据第1-4行000H,000H,010H,0FEH,010H,082H,010H,082H第5-8行07FH,082H,018H,0FEH,

29、038H,082H,054H,082H第 9-12行092H,082H,011H,0FEH,010H,082H,010H,082H第 13-16行010H,082H,010H,0FEH,010H,082H,000H,000H“思”扫描顺序显示数据第1-4行000H,000H,0FCH,03FH,004H,021H,004H,021H第5-8行0FCH,03FH,004H,021H,0FCH,03FH,004H,020H第 9-12行000H,021H,034H,042H,034H,094H,032H,020H第 13-16行020H,010H,0C0H,00FH,000H,000H,000H,

30、000H“门 ”扫描顺序显示数据第1-4行000H,000H,018H,000H,0A0H,03FH,024H,020H第5-8行004H,020H,004H,020H,004H,020H,004H,020H第 9-12行004H,020H,004H,020H,004H,020H,004H,020H;.第 13-16 行004H,020H,004H,028H,004H,038H,000H,000H“知 ”扫描顺序显示数据第1-4行008H,000H,008H,000H,07CH,07EH,002H,042H第5-8行011H,042H,010H,042H,010H,042H,07FH,042H

31、第 9-12行010H,042H,010H,042H,018H,042H,028H,042H第 13-16行024H,042H,044H,07EH,002H,042H,001H,000H“苦”扫描顺序显示数据第1-4行000H,000H,010H,008H,0FEH,07FH,010H,008H第5-8行000H,001H,0FCH,03FH,000H,001H,000H,001H第 9-12行000H,001H,0F0H,01FH,010H,010H,010H,010H第 13-16行010H,010H,010H,010H,0F0H,01FH,010H,010H“ ”扫描顺序显示数据第1-4

32、行000H,000H,030H,018H,078H,03CH,0FCH,07EH第5-8行0FEH,0FEH,0FEH,0FFH,0FCH,07FH,0F8H,03FH第 9-12行0F0H,01FH,0E0H,00FH,0C0H,007H,080H,003H第 13-16行000H,001H,000H,000H,000H,000H,000H,000H1616 LED 点阵在扫描时的先后顺序是左上 右上 左下 右下,所以编码也是先从左上方的模块开始的,以 “入 ”字为例,第一行和第二行都为 000H,当行为 0 列为 1 的时候该点灯亮,当每一列扫描时发现交点有 1 的点则 LED 灯亮,其余

33、的则不予相应不亮。行的显示要有一定时间, 若反复执行从第一行到最后一行的扫描, 由于人类视觉瞬时现象,将会感觉到 16 行 LED 同时显示的样子。若显示时间太短,则亮度不够,若显示时间太长,则会感觉闪烁。在以上基础上, 若间隔一定时间, 再使每次显示不同的字型, 即可实现不同的动态显示效果。6.2 软件介绍编写程序并非轻而易举, 也需要不断的摸索与研究。 首先要了解我们所设计的简单字幕机所要实现的功能和设计要求。 其主功能是:利用微机原理试验箱的 8255 单元和 1616 发光二极管矩阵,动态显示汉字及字符,实现多种方式的字;.幕移动。首先,是定义端口。ROW1EQU 0600H;端口定义

34、ROW2EQU 0640HCOL1EQU 0680HCOL2EQU 06C0H然后输入组成十一个字符的笔画代码数据,共由16 行、 16 列组成,这是程序编写的关键之一。DATASEGMENT;入HZDOT1 DB 000H,000H,00CH,000H,01EH,000H,030H,000H DB 060H,000H,0C0H,000H,080H,001H,080H,003HDB 0C0H,006H,060H,00CH,030H,018H,01FH,070H DB 00EH,0E0H,000H,000H,000H,000H,000H,000H;我DB 000H,000H,040H,001H,

35、020H,009H,010H,011HDB 018H,021H,016H,001H,010H,001H,0FEH,07FHDB 010H,001H,030H,001H,010H,011H,01CH,00AHDB 016H,004H,010H,04AH,014H,029H,018H,010H;相DB 000H,000H,010H,0FEH,010H,082H,010H,082HDB 07FH,082H,018H,0FEH,038H,082H,054H,082HDB 092H,082H,011H,0FEH,010H,082H,010H,082HDB 010H,082H,010H,0FEH,010H

36、,082H,000H,000H;思DB 000H,000H,0FCH,03FH,004H,021H,004H,021HDB 0FCH,03FH,004H,021H,0FCH,03FH,004H,020HDB 000H,021H,034H,042H,034H,094H,032H,020HDB 020H,010H,0C0H,00FH,000H,000H,000H,000H;门DB 000H,000H,018H,000H,0A0H,03FH,024H,020HDB 004H,020H,004H,020H,004H,020H,004H,020HDB 004H,020H,004H,020H,004H,020H,004H,020HDB 004H,020H,004H,028H,004H,038H,000H,000H;.;知DB 008H,000H,008H,000H,07CH,07EH,002H,042HDB 011H,042H,010H,042H,010H,042H,07FH,042HDB 010H,042H,010H,042H,018H,04

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

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1