一种现场用户实现单片机仿真的方法及装置的制作方法

文档序号:6339741阅读:734来源:国知局
专利名称:一种现场用户实现单片机仿真的方法及装置的制作方法
技术领域
本发明涉及单片机开发应用技术领域,具体地说,涉及一种现场用户实现单片机 仿真的方法及其装置,其是一种由单片机构成的单片机新型仿真结构与算法,可用于无编 程器环境下的小规模用户程序编写调试,适合用于现场用户单片机的简单应用。
背景技术
目前,程序写入51系列的单片机时,要在相应的管脚加高电压,还要按照规定的 时序工作,进而通过计算机串口连接烧录机实现,实现对一个小型装置配备软件。通常 E2PROM写入器分为两类一类是联机写入,由单片机控制写入过程,将单片机的系统存贮器 或外存贮器中的数据通过写入器写进E2PROM;另一类是脱机人工写入,这种写入器的地址 和控制信息由人工设定,写入时间长,工作效率低。因此一般采用联机写入的写入器。程序写入前最好用仿真器调试,没有仿真器就要在计算机上用仿真软件调试成 功,这给实施带来不便。

发明内容
本发明的目的在于克服现有技术的不足,提供一种现场用户实现单片机仿真的方 法及装置,其能用单片机编译汇编算法,实现单片机指令系统的编译存储和运行,达到单片 机的无仿真器的用户程序编译开发。为达到上述目的,本发明采用如下技术方案
本发明首先一种现场用户实现单片机仿真的装置,包含键盘控制器,与编译器连接, 用于输入用户程序;编译器,与键盘控制器连接,接收来自键盘控制器的用户程序并将其编 译生成机器指令;指令存储单元,存储编译器输出的机器指令;I/O接口电路,将外接设备 与编译器连接;以及状态指令单元,将编译器的状态指令输入到外接设备。所述的现场用户实现单片机仿真的装置还包含用于显示输入的用户程序的显示
ο所述显示器具有4个7段数码管,并且该显示器还包含一个16位寄存器。所述键盘控制器为2 X 2矩阵键盘,该2 X 2矩阵键盘包含一个4位寄存器,用来保 存当前键值。 所述编译器包含词法分析器,与语法分析器连接,从输入符号流中识别指令,为 语法分析提供单词流;语法分析器,与词法分析器连接,采用语法指导的方式进行中间代 码的生成,该语法分析器具有的符号表管理单元为语法分析过程提供查询的功能,为后续 的代码生成,提供地址信息;中间代码生成单元,完成子程序的翻译;寄存器分配单元,负 责对翻译过程中产生的临时变量进行寄存器关联,为其分配内存空间;以及机器码生成单 元,将各个子程序进行总装,程序初始化代码,产生完整的汇编代码,完成编译工作。本发明另外提供一种现场用户实现单片机仿真的方法,包含a.判断功能键是否 按下,如果未按下,则运行存储在指令存储单元中的程序,否则,进入步骤b; b.同时按下第一键和第三键,进入程序编写与修改状态,用第一键和第二键修改地址,用第三键 和第四键输入指令;C.编译器将输入的代码指令编译转换为可执行的机器指令,同时存 入指令存储单元。所述编译器将输入的代码指令编译转换为可执行的机器指令的步骤包含c 1. 判断输入符号是否是指令,如果是,则进入步骤C2,调用指令分析程序,接着进入步骤c 4 ; 否则,进入步骤c3;c 4.调用语句块分析程序,产生编译后的机器代码;c3.进行出错处 理;c5.判断源程序是否结束,如果是,则进入步骤c4,存储编译后的机器代码;否则,返回 步骤Cl。所述步骤b还进一步包含用2位七段数码管显示器显示修改与输入的内容。所述功能键为第三键,所述第一键为上移键、第二键为下移键、第三键为加号键, 第四键为减号键。

本发明所采用的技术方案的优点是
(1)本发明不需要写入器和计算机,具有无仿真器用户程序输入与显示功能,增加了单 片机编写调试的灵活性,现场修改调试的工作人员能够短时高效的完成工作;
(2)编译器具有自动存储功能,程序自动将输入的代码指令编译转换为可执行的机器 指令,可以巡回执行预先设置的不同用户程序;
(3)界面简单,针对简易的单片机程序设计,提供了快捷、可扩充的编程方法; 下面结合附图对本发明的实施和优点作进一步解释。


附图1是本发明的现场用户实现单片机仿真的装置的结构示意图。附图2是本发明的现场用户实现单片机仿真的装置的另一结构示意图。附图3是本发明编译器的结构示意图。附图4是本发明的现场用户实现单片机仿真的方法的流程示意图。附图5是编译器将输入的代码指令编译转换为可执行的机器指令的流程示意图。附图6显示本发明进行程序修改的流程示意图。附图7显示本发明进行程序编写的流程示意图。附图8显示本发明系统中RAM与I/O地址空间分配。
具体实施例方式参考图1。依据本发明的一种现场用户实现单片机仿真的装置100,包含键盘控 制器30,与编译器10连接,用于输入用户程序;编译器10,与键盘控制器30连接,接收来自 键盘控制器30的用户程序并将其编译生成机器指令;指令存储单元40,存储编译器10输 出的机器指令;I/O接口电路50,将外接设备与编译器10连接;以及状态指令单元60,将编 译器10的状态指令输入到外接设备。继续参考图1。所述的现场用户实现单片机仿真的装置还包含用于显示输入的用 户程序的显示器20。所述显示器20可以为LED显示器,具有4个7段数码管,系统中有4 个7段数码管,可用来表示4位10进制或4位16进制数。每半个字节为1组,从16位数 据线的高位到低位共分成4组,分别表示LED3、LED2、LEDl和LED0。显示器中还可以进一步含有一个16位寄存器,保存显示到数码管上的数值。参考图2。在一个较佳实施例中,为了减少连线个数,节省布线面积,系统采用了 矩阵键盘形式。键盘控制器30为2X2矩阵键盘。键盘控制器30的功能为自动扫描2X2 键盘,当有键按下时扫描键值,将键值记录到键值寄存器中。按键可以由“ + ”、“一”、“ ”、 “I”的2X2四个键组成。矩阵键盘中含有一个4位寄存器,用来保存当前键值。核心元件 编译器10可以采用51系列单片机,例如型号为AT89C2051的51系列单片机,其由四节干 电池串联或者7805稳压电路输出电压供电。。指令存储单元40可以为E2PROM存储器。应 用这些装置可以制作一套单片机程序编译装置,输入用户程序,免除外接仿真与写入器。参考图3。编译器10主要由以下几个部分组成,语法分析器、中间代码生成、寄存 器分配单元、机器码生成单元。具体而言,编译器10包含词法分析器101,与语法分析器 102连接,从输入符号流中识别指令,为语法分析提供单词流;语法分析器102,与词法分析 器101连接,采用语法指导的方式进行中间代码的生成,该语法分析器102具有的符号表 管理单元为语法分析过程提供查询的功能,为后续的代码生成,提供地址信息;中间代码生 成单元105,也就是图中所示的指令符号表,完成子程序的翻译;寄存器分配单元106,也就 是图中所示的变量名表,负责对翻译过程中产生的临时变量进行寄存器关联,为其分配内 存空间;以及机器码生成单元103,将各个子程序进行总装,程序初始化代码,产生完整的 汇编代码,完成编译工作。产生的机器代码最终进入CPU运行。机器码的生成伴随着词法 分析和语法分析。如果前一个单词识别正确,则进行翻译。否则跳过不进行翻译。 参考图4,本发明另外提供一种现场用户实现单片机仿真的方法,该方方可以用图 1至图3所示的装置实现。该方法包含Sa.判断功能键是否按下,如果未按下,则运行存 储在指令存储单元中的程序,否则,进入步骤Sb; Sb.同时按下第一键和第三键,进入 程序编写与修改状态,用第一键和第二键修改地址,用第三键和第四键输入指令;Sc.编 译器将输入的代码指令编译转换为可执行的机器指令,同时存入指令存储单元。再次参考图4,所述步骤b还可以进一步包含用2位七段数码管显示器显示修改 与输入的内容。所述功能键为第三键,所述第一键为上移键、第二键为下移键、第三键为加 号键,第四键为减号键,即可以分别为“ ”、“丨”、“ + ”、“一”键。参考图5。编译是翻译用户程序到机器指令的过程,它将高级语言编写的用户源程 序翻译成单片机可识别运行的机器语言目标程序。就本申请而言,所述编译器将输入的代 码指令编译转换为可执行的机器指令的步骤Sc可以进一步包含Sc 1.判断输入符号是 否是指令,如果是,则进入步骤Sc2,调用指令分析程序,接着进入步骤Sc 4 ;否则,进入步 骤Sc3;Sc 4.调用语句块分析程序,产生编译后的机器代码;Sc3.进行出错处理;Sc5. 判断源程序是否结束,如果是,则进入步骤Sc4,存储编译后的机器代码;否则,返回步骤 Scl ο图6和图7分别进一步详细显示步骤Sb中怎样进行程序修改与编写。这有赖于 本发明的开机选择功能开机后,立刻判别功能键,可以为“_”键,是否被按下。如果未按 下,进入用户指令程序;如果已被按下,则进入设置用户指令程序。参考图6,进行程序修改 的过程可以为步骤sbll,判断功能键是否按下,进行指令修改;步骤sbl2,调指令项;步 骤sbl3,判断是否第三键或第四键被按下,如果是,进入步骤S14,否则,进入步骤sl5 ;步骤 sbl4,修改指令;步骤sbl5,保存指令并返回步骤sbl2 ;步骤sbl6,返回主界面。参考图7,进行程序编写的过程可以为步骤sb21,判断功能键是否按下,进行指令编写;步骤sb22, 调地址项;步骤sb23,判断是否第一键或第二键被按下,如果是,进入步骤S24,否则,进入 步骤s25 ;步骤sb24,修改指令;步骤sb25,保存指令并返回步骤sb22 ;步骤sb26,返回主 界面。概括地说,编程时同时按下“ + ”和“丨”两个键,进入程序编写与修改状态,用“个”、 “ I ”两键控制程序修改单元,可以进一步由2位七段数码管显示器,显示修改单元的内容。 然后使用“ + ”、“一”两键输入指令,可以进一步由LED数码管第1,2位显示单元的地址值, 第3,4位显示该单元的内容。输入完成后,单片机编译程序自动将输入的代码指令编译 转换为可执行的机器指令,同时存入E2PROM15当断电重新启动没有任何键按下时,系统自动 将E2PROM中存储的用户程序重新调入AT89C2051指令存储单元,运行原先存入E2PROM的用 户程序。通过I/O接口电路的输出单元可 以观察到程序运行的结果。参考图8,在单片机系统中,外设不会直接挂在系统总线或CPU上,这是因为外设 在信号种类、时序等方面往往会有差别,所以需要提供相应的接口电路实现系统总线之间 的各种转换。系统中RAM与I/O地址空间分配如图8所示。根据原理图可以运用protel 进一步画出其pcb线路制版图。本发明应用时,可以归纳及分类一些基础编程中常用的单片机代码指令,以满足 简单的单片机程序设计要求。将其通过编译转换成单片机可识别的目标代码,存入存储单 元中。将通过键盘的输入用户代码指令、单片机内部的编译系统,一一编译成相对应的机器 代码并将这些代码存入单片机指令存储单元,再次复位时作为用户指令程序运行,实现无 仿真器情况下单片机用户程序的开发应用。51系列单片机指令系统有33种操作功能。指 令助记符与寻址方式组合,得到111种指令,按照功能分类。方法是在分类好的常用代码 指令中,提取满足简单的单片机程序设计要求的指令,例如输入指令、输出指令、延时指令、 判别和跳转指令等。分别对每一类的常用指令,赋一些不同的值,以满足在不同的编程中进 行选择。编译好这些归纳出的指令,并建立一个编译指令对应列表。这样,本发明编译过程 大致如下(1)基于51系列单片机制作一套独立装置,具有专用的键盘和数码显示器,用于 输入用户程序并显示运行结果;(2)归纳及分类一些简单编程中常用的代码指令,并将其 通过编译转换成单片机可识别的目标代码,存入存储单元中。通过键盘的输入,调用其代 码,实现编程以及仿真,从而达到在无仿真器情况下单片机系统的开发应用。(3)设计编译 器的通过定义简单指令代码,设计相应的文法,可对关系表达式进行分析,并得出结果。本发明提供的单片机新型仿真结构与算法,为现场的单片机编程调试,提供了方 便快捷的设计过程。该新型仿真结构与算法,针对简易的单片机程序设计,提供了简便的编 程方法,还可以不断扩充、完善指令系统,增加了单片机编写调试的灵活性。本发明主要针 对系统的指令输入、显示、存储等功能进行设计。适用于那些在一线工作的研发人员特别是 没有充分实验设备但是又十分有需要单片机编程的人员编制程序,提供了方便快捷的设计 过程。当然,以上仅是本发明的具体应用范例,对本发明的保护范围不构成任何限制。除 上述实施例外,本发明还可以有其它实施方式。凡采用等同替换或等效变换形成的技术方 案,均落在本发明所要求保护的范围之内。
权利要求
1.一种现场用户实现单片机仿真的装置,其特征在于,包含键盘控制器,与编译器连接,用于输入用户程序; 编译器,与键盘控制器连接,接收来自键盘控制器的用户程序并将其编译生成机器指令;指令存储单元,存储编译器输出的机器指令; I/O接口电路,将外接设备与编译器连接;以及 状态指令单元,将编译器的状态指令输入到外接设备。
2.根据权利要求1所述的现场用户实现单片机仿真的装置,其特征在于,还包含用于 显示输入的用户程序的显示器。
3.根据权利要求2所述的现场用户实现单片机仿真的装置,其特征在于,所述显示器 具有4个7段数码管,并且该显示器还包含一个16位寄存器。
4.根据权利要求3所述的现场用户实现单片机仿真的装置,其特征在于,所述键盘控 制器为2X2矩阵键盘,该2X2矩阵键盘包含一个4位寄存器,用来保存当前键值。
5.根据权利要求1-4任一项所述的现场用户实现单片机仿真的装置,其特征在于,所 述编译器包含词法分析器,与语法分析器连接,从输入符号流中识别指令,为语法分析提供单词流; 语法分析器,与词法分析器连接,采用语法指导的方式进行中间代码的生成,该语法 分析器具有的符号表管理单元为语法分析过程提供查询的功能,为后续的代码生成,提供 地址信息;中间代码生成单元,完成子程序的翻译;寄存器分配单元,负责对翻译过程中产生的临时变量进行寄存器关联,为其分配内存 空间;以及机器码生成单元,将各个子程序进行总装,程序初始化代码,产生完整的汇编代码,完 成编译工作。
6.一种现场用户实现单片机仿真的方法,其特征在于,包含a.判断功能键是否按下,如果未按下,则运行存储在指令存储单元中的程序,否 则,进入步骤b;b.同时按下第一键和第三键,进入程序编写与修改状态,用第一键和第二键修改地 址,用第三键和第四键输入指令;c.编译器将输入的代码指令编译转换为可执行的机器指令,同时存入指令存储单兀。
7.根据权利要求1所述的现场用户实现单片机仿真的方法,其特征在于,所述编译器 将输入的代码指令编译转换为可执行的机器指令的步骤包含c 1.判断输入符号是否是指令,如果是,则进入步骤c2,调用指令分析程序,接着进入 步骤c 4;否则,进入步骤c3;c 4.调用语句块分析程序,产生编译后的机器代码; c3.进行出错处理;c5.判断源程序是否结束,如果是,则进入步骤c4,存储编译后的机器代码;否则,返 回步骤Cl。
8.根据权利要求1所述的现场用户实现单片机仿真的方法,其特征在于,所述步骤b还 进一步包含用2位七段数码管显示器显示修改与输入的内容。
9.根据权利要求6或7所述的现场用户实现单片机仿真的方法,其特征在于,所述功能 键为第三键,所述第一键为上移键、第二键为下移键、第三键为加号键,第四键为减号键。
全文摘要
本发明提供一种现场用户实现单片机仿真的方法及装置,装置包含键盘控制器,与编译器连接,用于输入用户程序;编译器,与键盘控制器连接,接收来自键盘控制器的用户程序并将其编译生成机器指令;指令存储单元,存储编译器输出的机器指令;I/O接口电路,将外接设备与编译器连接;以及状态指令单元,将编译器的状态指令输入到外接设备。本发明还提供一种可以用该装置实现的方法。本发明能为在一线工作的研发人员,特别是没有充分实验设备但是又十分有需要单片机编程的人员,编制程序提供方便。
文档编号G06F11/36GK102043715SQ201010603160
公开日2011年5月4日 申请日期2010年12月24日 优先权日2010年12月24日
发明者丁吉琼, 任梅琼, 傅懿蕙, 陆永耕, 黄鹂 申请人:上海电机学院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1