实验目的
(1)帮助学生理解汉字机内码、区位码,最终能利用相关工具批量获取一段文字的 GB2312 机内码,并利用简单电路实现 GB2312 编码与区位码的转换;
(2)学生了解字形码显示的基本原理,能在实验环境中实现汉字 GB2312 编码的点阵显示。
实验内容
完成国标码到区位码的转换电路后,可以在汉字显示电路中进行测试,尝试在下图所示电路中的 ROM 存储器中存入下面给出的指定句子,注意这里不允许使用逐字查码表的方式获得编码,应掌握批量转换的方法和原理。
指定句子如下:请思考数字,英文字符怎么输入和显示的。
12345ABCDEFGabcdefg轻轻的我走了,正如我轻轻的来;我轻轻的招手,作别西天的云彩。那河畔的金柳,是夕阳中的新娘;波光里的艳影,在我的心头荡漾。
电路框架
data.circ
电路引脚
信号 | 输入/输出 | 位宽 | 说明 |
---|---|---|---|
EduCoder | 输出 | 16 位 | 汉字机内码,该引脚用于 Educoder 自动测试,请勿删除 |
电路测试
离线测试:该电路中计数器用于自动生成存放汉字 GB2312 编码的 ROM 组件的地址序列,启用时钟自动仿真后可以右侧 LED 矩阵区域会依次显示ROM中的事先预存的汉字内容(时钟自动仿真快捷键:Ctrl+k)。
EduCoder测试:完成实验后利用文本编辑工具打开 data.circ 文件,将所有文字信息复制粘贴到 Educoder 平台的 data.circ 文件中,再点击评测按钮即可进行本关测试,平台会对你设计的电路进行自动测试,为方便测试,请勿修改子电路封装,本关测试用例如下:
Cnt GB2312
00 a3b1
01 a3b2
02 a3b3
03 a3b4
04 a3b5
05 a3c1
06 a3c2
07 a3c3
08 a3c4
...
常见调试问题
1、为什么测评是系统提示找不到GB2312ROM.CIRC?
注意实验文件data.circ 与GB2312ROM.circ应该放在同一个目录下,前者调用了GB2312ROM.circ电路,有可能大家做实验的时候没有放在一起,然后找不到这个文件的时候大家指向了另外一个目录的GB2312ROM.circ,这样对应文件的路径就带到电路文件中去了,上传平台时测试这个路径的文件肯定是不存在的,所以就无法加载这个电路。
解决这个问题可以采用以下两种方法:
(1)本地修改,直接将本地的data.circ,GB2312ROM.circ剪切移动到一个新目录中,注意一定是剪切,要保证再次打开data.circ的时候找不到原来的GB2312ROM.circ,当提示找不到该文件的时候就就点击同目录的GB2312ROM.circ,然后存盘退出就ok,再次提交测试。
(2)直接EduCoder平台修改,直接在代码框搜索该文件路径
去掉绝对路径,改成如下形式即可
2、Educoder平台实际输出XXXX是什么原因?
如果你本地测试是ok的,上传Educoder平台出现输出为悬浮态X,主要有两种可能的原因。
第一种可能是你上传错了代码,有可能上传的是别的目录的框架文件,根本没有实现电路,所以没有任何输出,要判断是否是这种情况只需要将平台的代码下载到本地打开看看就知道了;
另外一种可能是你电路的封装引脚可能因为增删改引脚发生了变化,系统测试时对应的输出引脚没有连接正确,所以需要仔细检查待测电路的封装,目前所有框架文件均提供了待测电路的封装测试子电路,仔细检查引脚是否和连线错位。
下图就是没有测试引脚的框架,最新框架如上图,有一二educoder的输出引脚。
开始你的闯关任务吧,升级打怪中....
代码太长,只能上传文件