注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题

dcexpert的个人空间 http://home.eeworld.com.cn/space-uid-573537.html [收藏] [复制] [分享] [RSS]

日志

CH554:ISD51的使用补充

已有 325 次阅读2017-10-29 12:19 |个人分类:开发板

前几天论坛已经有网友发过一篇的《使用ISD51进行在线仿真》帖子,不过光看是掌握不了的,还需要自己实际演练,用不同的方法去使用,才能真正掌握。虽然这篇帖子写的很清楚了,但是在学习ISD51的过程中还是遇到一些问题,因此做了一些补充,希望方便其他使用者。

使用方法:
  • 添加ISD51.A51和ISD51.H两个文件到项目中(无需修改文件内容)。
  • 在用户程序中进行串口0的初始化,允许ES中断和全局中断。
  • 用户程序使用ISDinit()或者ISDwait()函数进行初始化。
  • 在项目属性中,设置仿真方式为ISD51,并设置仿真的串口和波特率。仿真的波特率必须和单片机的一致。
  • 编译用户程序,并下载到单片机,就可以联机仿真了。仿真过程和用仿真器没有太大区别,非常方便,速度不比低端硬件仿真器慢(甚至更快)。


注意问题:
  • 如果仿真联机失败,通常是串口初始化、仿真设置、中断使能的问题,只要设置正确,基本就不会失败。
  • 串口波特率可以任意设置,9600、19200、115200都可以,只要硬件支持就可以。当然速率越高,仿真的速度也越快。
  • 在使用USB转串口时,如果你安装过的串口设备较多,可能会超过KEIL中允许的串口设备号(COM1-COM16)。这时只能在串口设备的属性中修改,将串口设备的串口号改为COM1-COM16之间。
  • 在使用RTOS时,因为RTOS对中断的管理,会对ISD51造成一些影响,有时在断点处不能停下,需要手动中断程序运行。


附RTX51-Tiny下使用ISD51的例子:

[C] 纯文本查看 复制代码
#include <SST89X5XXRD2.H>
#include <intrins.h>
#include <rtx51tny.h>
#include "ISD51.H"

sbit LED1 = P1^6;
sbit LED2 = P1^7;

void init()
{
  T2MOD |= 0xA0;  // bTMR_CLK = bT1_CLK = 1
  T2CON &= 0x18;  // RCLK = TCLK = 0
  PCON |= 0x80;   // SMOD = 1

  TMOD &= 0x0F;
  TMOD |= 0x20;
  TH1 = 256 - 6000000UL / (16 * 9600UL);
  TR1 = 1;

  SCON = 0x50;
  ES = 1;
}

void UART0_putc(char dat)
{
  SBUF = dat;  
  while (!TI);
  TI = 0;
}

void UART0_puts(char *s)
{
  while(*s)
  {
    UART0_putc(*s);
    s++;
  }
}

job0 () _task_ 0
{
  init();
  LED1 = !LED1;
  os_wait(K_TMO, 1, 0);
  LED1 = !LED1;
  os_wait(K_TMO, 1, 0);
  LED1 = !LED1;
  os_wait(K_TMO, 1, 0);
  LED1 = !LED1;
  os_wait(K_TMO, 1, 0);
  //UART0_puts("12345\n");
  //ISDwait();
  ISDinit();
  
  os_create_task (1);
       
  while(1)
  {
    ISDcheck();
    //UART0_putc('1');
    // 1s
    LED1 = !LED1;
    os_wait(K_TMO, 10, 0);
  }
}

job1 () _task_ 1
{
  while(1)
  {
    // 500ms
    LED2 = !LED2;
    os_wait(K_TMO, 1, 0);
  }
}



完整项目文件:



此内容由EEWORLD论坛网友dcexpert原创,如需转载或用于商业用途需征得作者同意并注明出处

本文来自论坛,点击查看完整帖子内容。

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

小黑屋|手机版|Archiver|电子工程世界 ( 京ICP证 060456

GMT+8, 2017-11-24 02:47 , Processed in 0.083604 second(s), 11 queries , Redis On.

Powered by EEWORLD电子工程世界

© 2017 http://bbs.eeworld.com.cn/

返回顶部