注意:访问本站需要Cookie和JavaScript支持!请设置您的浏览器! 打开购物车 查看留言付款方式联系我们
初中电子 单片机教材一 单片机教材二
搜索上次看见的商品或文章:
商品名、介绍 文章名、内容
首页 电子入门 学单片机 免费资源 下载中心 商品列表 象棋在线 在线绘图 加盟五一 加入收藏 设为首页
本站推荐:
Mon51仿真器
文章长度[13539] 加入时间[2006/10/25] 更新时间[2024/12/26 8:21:40] 级别[3] [评论] [收藏]
 

仿真机介绍

Keil c51 是为8051单片机开发设计的功能强大开发软件。Mon51仿真器便是基于Keil C51软件的仿真器,虽然它的功能有所限制,但对于初学者来说可以用来入门。

一、安装MON51板



1、DB9插座必须用“公”的(针),
且必须按“C:\Keil\C51\MON51\MON51.PDF”说明第二页图示在印制板上飞线将DB9插座的7和8脚,1和4和6脚分别短接(有些印制电路板上布好

的连线并不包含该线);如果DB9插座已经焊了“母”的(孔),建议想办法换掉(先将两固定脚的焊锡用电烙铁融化,用吸锡器吸出,9根信号脚

用电烙铁堆锡,然后乘焊锡未凝固迅速拔出,最后清理焊盘重新焊接);
    如果非要使用“母”的(孔),则不能使用市面上买的标准串口线,须自制,印制电路板MAX232至DB9插座的连线必须划断重新飞线,并保证

仍然满足“C:\Keil\C51\MON51\MON51.PDF”说明第二页图示电气要求;

2、所有集成块处焊IC座以方便更换集成块(毕尽我们都是第一次做MON51且通常仅做一块嘛,难免会出问题);

3、晶振用11.0592MHz,AT89C52的18和19脚至40芯扁平电缆插座的连线要划断;

4、有些Keil Monitor-51板有两个三针跳线,一个用来选择复位键是用Keil Monitor-51板的还是目标板的;另一个用来选择5V是用Keil

Monitor-51板的还是目标板的;

5、按照印制版丝印参数安装元件,注意极性元件的方向;

6、注意74HC573(或74LS573)与74HC373(或74LS373)不可直接互换,因为虽然它们功能相同,但引脚的功能排列不一样;

7、如果计算机空闲串口为9芯,通讯线可在市面上购买9芯标准串行线(两头均为9芯"母"的(孔),非modem线),也可自制,内部连线为:
                 5----------5
                 3----------2
                 7----------8
9芯"母"(孔)头    6----------4    9芯"母"(孔)头
                 2----------3
                 8----------7
                 4----------6

    若电脑串口插座为老式挡板条结构,请确认内部已正确连到主板,若电脑9芯串口已被鼠标占用,仅剩25芯串口,可在市面上购买一头25芯

一头9芯的串行线(两头均为"母"的(孔),非modem线)或直接自制,内部连线为:
                 2----------2
                 3----------3
                 4----------6+8
9芯"母"(孔)头    5----------7    25芯"母"(孔)头
               6+1----------20
                 7----------5
                 8----------4
也可加装一25芯("母"(孔))串口转9芯("公"(针))串口转换器,配9芯标准串行线;

用万用表确认内部连线正确;

8、可在DOS方式下在“c:\keil\c51\mon51”子目录运行“install 0 ff 0”,即可生成MON51.HEX文件,将其用编程器写到AT89C52中,再插到

印制板上;
    也可直接下载“www.c51bbs.com”主页的文件“MON51.zip”,用winzip展开其中的“MON51.HEX”,用编程器写到AT89C52中;
    没有编程器的朋友可将文件“MON51.HEX”和AT89C52芯片交给单位(或个人)有编程器的朋友帮忙;如果朋友都没有编程器,也可问问单

片机编程器代理商能否帮忙,可能需付点钱;

9、如果Keil Monitor-51板没有整流桥电路但有7805,外接电源必须用9V-12V左右的直流适配器,并注意极性;
    如果Keil Monitor-51板有整流桥电路,外接电源可用9V-12V左右的交流适配器(如某些modem的电源适配器)或直流适配器,此时直流适

配器并不需要注意极性;
    通电时电源指示发光二极管应点亮,用万用表20V或以上直流电压档测7805输出应为5V;

二、连线及设置

1、串行线一头接计算机,并记下是COM1还是COM2,另一头接Keil Monitor-51板DB9插座;

2、电源适配器接Keil Monitor-51板电源插座;

3、拔下目标板被仿真的AT89C52芯片,将仿真头擦在原来擦AT89C52的IC座上,仿真线40芯扁平电缆插头接Keil Monitor-51板40芯扁平电缆插

座上;在没有目标板的情况下也可调试一些对端口操作的简单程序,用万用表或发光二极管观测Keil Monitor-51板AT89C52端口电平;

4、若Keil Monitor-51板有跳线则根据自己的要求跳线,在没有目标板的情况下,设为选择Keil Monitor-51板的复位键和5V电源;


三、软件调试

1、开机,运行Keil uVision2;

2、创建工程;

鼠标左键单击主菜单“Project”----------
鼠标左键单击子菜单“New Project”---------
弹出“Creat New Project”对话框---------
用鼠标在“保存在”下拉框选择你要保存的文件夹(比如“我的文档”)----------
在“文件名”文本框处用键盘敲入你给这个工程起的工程名(如“test1”)----------
鼠标左键单击“保存”按键----------
弹出"Select Device for Target 'Target1'"对话框---------
用鼠标在左边列表框“Data Base”区双击ATMEL或单击ATMEL前的“+”号----------
ATMEL子选项展开----------
用鼠标左键单击“89C52”----------
用鼠标左键单击“确定”按键--------

3、建立源程序;

A、汇编程序

鼠标左键单击菜单“File”----------
鼠标左键单击菜单“New”---------
在新建的文本窗口(Text1)中用键盘键入你的汇编程序
(
例如使P1.0输出高低电平的源程序:

    ORG 8000H
LOOP:   SETB P1.0
        LCALL DELAY
        CLR P1.0
        LCALL DELAY
        AJMP LOOP
DELAY:  MOV R7,#250
D1:     MOV R6,#250
D2:     DJNZ R6,D2
        DJNZ R7,D1
    ret
    end

)------
鼠标左键单击菜单File------
Save as---------
在新建的文档中键入你的汇编程序--------
弹出Save As对话框----
用鼠标在"保存在"下拉框选择你要保存的文件夹(比如"我的文档")--------
在“文件名”文本框处用键盘敲入你给这个工程起的工程名(如"test1.a51")--------
鼠标左键单击“保存”按键
在左边资源管理器用鼠标左键双击“Target 1”或单击“Target 1”前的“+”号-----
鼠标右键单击Source Group--------
弹出“Add file to Group 'Source Group 1'”------
“文件类型”选“asm source file (*.a*)”---
找到"test1.a51"文件,鼠标左键单击该文件--------
鼠标左键单击“Add”----
鼠标左键单击“Close”----


修改程序直到鼠标左键单击主菜单“Project”------
鼠标左键单击子菜单“Built target”------
下边窗口显示""test1"-0 Errors(s),0 Warning(s)"--------

B、C51程序

鼠标左键单击菜单“File”------
鼠标左键单击菜单“New”---------在新建的文本窗口“Text 1”中用键盘键入
你的C51程序
(

/*------------------------------------------------------------------------------
HELLO.C

Copyright 1995-1999 Keil Software, Inc.
------------------------------------------------------------------------------*/

#include                 /* special function register declarations   */
                                  /* for the intended 8051 derivative         */

#include                 /* prototype declarations for I/O functions */

 

#ifdef MONITOR51                         /* Debugging with Monitor-51 needs   */
char code reserve [3] _at_ 0x23;         /* space for serial interrupt if     */
#endif                                   /* Stop Exection with Serial Intr.   */
                                         /* is enabled                        */


/*------------------------------------------------
The main C function.  Program execution starts
here after stack initialization.
------------------------------------------------*/
void main (void) {

/*------------------------------------------------
Setup the serial port for 1200 baud at 16MHz.
------------------------------------------------*/

#ifndef MONITOR51
    SCON  = 0x50;                /* SCON: mode 1, 8-bit UART, enable
rcvr      */
    TMOD |= 0x20;               /* TMOD: timer 1, mode 2, 8-bit reload        */
    TH1   = 221;                /* TH1:  reload value for 1200 baud @ 16MHz   */
    TR1   = 1;                  /* TR1:  timer 1 run                          */
    TI    = 1;                  /* TI:   set TI to send first char of UART    */
#endif

/*------------------------------------------------
Note that an embedded program never exits (because
there is no operating system to return to).  It
must loop and execute forever.
------------------------------------------------*/
  while (1) {
    P1 += 0x01;                 /* Toggle P1.0 each time we print */

        //My Add
//        delay();//大约二秒
//        P1=0xff;
//        delay();
        //My Add

//    printf ("Hello World\n");   /* Print "Hello World" */
  }
}


)------
鼠标左键单击菜单file------
save as---------
在新建的文档中键入你的汇编程序--------
弹出Save as对话框----
用鼠标在"保存在"下拉框选择你要保存的文件夹(比如"我的文档")--
在“文件名”文本框处用键盘敲入你给这个文件起的文件名(如"testc51.c51")-------- 
鼠标左键单击左边列表框Target1-----
鼠标右键单击Source Group--------
弹出Add file to Group 'Source Group 1'------
文件类型选c source file (*.c)---
找到"testc51.c51"鼠标左键单击该文件--------
鼠标左键单击"add"-------
找到"C:\KEIL\C51\LIB\Startup.a51"鼠标左键单击该文件--------
鼠标左键单击"add"----
鼠标左键单击"close" --------
将 "Startup.a51"的"CSEG    AT    0"改为"CSEG    AT    08000H"


修改程序直到鼠标左键单击菜单“Project”------
鼠标左键单击子菜单“Built target”------
下边窗口显示""test1"-0 Errors(s),0 Warning(s)"

4、设置参数;


用鼠标左键单击主菜单“Project”------
用鼠标左键单击子菜单“Options for Target 'Target1'”--------
弹出“Options for Target 'Target1'”对话框------
在“Target”标签下修改“Xtal(Mhz)”为“11.0592”--------
在“Output”标签下,选中“Create HEX file”(如果你要生成hex文件用编程器写到目标板的
89C52单片机中)-------
在“C51”标签下修改“Interrupt vectors at address”为“0x8000”----
在“BL51 Locate”标签“Code”中填入“0x8000”------
在“debug”标签选中“Use keil monitor-51 driver”--------
用鼠标左键单击"Setting"按键-------
根据你用的串口用鼠标选择Port------
左键单击"ok"按键----
选中“Load Application at Start”---------
选中“Go till main()”---


用鼠标左键单击"确认"按键-------
其余缺省


5、仿真调试;


用鼠标左键单击主菜单“Debug”------
用鼠标左键单击子菜单“Start/Stop Debug Session”----
用鼠标左键单击主菜单“Peripheral”----
用鼠标移到子菜单“I/O - Ports”----
用鼠标左键单击子菜单“Port1”---
用鼠标左键单击子菜单“View”---
用鼠标左键单击子菜单“Periodic Window Update”---
切换到你的源程序窗口----
将光标移到开头的一条可执行语句上----
用鼠标左键单击主菜单“Debug”------
用鼠标左键单击子菜单“Run to Cursor line”------
用鼠标左键单击子菜单“Step”----
或用鼠标左键单击子菜单“Insert/Remove break point”-----
用鼠标左键单击子菜单“Go”--------
重复“Step”或“Insert/Remove break point”“Go”;
用万用表测AT89C52的P1.0(即1脚)的电压是否和程序及"parallel port 1"窗口一致;

停止debug用鼠标左键单击主菜单“Debug”------
用鼠标左键单击子菜单“Start/Stop Debug Session”

注意:每次重新“debug”前要按一下复位键;

四、目标板独立运行

1、确认程序调试通过后,若为汇编汇编程序则将“ORG 8000”改为“ORG 0”,
若为C51程序则将“Startup.a51”中“CSEG    AT    08000H”
改回“CSEG    AT    0H”,
鼠标左键单击菜单“Project”------
鼠标左键单击子菜单“Built target”------
下边窗口显示""test1"-0 Errors(s),0 Warning(s)"
2、将生成的文件“工程名.HEX”用编程器写入目标板51单片机,将其插回目标板原处,通电独立运行;

 

五、下载 (解压密码:www.zsmcu.com)

电路图、电路板、固化软件等

1、 本站不保证以上观点正确,就算是本站原创作品,本站也不保证内容正确。
2、如果您拥有本文版权,并且不想在本站转载,请书面通知本站立即删除并且向您公开道歉! 以上可能是本站收集或者转载的文章,本站可能没有文章中的元件或产品,如果您需要类似的商品请 点这里查看商品列表!
本站协议 | 版权信息 |  关于我们 |  本站地图 |  营业执照 |  发票说明 |  付款方式 |  联系方式
深圳市宝安区西乡五壹电子商行——粤ICP备16073394号-1;地址:深圳西乡河西四坊183号;邮编:518102
E-mail:51dz$163.com($改为@);Tel:(0755)27947428
工作时间:9:30-12:00和13:30-17:30和18:30-20:30,无人接听时可以再打手机13537585389