无线电电子与电气工程百科全书 MCS51系列微控制器的调试模块。 无线电电子电气工程百科全书 通常,微控制器 (MC) 上的设备开发是根据一个简单的计划进行的:典型包含的 MC 与必要的外设“加权”,然后编写软件。 在这种情况下,你必须使用各种工具来完成日常工作,让程序员来解决创造性的问题。 下面描述的设备是微控制器系统的“半成品”,是其调试工具,同时也是研究对象。 它旨在获取MCS51的编程技能和调试程序,但它也可以作为真实系统的模型,允许与控制对象一起调试应用软件。 有了这样的模块,开发人员将不再需要经常使用编程器或 ROM 仿真器,而这些由于成本高昂而对许多人来说是难以实现的。 MK MCS51系列调试模块示意图如图所示。 大多数节点都是按照标准方案制作的,与个人计算机(PC)串行端口的接口设备借用了S. Kuleshov和Yu. Zaumenny《ROM程序员》(《无线电》)文章中描述的设备”,1995 年,第 10 期,第 22 -25 页)。 您可以将各种外围设备连接到微控制器DD1的端口P3和P1的空闲引脚(图中以箭头结尾)。 XP1 插头通过电缆连接到 PC 的一个串行端口的插座上,模块将在该插座下运行。 施加电源电压后,电容器C3通过电阻器R1充电。 根据DD3.4元件产生的复位信号RES,MK DD1进入初始状态并执行准备操作,包括将P1端口的所有引脚设置为逻辑电平3。 元件DD3.1、DD3.2上的触发器处于其输出信号设置这样的存储器分布的状态:程序存储器地址区0-7FFFH占据ROM(DD5),8000H-0FFFFH占据RAM(DD6)。 位于 ROM 中的程序 Monitor 正在执行。 通过在 PC 键盘上键入监控命令,操作员可以使用模块的 RAM 和外设。 要将触发器转换到另一个状态,需要从控制 PC 发送下述 RESET Monitor 命令,该命令设置 MOD=0 信号。 程序存储器的 RAM 和 ROM 的地址互换,并且操作员先前在模块的 RAM 中输入的程序开始工作。 这使您可以模拟真实设备的操作并检查翻译到较低内存地址的程序,例如准备写入 ROM 的程序。 SB1 按钮用于将 MK 重置为其原始状态,而不更改内存分配。 只能通过按 SB2 按钮或关闭电源然后再打开来重新启动显示器。 这使得调试后的程序可以自由地操作P3端口的状态(例如,与外设一起工作),而不必担心意外切换内存分配。 HL1 LED 是最简单的信息显示方式,非常有用,特别是在由于某种原因无法与 PC 连接的情况下。 通电后,以约 1 Hz 的频率闪烁,表示显示器正在工作。 齐纳二极管可保护器件免受反极性或 +5 V 电源过压的影响。 监控程序(表 1)提供对模块的控制及其通过 RS-232C 串行端口与 PC 的交互,从 PC 传输执行特定任务所需的命令和数据。 通过同一端口,PC接收模块操作的结果并将其显示在屏幕上。 PC 上必须运行广泛使用的外壳 Norton Commander 5.0 中的通信程序“Telemax”、Windows 95 OSR2 中的“超级终端”或类似程序。 在极端情况下,您可以不需要特殊的程序,只需将带有准备好的数据的MS DOS命令文件发送到PC串行端口即可。 配置通讯程序时,应删除调制解调器初始化行,设置“本地回显”和“CR/LF 广播”模式,必要时选择ANSI 端子和ASCII 码表。 串行端口操作模式应如下:速度 - 4800 波特,每个字符的位数 - 8,奇偶校验控制禁用,停止位数 - 1。如果一切正确,在 PC 键盘上键入的文本将转到调试模块及其响应 - 显示在屏幕上。 监视器命令可以用大写和小写键盘输入。 所有字符必须采用 ASCII 编码。 [BackSpace] 键从调试模块的缓冲区中删除最后输入的字符。 每条指令由名称和操作数组成。 该名称以分隔符结尾:空格、制表符、换行符或回车符。 此外,我们将有条件地用下划线 (_) 表示它,但您可以输入任何指定的。 接收到定界符后,监视器将先前接收到且位于缓冲区中的前四个字符与 ROM 中指令表的内容进行比较。 找到匹配项后,它会记住同一表中命令处理程序的地址,并开始接受操作数 - 一个或多个十六进制数字。 我们同意MK的内部和外部存储器的一字节和两字节地址分别指定为XX和XXXX,块长度为YYYY,其他数据为ZZ或ZZZZ。 例如,XXXX,YYYY 是从地址 XXXX 开始的外部数据存储器块,长度为 YYYY 字节。 必须指定所有前导零。 操作数还必须以定界符结尾,收到定界符后命令处理程序启动。 输入到空缓冲区中的分隔符将被忽略。 RESET_ ZZZZ_ - 内存分配的第二种模式打开,MC复位,控制权转移到地址ZZZZ。 该命令需要良好的 RAM 才能正常运行。 DATA_ XXXX:_ ZZ_ [ZZ_][XXXX:_ZZ_ [ZZ_]._- 信息被输入到外部数据存储器的连续单元中,从地址 XXXX 开始。 不需要输入方括号,它们仅表示 ZZ_ 操作数的数量可以是任意的。 数据输入以点结束。 在表中。 图 2 显示了使用 DATA 和 RESET 命令将简单程序输入 RAM 并运行它的示例。 READ_XX_ 或 READ_XXXX_ - 从内部或外部数据 RAM 的存储单元读取一个字(两个连续字节)。 结果以十六进制数(高地址在前的字节)形式发送到串行端口。 WRITE_XX,ZZ_, WRITE_XX,ZZZZ_, WRITE_XXXX,ZZ_ 或 WRITE_XXXX,ZZZZ_ - 在地址 XX 或 XXXX 写入字节 ZZ 或字 ZZZZ。 请注意,READ 和 WRITE 命令是使用间接寻址实现的,因此它们不能与特殊功能寄存器一起使用。 要访问寄存器,您应该专门为每个寄存器编写直接寻址的交换程序。 一个例子是 SPEED 命令处理程序。 如果模块中安装了具有 256 字节内部 RAM 的 MCU,则 READ 和 WRITE 命令将能够使用地址 128H-80FFH 处的额外 0 字节。 LOAD_XXXX,YYYY_ - 填充来自串行端口的信息,外部数据存储器块。 SAVE_XXXX,YYYY_ - 外部数据存储块的内容被传输到串行端口。 CALL_ZZZZ_ - 从地址 ZZZZ 开始调用子例程。 要返回到监视器,必须以 RET 命令结束。 子程序运行期间中断被禁用。 CHECK_XXXX,YYYY_ - 计算校验和 - 外部数据存储块所有字节总和的低字节。 FILL_XXXX,YYYY,ZZ_ - 用 ZZ 字节填充外部数据存储区域并计算其校验和。 COPY_XXXX,YYYY,ZZZZ_ 或 COPY_PXXXX,YYYY,ZZZZ_ - 外部数据存储器块复制到地址 ZZZZ。 P符号表示要复制的区域在程序存储器中。 同时计算校验和。 TEST_XXXX,YYYY_ - 检查外部 RAM 块的运行状况。 如果没有错误,则显示消息“OK”,否则显示消息“XXXX: YY<>ZZ”,其中 XXXX 是故障单元的地址,YY 是写入的值,ZZ 是读取的值。 该命令不会破坏 RAM 的内容。 SPEED_ZZ_ 或 SPEED_ZZ+_ - 更改通过串行端口交换数据的速度。 默认为 4800 波特(由地址 2DH 处的监视器程序字节确定)。 等于 ZZ 操作数的值被放置在微控制器的 TH1 寄存器中,并确定其收发器的速度。 通过设置 PCON.7 位,操作数中的加号可以使速度加倍。 PC串口可工作在110、300、1200、2400、4800、9600、19200、38400、57600波特及以上。 将 MSC51 系列微控制器的串行端口精确调谐到指示速度的能力取决于所使用的石英谐振器的频率。 例如,如果是 12 MHz,则可以使用 SPEED 命令(操作数分别为 300、CC、E600、F1200 和 F2400+)将端口设置为 4800、98、6、3 和 3 波特率。 使用 11 MHz 谐振器,可以实现 9600 波特。 然而,当传输文件时,MK可能无法跟上以太高的速度到达的数据。 所描述的命令集可以被扩展和补充,而无需重新传输监视器,甚至无需擦除ROM。 新的命令处理程序被放置在其空闲区域中。 命令名称(前四个大写字符)从地址 5ABH 开始写入,后跟两字节处理程序地址和字节 0FFH。 处理程序必须以跳转到地址 23FH 结束。 下面提到的所有单字节单元地址均指 MCU 的内部 RAM。 监视器使用寄存器组 0 和 2,以及位置 20H-3FH。 堆栈从地址 50H 开始增长。 当不接收和处理命令时,微控制器连续执行位于 ROM 中单元 35H 和 36H 指定地址处的子程序。 默认为063H。 该子程序定期更改 P3.4 位的状态,打开和关闭 HL1 LED。 闪烁频率取决于 3DH 单元的内容。 如果该位用于其他目的,则应发出 WRITE_35,006A_ 命令。 单元格 37H 和 38H 是来自串行端口的中断处理程序的地址,它实际上充当监视器的主干并确定其对操作员命令的响应。 默认情况下,此处写入0,对应于调用位于ROM 081H 地址处的标准处理程序。 通过向地址3BH写入0以外的代码,可以激活“Echo”功能。 所有通过串行端口接收到的数据都将被发送回监视器。 这将关闭通信程序中的“本地回显”,并且如有必要,将发送到调试模块的所有命令及其对它们的响应保存在文本文件中。 地址 3AH 处的数字设置监视器接收命令和对其响应之间的暂停,这是将某些通信程序从发送切换到接收所必需的(“Telemax”不需要)。 它等于暂停持续时间(以秒为单位)乘以 50。 对存储块进行操作的命令(LOAD、SAVE、CHECK、FILL、COPY)的结果之一是放置在单元 39H 中的块校验和。 它可用于控制列出的命令的正确执行。 监视器可以直接接受许多汇编器生成的 Intel HEX 格式文件。 使用通信程序或简单地使用 MSDOS COPY <文件名> COM2 命令将这样的文件发送到 PC 的串行端口就足够了。 预先使用的端口(在本例中为 COM2)必须使用 MODE COM2:4800,N,8,1 命令进行配置。 这些信息将被写入调试模块的外部数据存储器,如果校验和不匹配,将显示相应的消息。 Intel HEX 文件的每一行都以冒号开头,后跟由两位十六进制数字表示的字节(不带空格):
HEX 文件始终以包含冒号、零数据字节和地址的行结尾,后跟最后一行字符 (01) 和等于 FF 的校验和。 表 3 显示了此类文件的示例,其中包含与根据表 2 的 DATA Monitor 命令输入的数据相同的数据。 作者:V. Ogleznev,伊热夫斯克 查看其他文章 部分 微控制器. 读和写 有帮助 对这篇文章的评论. 科技、新电子最新动态: 用于触摸仿真的人造革
15.04.2024 Petgugu全球猫砂
15.04.2024 体贴男人的魅力
14.04.2024
其他有趣的新闻: ▪ 能源之窗 ▪ 天气和头痛
免费技术图书馆的有趣材料: ▪ 文章西方是西方,东方是东方,他们永远不会在一起。 流行表达 ▪ 文章 哪种关于无用行为的表达实际上是由中世纪僧侣进行的? 详细解答 ▪ 文章关于平板天线放大器的匹配。 无线电电子电气工程百科全书 ▪ 文章在电压倍增器中使用旧零件。 无线电电子电气工程百科全书 本页所有语言 www.diagram.com.ua |