• MCS51单片机循环彩灯毕业设计 > 广州周立功单片机发展有限公司
  • 广州周立功单片机发展有限公司

    免费下载 下载该文档 文档格式:PDF   更新时间:2006-05-09   下载次数:0   点击次数:2
    文档基本属性
    文档语言:Traditional Chinese
    文档格式:pdf
    文档作者:hck
    关键词:
    主题:
    备注:
    点击这里显示更多文档属性
    广州周立功单片机发展有限公司
    Tel: (020)38730976
    38730977
    Fax:38730925
    P89V51RD2 新型单片机 SoftICE 模式调试指南
    P89V51RD2 是 PHILIPS 公司推出的 51 系列的新型微控制器,它包含 64KB Flash 和 1024 字节的数据 RAM,支持并行和串行的在系统编程(ISP)和在应用中编程(IAP) ,具有 SPI 和增强型 UART,包含一 个 PCA(可编程计数器阵列) ,具有 PWM 和捕获/比较功能.该芯片有一个最突出的特点就是带有自调试 功能 (SoftICE) 该功能使得芯片可以在 Keil Vision2 编程环境下用 Keil Monitor-51 Driver 直接调试程序. , 为帮助用户尽快熟悉并掌握 P89V51RD2 系列单片机的 SoftICE 特性, 作者用该单片机制作了一个简易 的仿真器,配合使用 Keil Vision2 的硬件仿真环境,可实现对程序的单步仿真,多步仿真及全速运行下的 仿真. 一, 简易仿真器设计原理 简易仿真头电路主要由 RS232 通信电路,电源和晶振部分组成.MAX232 芯片负责实现单片机和 PC 机之间的联机通信,用户可通过 RS232 接口直接进行 ISP 操作,方便用户程序下载运行;仿真头的供电电 源为 5V, 采用 11.0692M 的晶振. 本仿真器可以仿真标准 51 系列的所有单片机, 本文讲述的是 P89V51RD2 系列单片机 SoftICE 模式下的仿真,因此在仿真头上插入 P89V51RD2BN 单片机.以下是仿真头的原理图:
    C 1 104 1
    3 4
    U 2 M X232(SO A -16)
    C1+
    VC C
    V + V GD N
    VC C
    C 3
    16
    2 6
    15
    U1
    104
    VC J1 C
    1 2 3 4 5 6
    C 2
    C1 C2+
    C 4
    104
    C0-PSEN C0-RST
    104 5
    11 10
    C2 T1 IN T2 IN
    TX 0 D RD X0
    T1 O T U T2 O T U
    R IN 1 R IN 2
    14 7
    13 8
    C0_RX D C0_TX D
    VC C
    L1 PO W
    HE DER6 A
    12 9
    R1 O T U R2 O T U
    L2 DG B
    C 5 30
    C 6 30
    X 1 110592
    1 2 3 4 5 6 7 8 RST 9 RX 0 10 D TX 0 11 D 12 13 14 15 16 17 18 19 20
    P10 P11 P12 P13 P14 P15 P16 P17 RESET RX D TX D INT0 INT1 T0 T1 W R R D X 2 X 1 GD N
    P89C51R A2(8K)
    VC C P00 P01 P02 P03 P04 P05 P06 P07 EA/V P ALE/P PSEN P27 P26 P25 P24 P23 P22 P21 P20
    VC C 40 39 38 37 36 35 34 33 32 C 31 VC 30 29 PSEN 28 27 26 25 24 23 22 21
    R 6 1K
    R 7 1K
    RD X0
    VC C
    C 8 104
    C 9 104
    图 1 仿真头原理图 仿真头电路板上有两个指示灯,通过指示灯可以判断仿真头工作的情况: 1) 2) 上电后,仿真头的电源指示灯 POW 点亮,方便用户检查电源供电的可靠性; 和 PC 联机后,正常通信的情况下串口通信指示灯 DBG 闪烁,方便用户检查通信的正确与否;
    从原理图中可以看出,仿真头占用串口资源和 PC 机通信,用于在线调试,而标准 51 系列单片机只有 一个串行通信接口,因此该简易仿真头不能仿真和串口相关的实验,这一点用户在使用时需要注意.
    图 2_1 仿真头实物正面图
    -1-
    广州周立功单片机发展有限公司
    Tel: (020)38730976
    38730977
    Fax:38730925
    图 2_2 仿真头实物侧面图 图 2_1 和图 2_2 是仿真头的实物图,外接 5 个端子,其中 2 个端子连接外部电源,负责给仿真头供电; 另外 3 个端子连接 PC 机的串口,负责和 PC 机通信. 本文使用 DP-51S 实验仪的部分资源作为仿真器的目标电路板,实验仪为用户安排了大量经典的实验 并提供了丰富的接口,感兴趣的用户可参照我公司网站上的 DP-51S 实验仪原理图.使用时只需将简易仿 真头插入实验仪上单片机的底座即可. 二,在 Keil Vision2 环境下仿真 P89V51RD2 系列具有在系统编程(ISP)的特性,与内部固件的结合可实现通过串口对单片机的编程, 固件由 PHILIPS 提供并嵌入到每一个 P89V51RD2 芯片当中,在系统编程(ISP)有很多种命令/数据功能, 使用时应根据需要设置成相应的模式,以下将讲述 P89V51RD2××系列单片机在 SoftICE 模式下的调试方 法.P89V51RD2 的 SoftICE 模式下的调试需要仿真器结合 Keil Vision2 的硬件仿真进行.调试主要分为三 步:设置 SoftICE 模式,设置硬件仿真环境和调试程序. 1,设置 SoftICE 模式 使用 Flash Magic 软件设置 P89V51RD2 进入 SoftICE 模式.运行 Flash Magic 软件,在"DEVICE"中 选择 P89V51RD2 单片机.点击"ISP"菜单,选择"Enable SoftICE"即可设置单片机进入 SoftICE 模式. 设置界面如图 3 所示.若 ISP 菜单中没有此选项,说明所使用的 Flash Magic 的版本过旧,需要升级到新的 版本.新版本的下载地址:http://www.philipsmcu.com.
    图3
    SoftICE 模式设置界面
    在使用 Flash Magic 时,有时会出现如图 4 的错误警告对话框,提示 P89V51RD2 未进入 ISP 模式.这 时只需按复位键即可设置单片机进入 ISP 模式.
    图4
    未进 ISP 的错误提示
    -2-
    广州周立功单片机发展有限公司 2,设置仿真环境
    Tel: (020)38730976
    38730977
    Fax:38730925
    程序的编译和仿真在 Keil Vision2 环境下进行,在调试程序之前,需要对工程进行 Debug 设置,选 择软件仿真或硬件仿真.软件仿真使用计算机来模拟程序的运行,不需要建立硬件平台就可以快速得到某 些运行结果;硬件仿真是最准确的仿真方法,它必须建立硬件平台,通过 PC 机硬件仿真器用户目标 系统进行系统调试.本文采用硬件仿真的方法,硬件平台即为插入 P89V51RD2 仿真头的实验板,设置硬 件仿真的具体操作如下: 点击 Project 菜单中的 Options for Target 'Targer 1',出现工程的配置窗口,点击 Debug 设置,选择 Keil Monitor-51 Driver,具体参数设置如图 5 所示:
    图5
    工程设置 Debug 窗口
    仿真器参数的设置:建议波特率设置范围在 300~38400 之间;为避免程序中的中断和 KEIL 硬件仿真 环境中的中断互相冲突,不选择"Stop Program Execution with Serial Interrupt" .仿真器参数的设置如图 6 所示:
    图 6 仿真器参数设置
    -3-
    广州周立功单片机发展有限公司 3,调试程序
    Tel: (020)38730976
    38730977
    Fax:38730925
    按以上要求将系统设置好后, 若程序编译链接没有错误, 点击 Debug 菜单中的 Start/Stop Debug Session 就可以在 DP-51S 实验仪上进行硬件仿真了.仿真时可以选择单步跟踪,单步运行,运行到光标处或全速 运行来观察仿真现象和运行结果.需要注意的是,当用户程序代码占用空间接近 60K 时,建议下载速度不 要超过 38400,速度太快有可能会导致下载过程中出现死机. SoftICE 模式下可以实现对单片机大部分资源的仿真,但需要注意自调试功能(softICE mode)功能有 如下限制: 1) 不能支持看门狗 WatchDog 功能和软件复位功能,执行该操作将会导致仿真运行被终止,在 KEIL Vision 仿真界面的工具栏中可以看到 Debug 已经被终止,等待用户启动运行; 2) 用户只能使用 0000H –FBFFH 程序区,系统占用 4K 的 Flash 空间,用户的应用程序最多占用 60K 的空间, ; 3) 若将断点设置在单或双字节结构指令处且后面紧跟的是一条跳转指令时,这种设置有可能导致程 序运行不正常; 4) 仿真器参数的设置中,当选择"Stop Program Execution with Serial Interrupt"选项后,SoftICE 将修 改 3 个字节的中断向量(中断向量位置为 0023H) ,为避免发生冲突,用户要确保程序不使用该地 址.由于有一个握手信号在 PC 机和 MCU 之间执行,所以执行用户程序的速度将会变得缓慢.若 要在全速运行环境下对程序进行仿真,建议不要选择该功能,否则可能会导致程序在运行过程中 死机; 5) 定时器 T2 在 SoftICE 模式下用来产生 PC 机和仿真器之间通信的波特率,因此,该模式下不能对 定时器 T2 进行仿真.执行全速运行指令"run"时,定时器 2 可作为定时器/计数器被使用:在 run 指令开始执行后,TR2(T2CON.2,定时器 2 启动位)将被置 1 开始计数,在"run"到达下一个 断点时,该位被清 0. 6) 单步跟踪时, 所有的定时器/计数器都不能用来实时仿真, 因为单步调试下执行完指令后就会停止, 而定时器一旦被启动就开始运行不会停止;在全速模式下运行时可以仿真定时器 0 和定时器 1; 7) 用户不能从主程序进入中断服务程序(ISR) .当需要跳过 ISR 时,用户可以在 ISR 之间设置断点, 然后跳过这段代码. 使用 P89V51RD2 简易仿真器配合 Keil Vision2 进行仿真,给调试程序带来了极大的方便,它可以帮 助用户尽快熟悉并了解 P89V51RD2 系列微控制器的资源,掌握其应用开发技术并提高编程效率.虽然 SoftICE 模式占用了系统一些资源,但是经过合理的安排,一般的程序还是可以接受的.在实际使用中,用 户也可以根据自己的情况灵活地设计电路,制作适合自己使用的实验平台,本文只作为一个示例供用户参 考. 附录: /***********************************************************/ // // // // 文件名:test.c 版权: www.zlgmcu.com 日期: 04-5-29 功能: P89V51RD2 仿真器 I/O 口仿真测试
    /***********************************************************/ #include #include #define #define HC573 XBYTE[0x2000] BYTE unsigned char
    -4-
    广州周立功单片机发展有限公司 #define sbit sbit sbit main() { BYTE temp; WORD j=0; do{ HC573 = 0x00; temp = P1&0x80; if(temp= =0){ j = 5000; while(j--); temp = P1&0x80; if(temp= =0){ HC573 = 0xFE; temp = P1&0x80; if(temp= =0){ LED9 = 1; LED10 = 1; LED11 = 1; } HC573 = 0xFD; temp = P1&0x80; if(temp= =0){ LED9 = 1; LED10 = 1; LED11 = 0; } HC573 = 0xFB; temp = P1&0x80; if(temp= =0){ LED9 = 1; LED10 = 0; LED11 = 1; } HC573 = 0xF7; temp = P1&0x80; if(temp= =0){ LED9 = 1; LED10 = 0; WORD unsigned int LED9 LED10 LED11 = = = P1^0; P1^1; P1^2;
    Tel: (020)38730976
    38730977
    Fax:38730925
    //
    有键按下
    //
    说明为按键而不是抖动
    //
    说明按下的键为 KL1 键
    //
    熄灭所有二极管
    //
    说明按下的键为 KL2 键
    //
    点亮 LED11 二极管
    // //
    说明按下的键为 KL3 键 点亮 LED10 二极管
    // //
    说明按下的键为 KL4 键 点亮 LED10 二极管
    -5-
    广州周立功单片机发展有限公司 LED11 = 0; } HC573 = 0xEF; temp = P1&0x80; if(temp= =0){ LED9 = 0; LED10 = 1; LED11 = 1; } HC573 = 0xDF; temp = P1&0x80; if(temp= =0){ LED9 = 0; LED10 = 1; LED11 = 0; } HC573 = 0xBF; temp = P1&0x80; if(temp= =0){ LED9 = 0; LED10 = 0; LED11 = 1; } HC573 = 0x7F; temp = P1&0x80; if(temp= =0){ LED9 = 0; LED10 = 0; LED11 = 0; } } else{ } } else{ } }while(1); } 参考文献: 《P89V51RD2 器件手册》
    Tel: (020)38730976 //
    38730977
    Fax:38730925
    点亮 LED11 二极管
    // //
    说明按下的键为 KL5 键 点亮 LED9 二极管
    // // //
    说明按下的键为 KL6 键 点亮 LED9 二极管 点亮 LED11 二极管
    // // //
    说明按下的键为 KL7 键 点亮 LED9 二极管 点亮 LED10 二极管
    //
    说明按下的键为 KL8 键
    //
    点亮所有的二极管
    //
    说明为按键抖动
    //
    没有键按下
    http://www.zlgmcu.com
    -6-
  • 下载地址 (推荐使用迅雷下载地址,速度快,支持断点续传)
  • 免费下载 PDF格式下载
  • 您可能感兴趣的
  • 单片机彩灯循环控制器  mcs51单片机设计论文  mcs51单片机应用设计  mcs51单片机仿真软件  mcs51单片机指令系统  mcs51单片机视频教程  mcs51单片机应用教程  mcs51单片机考试试题  单片机彩灯小制作