第七组 闪闪的红星 数字化测量课程设计报告终.docx
《第七组 闪闪的红星 数字化测量课程设计报告终.docx》由会员分享,可在线阅读,更多相关《第七组 闪闪的红星 数字化测量课程设计报告终.docx(27页珍藏版)》请在冰豆网上搜索。
第七组闪闪的红星数字化测量课程设计报告终
河北科技大学
课程设计报告
课设题目:
第七组闪闪的红星
专业班级:
电子信息工程
学年学期:
2012—2013学年第一学期
指导教师:
于国庆睢丙东
2013年1月
小组分工简表
小组设计题目
闪闪的红星
学生姓名
学号
小组长/组员
成绩
小组分工
简明介绍
目录
一、设计题目及要求3
二、硬件电路设计4
1.主控制电路基本工作原理4
2.扫描板基本工作原理5
3.共享RAM电路的工作原理5
4.汉卡电路工作原理6
5.地址分配7
6.显示控制电路的工作原理8
7.键盘9
三、系统的熟悉9
1.BAS功能10
2.PRG功能14
3.屏幕与缓冲区地址对应关系15
四、小组分工16
1.小组成员:
16
2.小组分工:
16
五、程序设计与调试16
1.必做部分代码:
16
2.发挥部分代码:
22
六、心得体会23
一、设计题目及要求
在掌握LED智能显示系统工作原理的基础上,能根据小组必做题目和自选题目,熟练的编写并调试各种程序,完成课题设计任务,提高学生的独立设计水平和实际动手能力,培养学生的创新精神。
(一)全班必做题目
1.熟悉系统,输入:
“KD2000型LED智能显示系统”并存储显示。
2.汇编、输入、运行示例程序,了解系统硬件电路及软件编程特点。
(二)小组必做题目
第七组:
闪闪的红星(能旋转360度),要求做到边旋转,变闪烁。
二、硬件电路设计
KD-2000型LED智能显示屏的设计原理:
系统框图如图1所示。
主要包括四部分:
主控制电路(主CPU、汉卡等),显示控制电路(辅CPU等),列驱动显示电路,开关电源。
1.主控制电路基本工作原理
主控制电路首先从遥控器或键盘接收数据和指令,然后根据显示内容和显示指令的要求在软件控制下完成下述工作:
如果要显示汉字,就从扩展卡27020中提取汉字点阵信息,然后存放在共享RAM6264中。
如果要显示的是8×8点阵的ASCII码或数字,以及16×8点阵的控制字符,就从程序存储器27256的高端提取有关的点阵信息,然后存放于共享RAM中。
最后,主CPU通过地址切换电路①与②及时序控制电路,与辅CPU以应答方式进行联络,对共享RAM进行分时操作,完成显示。
图1系统框图
由专用的日历时钟芯片MC146818,可产生年、月、日、时、分、秒、星期共7个时标信号。
我们可通过软件来获得和修改这些时标,并使之在屏幕上显示出来。
2.扫描板基本工作原理
首先由辅CPU将欲显示的数据由串行口送出,然后经并行/串行转换芯片CD4094转换成并行数据,输出的数据经过MC1413驱动产生列信号;由P1口输出的行数据经CD4515译码生成行信号,再经达林顿管BD682产生行驱动信号。
最后输出行、列选通信号,点亮某一行。
如此循环往复,完成扫描过程。
3.共享RAM电路的工作原理
为了大大减轻主CPU的负担,合理地分配资源,以及便于实现显示电路的高速扫描,该系统设计成双CPU结构,共享一片RAM。
电路如图2所示。
共享RAM电路主要是通过六片74LS245来完成的,74LS245是三态八总线双向收发器。
其中
是控制端,低电平时有效,允许传输;高电平时禁止。
DIR是方向控制端,为低电平时数据由B传到A,呈高电平时,数据由A传到B。
由原理图可以看到:
IC1~IC3的
端不仅接主CPU的T0端,还接74LS74的Q端。
IC4~IC6的
端不仅接显示CPU的INT0端,还接74LS74的
端;这样当主CPU控制公共RAM时,Q端为低,IC1~IC3开启,IC4~IC6关闭。
主CPU对RAM可进行读写操作,而辅CPU则不能。
当主CPU放弃对共享RAM的操作时,通过GAL对74LS74置位,因而
变低,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超大规模集成电路只读存储器,共有18根地址线,而8031只有16根地址线。
为读取27020内的数据,使用一片374,利用其下降沿锁存的特点来对27020进行分页处理,因为374的时钟端接片选信号CS1,而CS1平时为高电平,有效时为低电平,所以其有效的过程对374来说相当于是一个下降沿,当向4000H单元送数(即片选信号CS1有效)时,由GAL地址分配所决定的写入4000H单元中的数据的高5位,同时被锁入374中,形成27020的页面地址。
因而从27020中读数时只需加片选信号CS2即可。
需要指出,6264和27020的
端选通信号不同,前者接PSEN信号,后者接读信号。
因此把27020作为一个数据存储器,而把6264当作一个程序存储器,充当本系统的仿真RAM。
这样可避免27020和6264的地址发生冲突。
5.地址分配
地址分配实际上是由GAL来完成的。
它是一种电擦写、可反复编程、随时修改并且能加密的可编程逻辑器件(PLD)。
它既不同于PAL,也不同于EPROM。
目前常用的有GAL16V8和GAL20V8。
它们具有以下特点:
(1)由于GAL采用的是一种高速的电可擦写(E2CMOS)工艺制造,因而比TTL构造的PAL功耗低,速度快;
(2)GAL有8个逻辑宏单元(OLMC),使输出任意变化,又很强的带负载能力,驱动电流可达24mA;(3)采用高速编程算法,按行进行编程,整个芯片的写入可在1秒钟内完成。
此外,还采取了加密措施。
图3汉卡电路
各芯片的地址分配详见附表。
附表
名称
IC型号
片选信号
地址
备注
程序存储器
27256
=A15=0
0000H-7FFFH
数据存储器
62256
=
=0
8000H-FFFFH
共享RAM
6264
=A15+A14+A13=0
0000H-1FFFH
主CPU读RAM
=
+PSEN
8000H-9FFFH
辅CPU读RAM
辅CPU
2764
=A15=0
0000H-1FFFH
数据存储器
6264
A15=1,A14=0
8000H-9FFFH
汉卡ROM
27020
CS2=A15+A14+
+RD
2000H-3FFFH
仿真RAM
6264
=
+A14+A13+PSEN
8000H-9FFFH
读操作
=
+A14+
+WR
2000H-3FFFH
写操作
对于主CPU,其程序存储器27256的片选信号为
=A15,仅当A15=0时选通,其地址分配为0000H~7FFFH。
数据存储器62256采用A15做片选信号,
=
,仅当A15=1时选通,其地址分配为8000H~FFFFH。
对于公共RAM6264而言,当CPU取得控制权时用A15+A14+A13做片选信号,其地址分配为0000H~1FFFH。
对于辅CPU,其程序存储器2764的片选信号为
=A15,仅当A15=0时选通,其地址分配为0000H~1FFFH,数据存储器6264采用A15和A14做片选信号,仅当A15=1且A14=0时选通,其地址分配为8000H~9FFFH。
对于共享RAM的选通比较复杂,它取决于数据传输转换器IC9的允许端
,而
=(
)=PSEN+
所以仅当辅CPU的PSEN为低,且A15为高时,选通共享RAM,这表明共享RAM对辅CPU而言,相当于是一个程序存储器,其地址分配为8000H~9FFFH。
汉卡上的27020先由CS1选通页面地址,再由片选信号CS2决定页内地址。
而CS2=A15+A14+
+RD,因而其地址分配为2000H到3FFFH。
6264在读、写操作时,地址分配是不同的。
当进行读操作时,用CS2做片选信号,而CS2=
+A14+A13+PSEN,因而地址分配为8000H~9FFFH。
进行写操作时,CS2=A15+A14+
+WR,因而地址分配为2000H~3FFFH。
6.显示控制电路的工作原理
电路如图4所示。
显示控制电路主要完成扫描显示功能。
它采用逐行扫描、列驱动方式。
其主控制器为CPU2,简称辅CPU。
当主CPU接收到从遥控器或者从键盘传来的数据和指令后,就将显示内容从汉卡的汉字库中取出并转化成点阵信息,存放在共享RAM中。
主CPU根据显示指令,对共享RAM中的数据进行操作。
操作完毕后,即向辅CPU发出应答信号。
辅CPU接到应答信号后,就从共享RAM中取出显示数据,从串行口输出的数据经级联的八位串入/并出移位寄存器CD4094,转换成并行数据,再经过七达林顿驱动器MC1413获得列驱动信号。
行码则由P1口输出,经4线/16线译码器CD4515译码后,产生16路行输出信号。
通过达林顿功率管BD682,获得列驱动信号。
行信号送至显示行驱动端,经显示后消隐,然后输出下一行数据并显示下一行内容。
7.键盘
键盘布置如图5所示,共有30个键。
其中,9个双功能键被定义为:
在BAS状态下为上挡键,在PRG状态下为下挡键。
数字键(0~F)。
0区表示前128个ASCII码;1区表示后128个ASCII码。
HOM/连续:
光标移到文件头/连续执行程序。
END/单步:
光标移到文件尾/单步执行程序。
ASC/调出:
当前输入状态切换为ASCII码输入/将程序从备份RAM调到仿真 RAM中。
汉字/存入:
将当前输入状态切换为汉字输入/将程序从仿真 RAM中存储到备份RAM。
PUP/XRA:
向上翻页/检查或修改外部数据存储器。
PDN/MEM:
向下翻页/检查或修改程序存储器内容。
DEL/REG:
删除/检查或修改寄存器的内容。
HLP/SCR:
提示帮助信息/用户屏幕。
ESC:
退出。
INS/回车:
输入状态(插入和替换)的切换/回车。
↑:
向上移动光标。
↓:
向下移动光标。
图5键盘布置图
三、系统的熟悉
程序流程图如图6所示。
上电后,屏上出现主菜单光标在B上闪烁,按↑、↓键移动光标,可选择不同的菜单项。
图6程序流程图
BASPRG
SETOTH
例如:
当光标在S上闪烁时,按回车键便会进入系统设置(SET)菜单项。
1.BAS功能
进入BAS功能后,屏上出现BAS菜单:
RUNNEW
EDIESC
光标在R上闪动,用↑、↓键移动光标,按回车键进入该菜单功能。
此部分包括四个功能:
运行BAS文件(RUN)、清除BAS文件(NEW)、编辑BAS文件(EDI)和退出BAS功能(ESC)。
在内存可存储16个BAS文件,文件号分别为0~F,BAS文件就是将要显示的文件,并以一定的格式存储起来。
在文件中,除了包含要显示的字符和汉字,还有一些控制信息(包括控制码和控制参数),它们动态的存储在内存中的A000H~CFFFH共12K的空间内。
当系统掉电后,改由备用电源供电,所以存储在内存中的文件不会丢失。
(1)清除(新建)BAS文件(NEW)
当光标在NEW上闪烁时,按回车键进入该功能,屏幕上提示:
文件号×。
该功能用来清除在内存中已有的文件。
假如内存中已有16个文件,如果要建立第17个文件,则需将原来文件中的某一个覆盖。
键入文件号,或键入回车使用缺省文件号。
屏上提示:
文件的所有数据要丢失!
屏上提示:
确信?
按回车键确认,按其他键退出。
另外,0号文件保留给系统使用,不能清除。
如清除0号文件,屏上会
提示:
0号文件为系统使用,不能清除。
(2)编辑BAS文件(EDI)
该功能用来编辑BAS文件。
当光标在EDI上闪烁时,键入回车键进入该功能。
屏上提示:
文件号×
键入文件号或回车使用缺省文件号。
此时分两种情况:
屏上提示:
空间××××
然后进入编辑屏幕,此文件中的第一字显示在屏上。
0001I
如:
热0440H
其中(如右图)12345678
161514131211109
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/汉字:
用来改变输入状态:
按下ASC键,屏幕上出现“A”,接收十六进制ASCII码;
按下汉字键,屏幕上出现“H”,接收汉字区位码。
HOM、END:
HOM键到文件头,END键到文件尾。
BAS文件使用仿WPS式文件格式。
可以在字符或汉字前边加上控制字符和参数,以达到预期效果,系统给出了以下几个控制字符以及它们所需带的参数(有待扩充):
控制码所需参数功能举例
①②③
80H移动光标把光标移动到参数要8002代表光标到
求处第二个汉字
81H显示时间在当前光标处固定显示8102固定显示汉字2秒
82H出屏方式显示时间清屏方式以参数要求的出屏方82000103以
式,显示时间及清屏方式正常方式出屏显示
固定显示1秒,然后,逐行清屏
83H出屏方式移动速度清屏方式以参数要求的出屏方83020104以
式,移动速度及清屏跳字方式出屏每次移
方式移动显示动一点后,逐列清屏
出屏方式清屏方式
参数方式参数方式
00正常出屏00正常清屏
01逐字出屏01从左向右逐字清屏
02跳字出屏02从右向左逐字清屏
03逐行出屏03逐行清屏
04逐列出屏04逐列清屏
05旋转出屏……
06外扩出屏……
…………
…………
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.
键入80008000
键入MEM800000
键入10800010
按键↓800100
键入20800120
键入回车P.
因此,此功能可以象开发系统一样,输入汇编目标程序及一些数据。
用ESC退出EDI功能返回PRG菜单。
例如在仿真RAM中有了51程序,便可运行它。
按EXE键
进入RUN后
屏上提示:
首地址
键入首地址,程序控制由系统内部转移到仿真RAM中,从首地址开始执行用户程序。
用户的程序一定要正确,而且要求在程序的最后加一条LJMPRETURN指令,以便于让控制转回到系统内部。
3.屏幕与缓冲区地址对应关系
由硬件部分可知,本系统采用双CPU工作,主CPU负责处理通信,人机对话及实时显示等任务。
辅CPU则专门负责扫描显示。
主、辅CPU共享一片作为显示缓冲区的6264(RAM)。
在主CPU处理好共享RAM的数据后,便将RAM出让给辅CPU,辅CPU将共享RAM的内容原封不动地映像到显示屏,内存单元与显示屏点阵对应关系如下(对主CPU而言)
内00000001000200030004000500060007
存01000101010201030104010501060107
单……………………
元……………………
地08000801080208030804080508060807
址……………………
(H)……………………
0F000F010F020F030F040F050F060F07
第一个汉字第二个汉字第三个汉字第四个汉字
四、小组分工
1.小组成员:
周士超、赵炎、范雅茹、王亚丽、渠响、赵明来
2.小组分工:
姓名
任务
赵炎、赵明来
LED点阵设计闪闪的红星图案及相应的机器码编译
周士超、范雅茹、王亚丽、渠响
主程序架构及扩展程序编写
五、程序设计与调试
1.必做部分代码:
(1)NEW1号文件输入如下代码:
【83030104】【4B4432303030】【4845】【4C4544】【543936604751423147214159】
【】用于将ASCII、控制码和区位码分开,代码中不不输入,保存后,运行结果如下:
移动显示:
KD2000型LED智能显示系统,完成要求。
(2)小组必做程序代码如下:
主程序
ORG8000H
909000XIANSHI1:
MOVDPTR,#9000H;将点阵表首地址送DPTR
128100LCALLXIANSHI
909100XIANSHI2:
MOVDPTR,#9100H
128100LCALLXIANSHI
909200XIANSHI3:
MOVDPTR,#9200H
128100LCALLXIANSHI
909300XIANSHI4:
MOVDPTR,#9300H
128100LCALLXIANSHI
028000LJMPXIANSHI
显示子程序
ORG8100H
XIANSHI:
81007900MOVR1,#0;存储相对于表首的偏量
81027800MOVR0,#0;做间址寄存器,由P2,R显缓区
81047C00MOVR4,#0;映像P2
81067D10MOVR5,#16;计数器
81088CA0MOVP2,R4
810AE9LOOP1:
MOVA,R1
810B93MOVCA,@A+DPTR
810CF2MOVX@R0,A;取出点阵
810D08INCR0
810E09INCR1
810FE8MOVA,R0
8110B408F7CJNEA,#8,LOOP1
81137800MOVR0,#0
81150CINCR4
81168CA0MOVP2,R4
8118DDF0DJNZR5,LOOP1
811A129F42LCALLCOUMUN
811D128200LCALLdelay1s
812022RET
延时100ms子程序
ORG8160H
7864DELAY100MS:
MOVRO,#100
79FAMOVR1,#250
DBFEDJNZR3,$
DCFADJNZR4,#FAH
22RET
延时1s子程序
ORG8200H
7D0ADELAY1S:
MOVR5,#10
128160LCALLDELAY100MS
DDFBDJNZR5,#FBH
22RET
第一幅图代码
ORG9000H
01
00H,00H,00H,00H,00H,00H,00H,00H
;02:
DB00H,00H,00H,00H,00H,00H,00H,00H
;03:
DB00H,00H,00H,00H,00H,00H,00H,03H
;043:
DB00H,00H,01H,81H,43H,03H,3FH,9FH
;05:
DB00H,00H,00H,02H,84H,80H,0F8H,0F3H
;06:
DB00H,00H,00H,00H,00H,00H,00H,80H
;07
DB00H,00H,00H,00H,00H,00H,00H,00H
08
DB00H,00H,00H,00H,00H,00H,00H,00H
09
DB00H,00H,00H,00H,00H,00H,00H,00H;
10
DB00H,00H,00H,00H,00H,00H,00H,00H
11:
DB00H,00H,00H,00H,00H,00H,00H,00H
12:
DB0FH,07H,47H,8FH,0CH,10H,00H,00H
13:
DBE0H,C0H,C4H,E2H,60H,10H,00H,00H
14:
DB00H,00H,00H,00H,00H,00H,00H,00H
15:
DB00H,00H,00H,00H,00H,00H,00H,00H