您的当前位置:首页正文

数字化测量课程设计报告 第五组河北科技大学

2023-10-11 来源:客趣旅游网


河北科技大学

课程设计报告

学生姓名:

刘跃华(18) 刘青(19) 张连甲(31) 张朋永(33) 张瑞芳(34) 赵久强(36) 专业班级: 电子信息工程 学年学期: 2014 -2015学年第一学期 指导教师: 于国庆

2014 年 12月

1

课程设计成绩评定表

学生姓名 学生姓名 学生姓名 学生姓名 学生姓名 学生姓名 专业班级 刘跃华 刘青 张连甲 张朋永 张瑞芳 赵久强 电信111班 学号 学 号 学 号 学 号 学 号 学 号 起止时间 110701118 110701119 110701131 110701133 110701134 110701136 成绩 成绩 成绩 成绩 成绩 成绩 2014/12/01—2014/12/05 设计题目 指 导 教 师 评 语 1熟悉系统,输入:“KD2000型LED智能显示系统”并存储显示。 2汇编、输入、运行示例程序,了解系统硬件电路及软件编程特点。 汉字的旋转与扩缩 1在屏上显示2个汉字,然后每个字左旋90度显示3秒,然后右旋90度显示3秒,然后倒置3秒,最后恢复正常。 2逐行显示2个汉字,2秒后横向放大两倍,3秒后恢复正常。 3显示“回”字并放大缩小5次,恢复正常。 指导教师: 年 月 日 2

目录

.............................................. 4

二、硬件电路设计 ................................................. 4

一、设计题目及要求

1.主控制电路基本工作原理 .............................. 4 2.扫描板基本工作原理 .................................. 5 3.共享RAM电路的工作原理 .............................. 5 4.汉卡电路工作原理 .................................... 5 5.地址分配 ............................................ 6 6.键盘 ................................................ 7 三、系统的熟悉使用

.............................................. 8

1.BAS功能 ........................................... 8 2.PRG功能 .......................................... 11 3.屏幕与缓冲区地址对应关系 ........................... 12

............................................ 12 五、程序分工 ................................................... 15 六、心得体会 ................................................... 17

四、程序设计与调试

3

一、设计题目及要求

在掌握LED智能显示系统工作原理的基础上,能根据小组必做题目和自选题目,熟练的编写并调试各种程序,完成课题设计任务,提高学生的独立设计水平和实际动手能力,培养学生的创新精神。 (一)全班必做题目

1. 熟悉系统,输入:“KD2000型LED智能显示系统”并存储显示。 2. 汇编、输入、运行示例程序,了解系统硬件电路及软件编程特点。 (二)小组必做题目

第五组:汉字的旋转与扩缩

1、在屏上显示2个汉字,然后每个字左旋90度显示3秒,然后右旋90度显示3秒,然后倒置3秒,最后恢复正常。

2、逐行显示2个汉字,2秒后横向放大两倍,3秒后恢复正常。 3、显示“回”字并放大缩小5次,恢复正常。

二、硬件电路设计

KD-2000型LED智能显示屏的设计原理:

系统框图如图1所示。主要包括四部分:主控制电路(主CPU、汉卡等),显示控制电路(辅CPU等),列驱动显示电路,开关电源。

1. 主控制电路基本工作原理

主控制电路首先从遥控器或键盘接收数据和指令,然后根据显示内容和显示指令的要求在软件控制下完成下述工作:如果要显示汉字,就从扩展卡27020中提取汉字点阵信息,然后存放在共享RAM 6264中。如果要显示的是8×8点阵的ASCII码或数字,以及16×8点阵的控制字符,就从程序存储器27256的高端提取有关的点阵信息,然后存放于共享RAM中。最后,主CPU通过地址切换电路①与②及时序控制电路,与辅CPU以应答方式进行联络,对共享RAM进行分时操作,完成显示。

图1 系统框图

由专用的日历时钟芯片MC146818,可产生年、月、日、时、分、秒、星期

4

共7个时标信号。我们可通过软件来获得和修改这些时标,并使之在屏幕上显示出来。

2. 扫描板基本工作原理

首先由辅CPU将欲显示的数据由串行口送出,然后经并行/串行转换芯片CD4094转换成并行数据,输出的数据经过MC1413驱动产生列信号;由P1口输出的行数据经CD4515译码生成行信号,再经达林顿管BD682产生行驱动信号。最后输出行、列选通信号,点亮某一行。如此循环往复,完成扫描过程。

3.共享RAM电路的工作原理

为了大大减轻主CPU的负担,合理地分配资源,以及便于实现显示电路的高速扫描,该系统设计成双CPU结构,共享一片RAM。电路如图2所示。

共享RAM电路主要是通过六片74LS245来完成的,74LS245是三态八总线双向收发器。其中G是控制端,低电平时有效,允许传输;高电平时禁止。DIR是方向控制端,为低电平时数据由B传到A,呈高电平时,数据由A传到B。由原理图可以看到:IC1~IC3的G端不仅接主CPU的T0端,还接74LS74的Q端。IC4~IC6的G端不仅接显示CPU的INT0端,还接74LS74的Q端;这样当主CPU控制公共RAM时,Q端为低,IC1~IC3开启,IC4~IC6关闭。主CPU对RAM可进行读写操作,而辅CPU则不能。当主CPU放弃对共享RAM的操作时,通过GAL对74LS74置位,因而Q变低,Q变高。封锁IC1~IC3,从而辅CPU取得控制权,对共享RAM进行操作;当辅CPU放弃对共享RAM的操作时,通过74LS00发出清零信号,使得74LS74的Q端输出低电平,当主CPU检测到T0为低时,可恢复对共享RAM的控制权。这样就通过数据、地址切换的反复动作,完成了对共享RAM的分时操作。

图2 共享RAM电路

4.汉卡电路工作原理

汉卡电路工作原理图见图3。在扩展电路中,用了373、374、27020和6264各一片。

373和374的区别是:373为八D锁存器,当控制端G为低电平时锁存;374则是八D触发器,在系统时钟下降沿时可以对数据锁存。

本系统所用的字库芯片是27020,它是256Kbit的CMOS超大规模集成电路

5

只读存储器,共有18根地址线,而8031只有16根地址线。为读取27020内的数据,使用一片374,利用其下降沿锁存的特点来对27020进行分页处理,因为374的时钟端接片选信号CS1,而CS1平时为高电平,有效时为低电平,所以其有效的过程对374来说相当于是一个下降沿,当向4000H单元送数(即片选信号CS1有效)时,由GAL地址分配所决定的写入4000H单元中的数据的高5位,同时被锁入374中,形成27020的页面地址。因而从27020中读数时只需加片选信号CS2即可。

需要指出,6264和27020的OE端选通信号不同,前者接PSEN信号,后者接读信号。因此把27020作为一个数据存储器,而把6264当作一个程序存储器,充当本系统的仿真RAM。这样可避免27020和6264的地址发生冲突。

5.地址分配

地址分配实际上是由GAL来完成的。它是一种电擦写、可反复编程、随时修改并且能加密的可编程逻辑器件(PLD)。它既不同于PAL,也不同于EPROM。目前常用的有GAL16V8和GAL20V8。它们具有以下特点:(1)由于GAL采用的是一

2

种高速的电可擦写(ECMOS)工艺制造,因而比TTL构造的PAL功耗低,速度快;(2)GAL有8个逻辑宏单元(OLMC),使输出任意变化,又很强的带负载能力,驱动电流可达24mA;(3)采用高速编程算法,按行进行编程,整个芯片的写入可在1秒钟内完成。此外,还采取了加密措施。

图3 汉卡电路

各芯片的地址分配详见附表。

附 表

名 称 IC型号 片 选 信 号 6

地 址 备 注

程序存储器 数据存储器 共享RAM 辅CPU 数据存储器 汉卡ROM 仿真RAM 27256 62256 6264 2764 6264 27020 6264 CE=A15=0 CE=A15=0 CS=A15+A14+A13=0 CS=A15+PSEN 0000H-7FFFH 8000H-FFFFH 0000H-1FFFH 8000H-9FFFH 0000H-1FFFH 8000H-9FFFH 2000H-3FFFH 8000H-9FFFH 2000H-3FFFH 主CPU读RAM 辅CPU读RAM 读操作 写操作 CE=A15=0 A15=1,A14=0 CS2=A15+A14+A13+RD CS2=A15+A14+A13+PSEN CS2=A15+A14+A13+WR 对于主CPU,其程序存储器27256的片选信号为CE=A15,仅当A15=0时选通,其地址分配为0000H~7FFFH。数据存储器62256采用A15做片选信号,CE=A15,仅当A15=1时选通,其地址分配为8000H~FFFFH。对于公共RAM 6264而言,当CPU取得控制权时用A15+A14+A13做片选信号,其地址分配为0000H~1FFFH。

对于辅CPU,其程序存储器2764的片选信号为CE=A15,仅当A15=0时选通,其地址分配为0000H~1FFFH,数据存储器6264采用A15和A14做片选信号,仅当A15=1且A14=0时选通,其地址分配为8000H~9FFFH。对于共享RAM的选通比较复杂,它取决于数据传输转换器IC9的允许端G,而G=(Y1.A15)=PSEN+A15所以仅当辅CPU的PSEN为低,且A15为高时,选通共享RAM,这表明共享RAM对辅CPU而言,相当于是一个程序存储器,其地址分配为8000H~9FFFH。

汉卡上的27020先由CS1选通页面地址,再由片选信号CS2决定页内地址。而CS2=A15+A14+A13+RD,因而其地址分配为2000H到3FFFH。6264在读、写操作时,地址分配是不同的。当进行读操作时,用CS2做片选信号,而CS2=

A15+A14+A13+PSEN,因而地址分配为

8000H~9FFFH。进行写操作时,CS2=

A15+A14+A13+WR,因而地址分配为2000H~3FFFH。

6.键盘

键盘布置如图4所示,共有30个键。其中,9个双功能键被定义为:在BAS状态下为上挡键,在PRG状态下为下挡键。

数字键(0~F)。0区表示前128个ASCII码;1区表示后128个ASCII码。 HOM/连续:光标移到文件头/连续执行程序。END/单步:光标移

图4 键盘布置图

7

到文件尾/单步执行程序。ASC/调出:当前输入状态切换为ASCII码输入/将程序从备份RAM调到仿真 RAM中。汉字/存入:

将当前输入状态切换为汉字输入/将程序从仿真 RAM中存储到备份RAM。PUP/XRA:向上翻页/检查或修改外部数据存储器。PDN/MEM:向下翻页/检查或修改程序存储器内容。DEL/REG:删除/检查或修改寄存器的内容。HLP/SCR:提示帮助信息/用户屏幕。ESC:退出。INS/回车:输入状态(插入和替换)的切换/回车。↑:向上移动光标。↓:向下移动光标。

三、 系统的熟悉使用

程序流程图如图5所示。上电后,屏上出现主菜单光标在B上闪烁,按↑、↓键移动光标,可选择不同的菜单项。

图5 程序流程图

BAS PRG SET OTH

例如:当光标在S上闪烁时,按回车键便会进入系统设置(SET)菜单项。 1.BAS功能

进入BAS功能后,屏上出现BAS菜单: RUN NEW EDI ESC

光标在R上闪动,用↑、↓键移动光标,按回车键进入该菜单功能。此部分包括四个功能:运行BAS文件(RUN)、清除BAS文件(NEW)、编辑BAS文件(EDI)和退出BAS功能(ESC)。

在内存可存储16个BAS文件,文件号分别为0~F,BAS文件就是将要显示的文件,并以一定的格式存储起来。在文件中,除了包含要显示的字符和汉字,还有一些控制信息(包括控制码和控制参数),它们动态的存储在内存中的A000H~CFFFH共12K的空间内。当系统掉电后,改由备用电源供电,所以存储在内存中的文件不会丢失。

(1)清除(新建)BAS文件(NEW)

当光标在NEW上闪烁时,按回车键进入该功能,屏幕上提示:文件号×。该功能用来清除在内存中已有的文件。假如内存中已有16个文件,如果要建立第17个文件,则需将原来文件中的某一个覆盖。键入文件号,或键入回车使用缺省文件号。

屏上提示:文件的所有数据要丢失! 屏上提示:确信?

按回车键确认,按其他键退出。

8

另外,0号文件保留给系统使用,不能清除。如清除0号文件,屏上会 提示:0号文件为系统使用,不能清除。 (2)编辑BAS文件(EDI) 该功能用来编辑BAS文件。当光标在EDI上闪烁时,键入回车键进入该功能。 屏上提示:文件号×

键入文件号或回车使用缺省文件号。 此时分两种情况:

屏上提示:空间×××× Z I

然后进入编辑屏幕,此文件中的第一字显示在屏上。 0 0 0 1 I 如: 热

0 4 4 0 H

其中(如右图) 1 2 3 4 5 6 7 8 16 15 14 13 12 11 10 9

1、2、3、4区为当前编辑汉字位置,它表明将来显示此汉字时所在的位置,亦即光标。5区为插入开关状态 I—插入开,否则覆盖

6区表示当前的ASCII码区 0-0区 1-1区 7、8、9、10区用来显示调出的汉字或字符。

11区表示输入状态: C 控制码H 汉字A 字符 12区未用。

13、14、15、16区表示输入代码区。即可进入编辑。

在编辑时各键的功能如下:

0~F键:数字键,用来输入数据。在输入汉字是用来输入汉字的区位码(如4040代表第40区、第40位的汉字,即“热”字)。在输入字符时,用来输入十六进制的ASCII码,(如ASCII码值为41H的字符“A”)

↑、↓键:用来寻找前一个或后一个汉字

HELP键:按此键,在屏幕上出现有关编辑时的一些帮助信息。

DEL键:如果已经开始输入,此键用来删除错误的数字,否则删除当前的汉字或字符。

ESC键:用来退出编辑。按此键后 屏上提示:确信:

回车确认。如果修改文件,就在 屏上提示:存储吗? 回车确认。然后 屏上提示:正在存储 存储完毕后退回BAS菜单。

INS:是INS和回车键的组合,此键用来进行插入开、关的转换(INS)。或进行确认(回车)

0区、1区:用来进行0区、1区的转换。为0区时输入前128个(第1页)ASCII码字符;1区时输入后128个(第2页)ASCII码字符。

PUP、PDN:PUP向上翻页。PDN向下翻页。 ASC/汉字:用来改变输入状态:

9

按下ASC键,屏幕上出现“A”,接收十六进制ASCII码; 按下汉字键,屏幕上出现“H”,接收汉字区位码。 HOM、END:HOM键到文件头,END键到文件尾。

BAS文件使用仿WPS式文件格式。可以在字符或汉字前边加上控制字符和参数,以达到预期效果,系统给出了以下几个控制字符以及它们所需带的参数(有待扩充):

控制码 所需参数 功能 举例

① ② ③

80H 移动光标 把光标移动到参数要 80 02 代表光标到

求处 第二个汉字

81H 显示时间 在当前光标处固定显示 81 02 固定显示汉字2秒

82H 出屏方式 显示时间 清屏方式 以参数要求的出屏方 82 00 01 03以

式,显示时间及清屏方式 正常方式出屏显示 固定显示 1秒,然后,逐行清屏

83H 出屏方式 移动速度 清屏方式 以参数要求的出屏方 83 02 01 04以

式,移动速度及清屏 跳字方式出屏每次移 方式移动显示 动一点后,逐列清屏

出屏方式 清屏方式

参数 方式 参数 方式 00 正常出屏 00 正常清屏

01 逐字出屏 01 从左向右逐字清屏

02 跳字出屏 02 从右向左逐字清屏

03 逐行出屏 03 逐行清屏 04 逐列出屏 04 逐列清屏 05 旋转出屏 „ „ 06 外扩出屏 „ „ „ „ „ „ „ „ „ „ 例如:要输入0号文件如下: 我是中国人,我爱中国

若要求用移动方式来显示,逐行出屏,逐列清屏,每次移动一点;

则在输入文件过程中键入的内容如下:| 83 03 01 04 | 4650 4239 5448 2950 4043 | 0312 | 4650 1614 5448 2590 |

第一部分是控制码和参数,按ASC键后键入,第二部分是“我是中国人”的汉字区位码,第三部分是逗号的区位码,第四部分是“我爱中国”的汉字区位码。后三部分是用汉字状态输入。

(3)运行BAS文件(RUN):

10

此功能用来运行已存储的BAS文件。

当光标在RUN上闪烁时,键入回车,进入RUN功能。 屏上提示:文件号

键入文件号或键入回车,使用缺省值后,如果文件不存在 屏上提示:文件不存在! 返回菜单,否则

屏上提示:请输入运行次数 键入运行次数(0~F)(其中0代表无数次,1~F代表1~15次)后便开始运行。运行指定次数后,返回BAS菜单,如运行中可按复位键退出。

(4)退出BAS功能(ESC)

此功能用来从BAS菜单返回主菜单。

2.PRG功能

在系统中有8K的仿真RAM,同学们可在RAM中运行自己的程序。此功能主要是帮助同学们输入程序、运行程序和调试程序。

进入PRG功能后,系统进入仿真调试状态,此时它的作用就相当于功能齐全的51单片机开发系统。

屏上提示:P .

此时数字键的功能不变,其他键的第二功能起作用,分别为: ↑:上一单元 ↓:下一单元

USE:用户屏幕,按此键可观察输出

REG:用直接寻址方式,检查内部RAM的和寄存器的内容。例如键入E0后,按REG即可查看、修改累加器A的内容。

回车:返回监控,即P .状态

BRK:设置断点,用断点运行方式执行程序。 EXE:全速执行程序

XRA: 外部数据存储器检查修改处理 MEM:程序存储器检查、修改键 STP: 单步执行程序

SAV: 将程序存入具有掉电保护功能的RAM中 LOD:从掉电保护RAM中读出程序。

要注意:仿真RAM的地址为8000H~9FFFH。其他单元只能读出,不能修改。即同学们自编的程序首地址都应在8000H~9FFFH之间。

例如:在8000H开始的程序单元中存入10H,20H操作如下 P . 键入 8000 8000 键入 MEM 8000 00 键入 10 8000 10 按键 ↓ 8001 00 键入 20 8001 20 键入回车 P .

因此,此功能可以象开发系统一样,输入汇编目标程序及一些数据。 用ESC退出EDI功能返回PRG菜单。

11

例如在仿真RAM中有了51程序,便可运行它。按EXE键 进入RUN后

屏上提示:首地址

键入首地址,程序控制由系统内部转移到仿真RAM中,从首地址开始执行用户程序。用户的程序一定要正确,而且要求在程序的最后加一条LJMP RETURN指令,以便于让控制转回到系统内部。

3.屏幕与缓冲区地址对应关系

由硬件部分可知,本系统采用双CPU工作,主CPU负责处理通信,人机对话及实时显示等任务。辅CPU则专门负责扫描显示。主、辅CPU共享一片作为显示缓冲区的6264(RAM)。在主CPU处理好共享RAM的数据后,便将RAM出让给辅CPU,辅CPU将共享RAM的内容原封不动地映像到显示屏,内存单元与显示屏点阵对应关系如下(对主CPU而言)

内 0000 0001 0002 0003 0004 0005 0006 0007 存 0100 0101 0102 0103 0104 0105 0106 0107 单 „ „ „ „ „ „ „ „ 元 „ „ „ „ „ „ „ „ 地 0800 0801 0802 0803 0804 0805 0806 0807 址 „ „ „ „ „ „ „ „ (H)„ „ „ „ „ „ „ „

0F00 0F01 0F02 0F03 0F04 0F05 0F06 0F07 第一个汉字 第二个汉字 第三个汉字 第四个汉字

四、 程序设计与调试

(1)NEW 1 号文件输入如下代码:

【83 03 01 04】【4B 44 32 30 30 30】【4845】【4C 45 44】【5439 3660 4751 4231 4721 4159】

【】用于将ASCII 、控制码 和区位码分开,代码中不不输入,保存后,运行结果如下:

移动显示:KD2000型LED智能显示系统,完成要求。 (2) 1.在屏上显示2个汉字,然后每个字左旋90度显示3秒,然后右旋90度显示3秒,然后倒置3秒,最后恢复正常。主程序代码如下:

ORG 8100H LCALL DELAY LCALL 9F39H MOV R6,#8CH LCALL 9F3CH LCALL DISP MOV R6,#89H LCALL DELAY LCALL DISP MOV R6,#89H LCALL DELAY LCALL DISP MOV R6,#8AH LJMP 8200H LCALL DISP ORG 8150H LCALL DELAY DISP:MOV DPH,R6 MOV R6,#8BH MOV DPL,#0 LCALL DISP LCALL LP1

12

MOV DPL,#32 LCALL LP2 MOV DPH,R6 RET

2.逐行显示2个汉字,2秒后横向放大两倍,3秒后恢复正常。主程序代码如下:

ORG 8200H/*2*/ MOV DPTR,#HAN22 LCALL 9F39H LCALL LP4 LCALL 9F3CH LCALL DELAY MOV DPTR,#HAN2 LCALL 9F39H LCALL LP3 LCALL 9F3CH LCALL DELAY MOV DPTR,#HAN2 LCALL 9F39H LCALL LP3 LCALL 9F3CH LJMP 8300H

3.显示“回”字并放大缩小5次,恢复正常。主程序代码如下:

ORG 8300H/*3*/ JNB 01H,$ LCALL 9F39H CLR 01H LCALL 9F3CH LJMP 9F30H MOV R6,#5 ORG 8400H MAIN:MOV DPTR,#hui MAIN1:LCALL LP1 LCALL LP1 MOV A,DPL LCALL DELAY ADD A,#20H MOV DPTR,#hui1 MOV DPL,A LCALL LP1 LCALL LP2 LCALL DELAY LCALL DELAY DJNZ R6,MAIN RET 一般显示程序:

ORG 8500H ORG 8550H LP1:MOV R1,#0 LP2:MOV R1,#0 MOV R0,#0 MOV R0,#2 MOV R4,#0 MOV R4,#0 MOV R5,#16 MOV R5,#16 MOV P2,R4 MOV P2,R4 LOOP1:MOV A,R1 LOOP2:MOV A,R1 MOVC A,@A+DPTR MOVC A,@A+DPTR MOVX @R0,A MOVX @R0,A INC R0 INC R0 INC R1 INC R1 MOV A,R0 MOV A,R0 CJNE A,#2,LOOP1 CJNE A,#4,LOOP2 MOV R0,#0 MOV R0,#2 INC R4 INC R4 MOV P2,R4 MOV P2,R4 DJNZ R5,LOOP1 DJNZ R5,LOOP2 LCALL 9F42H LCALL 9F42H RET RET 逐行显示程序:

13

ORG 8600H ORG 8650H LP3:MOV R1,#0 LP4:MOV R1,#0 MOV R0,#2 MOV R0,#0 MOV R4,#0 MOV R4,#0 MOV R5,#16 MOV R5,#16 MOV P2,R4 MOV P2,R4 LOOP3:MOV A,R1 LOOP4:MOV A,R1 MOVC A,@A+DPTR MOVC A,@A+DPTR MOVX @R0,A MOVX @R0,A LCALL 9F42H LCALL 9F42H MOV DPTR,#HAN2 MOV DPTR,#HAN22 LCALL DELAY LCALL DELAY INC R0 INC R0 INC R1 INC R1 MOV A,R0 MOV A,R0 CJNE A,#6,LOOP3 CJNE A,#8,LOOP4 MOV R0,#2 MOV R0,#0 INC R4 INC R4 MOV P2,R4 MOV P2,R4 DJNZ R5,LOOP3 DJNZ R5,LOOP4 RET RET 延时子程序:

ORG 8700H D1:DJNZ R7,$ DELAY:MOV R7,#00H DJNZ R2,D1 MOV R2,#00H DJNZ R3,D1 MOV R3,#10H RET 发挥部分:用算法实现逐行聚拢显示内容的程序:

ORG 9000H MOV DPTR,#9500H LCALL 9F39H LCALL LP1 LCALL 9F3CH LCALL DELAY LP11:MOV R0,#1 LCALL 9F39H MOV A,#0F0H LCALL 9F3CH MOV R4,#0 MOV DPTR,#9550H MOV R5,#8 LCALL LP2 LP12:MOV P2,R4 LCALL DELAY MOVX @R0,A LCALL 9F39H RLC A LCALL 9F3CH INC R4 MOV DPTR,#9600H DJNZ R5,LP12 LCALL LP3 LCALL 9F42H LCALL DELAY LCALL LP11 JNB 01H,$ ORG 9100H CLR 01H LCALL 9F39H LJMP 9F30H LCALL 9F3CH

14

ORG 9200H ORG 8400H LP1:MOV R1,#0 LP3:MOV R1,#0 MOV R0,#0 MOV R0,#4 MOV R4,#0 MOV R4,#0 MOV R5,#16 MOV R2,#15 MOV P2,R4 MOV R3,#1FH LOOP1:MOV A,R1 MOV R5,#8 MOVC A,@A+DPTR MOV P2,R4 MOVX @R0,A LOOP3:MOV A,R1 INC R0 MOVC A,@A+DPTR INC R1 MOVX @R0,A MOV A,R0 LCALL 9F42H CJNE A,#2,LOOP1 MOV DPTR,#8600H MOV R0,#0 NOP INC R4 NOP MOV P2,R4 NOP DJNZ R5,LOOP1 INC R0 LCALL 9F42H INC R1 RET MOV A,R0 ORG 8300H CJNE A,#6,LOOP3 LP2:MOV R1,#0 MOV R0,#4 MOV R0,#0 INC R4 MOV R4,#0 MOV P2,R2 MOV R5,#16 LOP1:MOV A,R3 MOV P2,R4 MOVC A,@A+DPTR LOOP2:MOV A,R1 MOVX @R0,A MOVC A,@A+DPTR LCALL 9F42H MOVX @R0,A MOV DPTR,#8600H LCALL 9F42H NOP MOV DPTR,#8550H NOP NOP NOP INC R0 INC R0 INC R1 DEC R3 MOV A,R0 MOV A,R0 CJNE A,#2,LOOP2 CJNE A,#6,LOP1 MOV R0,#0 MOV R0,#4 INC R4 DEC R2 MOV P2,R4 MOV P2,R4 DJNZ R5,LOOP2 DJNZ R5,LOOP3 RET RET “科大”二字的编码:

ORG 8900H HAN: DB 04H,10H,0EH,10H,F8H,90H,08H,50H,08H,10H,FEH,90H,08H,50H,1CH,14H

15

DB 1AH,1EH,29H,F0H,28H,10H,48H,10H,88H,10H,08H,10H,08H,00H,08H,10H DB 01H,00H,01H,00H,01H,00H,01H,00H,01H,04H,FFH,FEH,01H,00H,02H,00H DB 02H,80H,02H,40H,04H,40H,04H,20H,08H,10H,10H,0EH,60H,04H,00H,00H

“科大”二字左旋90度后的编码: ORG 8A00H ZX:

DB 00H 00H,00H 80H,01H 80H,00H 80H FFH FFH 00H 40H 12H 40H 24H 40H DB 00H 40H 44H 80H C5H 00H 7FH FFH 25H 80H 24H 60H 24H 10H 24H 08H DB 00H 00H 04H 04H 0CH 06H 04H 04H 04H 08H 04H 10H 04H 60H 05H 80H DB FEH 00H 05H C0H 04H 30H 04H 08H 04H 04H 04H 02H 04H 02H 04H 00H “科大”二字右旋90度后的编码: ORG 8B00H YX:

DB 10H 24H 08H 24H 06H 24H 01H A4H FFH FEH 00H A3H 01H 22H 02H 00H DB 02H 24H 02H 48H 02H 00H FFH FFH 01H 00H 01H 80H 01H 00H 00H 00H DB 00H 20H 40H 20H 40H 20H 20H 20H 10H 20H OCH 20H 03H A0H 00H 7FH DB 01H A0H 06H 20H 80H 20H 10H 20H 20H 20H 60H 3OH 20H 20H 00H 00H “科大”二字倒置后的编码: ORG 8C00H DZ:

DB 20H,08H,70H,08H,1FH,09H,10H,0AH,10H,08H,7FH,09H,10H,0AH,38H,28H DB 58H,78H,94H,0FH,14H,08H,12H,08H,11H,08H,10H,08H,10H,08H,10H,08H DB 80H,00H,80H,00H,80H,00H,80H,00H,80H,20H,FFH,7FH,80H,00H,40H,01H DB 40H,01H,40H,02H,20H,02H,20H,04H,10H,08H,08H,70H,06H,20H,00H,00H “电信”两字逐行显示编码: ORG 8D00H HAN2: DB 01H,00H,08H,80H,01H,00H,0CH,60H,01H,00H,18H,40H,3FH,F8H,17H,FEH DB 21H,08H,30H,00H,21H,08H,33H,F8H,3FH,F8H,50H,00H,21H,08H,93H,F8H DB 21H,08H,10H,00H,21H,08H,13H,F8H,3FH,F8H,12H,08H,21H,08H,12H,08H DB 01H,02H,12H,08H,01H,02H,13H,F8H,00H,FEH,12H,08H,00H,00H,00H,00H “电信”两字逐行显示横向放大两倍的编码: ORG 8E00H HAN22: DB 00H,02H,00H,00H,00H,80H,20H,00H,00H,02H,00H,00H,00H,80H,10H,00H DB 00H,02H,00H,00H,01H,3FH,FFH,E0H,07H,FFH,FFH,80H,02H,00H,00H,00H DB 04H,02H,00H,80H,04H,00H,00H,00H,04H,02H,00H,80H,0CH,0FH,FFH,80H DB 07H,FFH,FFH,80H,14H,00H,00H,00H,04H,02H,00H,80H,24H,0FH,FFH,80H DB 04H,02H,00H,80H,C4H,00H,00H,00H,07H,FFH,FFH,80H,04H,1FH,FFH,C0H DB 00H,02H,00H,80H,04H,10H,00H,40H,00H,02H,00H,00H,04H,10H,00H,40H DB 00H,02H,00H,10H,04H,10H,00H,40H,00H,03H,FFH,F0H,04H,10H,00H,40H DB 00H,00H,00H,00H,04H,1FH,FFH,C0H,00H,00H,00H,00H,00H,00H,00H,00H 大小“回”字的编码:

16

ORG 8F00H hui: DB 00H,00H,7FH,FCH,40H,04H,40H,04H,4FH,E4H,48H,24H,48H,24H,48H,24H DB 48H,24H,48H,24H,4FH,E4H,40H,04H,40H,04H,40H,04H,7FH,FCH,00H,00H ORG 8F50H hui1: DB 00H,00H,00H,00H,00H,00H,00H,00H,0FH,F0H,08H,10H,0BH,D0H,0AH,50H DB 0AH,50H,0BH,D0H,08H,10H,0FH,F0H,08H,10H,00H,00H,00H,00H,00H,00H 車的编码: ORG 9500H

DB 01H,00H,01H,00H,01H,00H,3FH,F8H,01H,00H,1FH,F0H,11H,10H,1FH,F0H DB 11H,10H,1FH,F0H,01H,00H,7FH,FEH,01H,00H,01H,00H,01H,00H,01H,00H ORG 9550H

DB FEH,FFH,FEH,FFH,FEH,FFH,COH,O7H,FEH,FFH,E0H,0FH,EEH,EFH,E0H,0FH DB EEH,EFH,E0H,0FH,FEH,FFH,80H,01H,FEH,FFH,FEH,FFH,FEH,FFH,FEH,FFH ORG 9600H

DB 01H,00H,01H,00H,01H,00H,3FH,F8H,01H,00H,1FH,F0H,11H,10H,1FH,F0H DB 10H,11H,F0H,1FH,00H,01H,FEH,7FH,00H,01H,00H,01H,00H,01H,00H,01H

五、 程序分工

主编----------------------------------------负责 副主编--------------------------------------负责 代码录入和编码------------------------------负责 报告和编码----------------------------------负责

六、 心得体会

这次课设是基于KD2000智能显示系统的一些编程,刚开始没做课设前,觉得自己学的还不错,可是做课设时才知道自己有好多盲区。比如刚开始熟悉机器时需要了解到各种区位码,可是区位码是什么都不知道,最后去问老师时才明白课堂上讲过汉字的区位码是从16区开始的。终于在解决了区位码的问题后,我们成了第一组做出来的,接下来该是小组必做题。在做得过成功中,我们必须时刻小心谨慎,毕竟一个字节的错误换来的便是整个程序的重新检查。终于在做出来的那一刻感觉整个人都是放松的。我们依然是率先完成,紧接着就属于发挥的地方,刚开始我们自己做的是逐行显示也就是字节运算,可惜老师说字节运算不属于算法,只有位运算才属于算法,于是乎我们一个多小时的努力没能通过,不过获得了10分的过程分,后来我们就开始做考核内容,我们考核的是在8*8矩阵中显示一个有规律的三角形和梯形。而且最让人高兴的是在规定时间内提前5分钟完成。总之这次课设做的还算成功,总体上很满意,而且自己也增加了不少的知识,最重要的我们团结协作还帮别的组解决了好多问题,感觉收获很大。

17

因篇幅问题不能全部显示,请点此查看更多更全内容