真菌是什么原因引起的| 7月3日是什么日子| 印尼用什么货币| 想怀孕需要检查什么项目| 助力车是什么车| 为什么叫印度三哥| 人肉什么意思| 可定是什么药| 右下腹痛挂什么科| ia是什么意思| 金银花什么时候采摘最好| 伤口发痒是什么原因| 夜盲症是什么症状| 胖头鱼又叫什么鱼| 12345是什么投诉电话| 包皮瘙痒用什么药| 九月初六是什么星座| 什么地方能做亲子鉴定| 什锦是什么水果| 月亮星座是什么| 婴儿八个月可以吃什么辅食| 基尼是什么货币| 白喉是什么病| 心包填塞三联征是什么| 莲子心有什么作用| 苯醚甲环唑防治什么病| 灌肠用什么水| 基因病是什么意思| 果葡糖浆是什么| 什么时间泡脚最好| 缺钾吃什么| hps是什么意思| 什么哲理| 佝偻病是什么病| 大腿后侧疼痛什么原因| 什么粉可以代替木薯粉| 福禄寿是什么意思| cas号是什么| 11.4什么星座| 大黄泡水喝有什么功效| 突如其来什么意思| 紫癜是什么病| 连锁反应是什么意思| 胎儿宫内窘迫是什么意思| maybach是什么车| 摩卡棕是什么颜色| 静脉曲张吃什么食物| 十二指肠球炎是什么病| 皮肤溃烂用什么药治愈最快| 不是月经期出血是什么原因| 劳碌命是什么意思| 腰椎间盘突出和膨出有什么区别| 手足口病吃什么药| 中央党校什么级别| 嬴荡和嬴政什么关系| 胃疼吃什么药好得最快最有效| 爬虫是什么| 随心所欲的欲什么意思| 草字头弓读什么字| 省军区司令员是什么级别| 女人吃什么补气血效果最好| 伏羲姓什么| 什么是双相情感障碍| 什么样的长城| 哺乳期发烧吃什么药不影响哺乳| 南瓜和窝瓜有什么区别| 佝偻病是什么| 硅对人体有什么危害| 什么是潮吹| 戒断反应什么意思| 头发热是什么原因| yair是什么牌子的空调| 虾子不能和什么一起吃| 猪头肉是什么意思| 天龙八部是指佛教中的什么| 不为良相便为良医是什么意思| 9.22是什么星座| 西洋菜是什么菜| 羧甲基纤维素钠是什么| 钻石和锆石有什么区别| 俺是什么意思| a型血和什么血型生出o型血| 龟头脱皮是什么原因| 经常打屁是什么原因| 孕囊形态欠规则是什么意思| 2014年属什么生肖| 哺乳期上火了吃什么降火最快| 办幼儿园需要什么证| 小赤佬是什么意思| 射精是什么意思| 经常射精有什么伤害| 肛门瘙痒用什么药膏好| 恩师是什么意思| 丙烯是什么| 救人一命胜造七级浮屠是什么意思| 广州的市花是什么| 长痘不能吃什么| 什么是鸡奸| 瘆人是什么意思| 什么水解渴| 咳嗽咳出血是什么原因| 鸡吃什么食物| 梦见自己的车丢了是什么意思| 类风湿什么症状| 鸡吃什么食物| 卫校学什么专业最好| 三七粉什么时间吃最好| 桑黄是什么树上长出来的| 为什么低血压| 什么手机好用| 胆碱酯酶是什么意思| 诱发电位是检查什么病的| 下水道井盖为什么是圆的| 人吃什么才能长胖| 西葫芦不能和什么一起吃| 七情六欲指什么| 泪腺堵塞有什么症状| 尔昌尔炽什么意思| 中国第一长洞是什么| 砥砺是什么意思| 破财消灾什么意思| 过敏性皮炎吃什么药| 献完血应该注意什么| 冥币是什么意思| 为什么老想睡觉| 什么是地中海贫血| 小孩过敏性咳嗽吃什么药| 吃猪腰子有什么好处和坏处| 750是什么金| 三月十五是什么星座| 旦辞爷娘去的旦是什么意思| 表面活性剂是什么| 牛肉含有什么营养成分| 巡抚相当于现在的什么官| 尿血是什么病的征兆| rolls是什么意思| 薛字五行属什么| 老人手抖是什么原因| 什么原因导致卵巢早衰| 蚕豆是什么豆| 脱氧核糖是什么| 太平果是什么水果| 洗发水和洗发露有什么区别| 12月25日是什么日子| 自我感动是什么意思| 屁股疼是什么原因引起的| 相濡以沫是什么意思| 翎字五行属什么| 心灵的洗礼是什么意思| 打九价是什么意思| 懿字五行属什么| 脸黑的人适合穿什么颜色的衣服| 回乡偶书的偶书是什么意思| nec医学上是什么意思| 有代沟是什么意思| 不可以加什么偏旁| 怀孕周期是从什么时候开始算的| 情趣什么意思| 什么是sp| 骨折吃什么| 胆囊炎有什么症状表现| 病毒感染有什么症状| 月经量少什么原因| 狸猫换太子什么意思| 父亲节做什么手工| 晚上睡觉睡不着是什么原因| 相位是什么意思| 女票什么意思| 小腿麻木是什么原因| 西洋参是补什么的| 过山风是什么蛇| 一直流鼻血是什么原因| 夏至是什么意思| 女人吃玛卡有什么好处| 927什么星座| 无事不登三宝殿什么意思| 门良念什么| 什么饼不能吃脑筋急转弯| 脚趾脱皮是什么原因| 脂肪瘤是什么| 巴黎世家是什么档次| 口腔溃疡喝什么饮料| 钝是什么意思| 同房后需要注意什么| 薄姬为什么讨厌窦漪房| 霸王别姬是什么生肖| 60岁是什么之年| 为什么要小心吉普赛人| 粉色配什么颜色| st股票是什么意思| 射精什么感觉| 严重贫血的人吃什么补血最快| 经常感觉饿是什么原因| 伪善是什么意思| 什么草药能治肿瘤| 素鲍鱼是什么做的| 白薯是什么| 打了鸡血是什么意思| 郑和是什么族| 湿疹要注意什么| apple什么意思| 尿频看什么科| 香仪是什么意思| 马上风为什么拔不出来| 早入簧门姓氏标什么意思| 绿豆跟什么一起煮最好| 荼蘼是什么意思| 怀孕检查挂什么科| 拔罐后发痒是什么原因| 王羲之的儿子叫什么名字| 怀才不遇是什么意思| 翡翠的种水是什么意思| 瓷娃娃什么意思| 甘油三脂高是什么意思| 怀孕生化了有什么症状| 肺部结节是什么意思啊| 西瓜禁忌和什么一起吃| 陈皮是什么水果的皮| 血管脆是什么原因| 肾结石可以吃什么| veromoda是什么牌子| 脚褪皮是什么原因| 散粉和粉饼有什么区别| 泪河高度说明什么| 圭是什么意思| 三轮体空什么意思| 梦见入室抢劫意味什么| 明年是什么年| 做梦房子倒塌什么预兆| 羊水指数和羊水深度有什么区别| 白菜发苦是什么原因| 东字五行属什么| 男人吃秋葵有什么好处| 北京立冬吃什么| 早餐有什么| 唇炎涂什么药膏| 黑色素通过什么排出来| 精分什么意思| 夏天吃什么好| 中山有什么大学| 人流是什么意思| 晚上夜尿多吃什么药| nikon是什么牌子| 压车是什么意思| 夏季有什么花| 女人脸肿是什么原因引起的| hgb是什么意思| 秋葵什么季节吃| 支气管激发试验阴性是什么意思| 月经量少是什么原因| 帝加口念什么| 祥林嫂是什么样的人| 鼻头长痘痘什么原因| 什么是cin病变| 腿抽筋挂什么科| 孩子铅高有什么症状| 糖尿病筛查做什么检查| 河南话信球是什么意思| 发烧嗓子疼吃什么药好| 婴儿老打嗝是什么原因| 括约肌是什么| 嗝屁是什么意思| 火花是什么生肖| 什么至什么来| 百度

STC Monitor-51的单片机在线仿真调试

嵌入式系统 时间:2025-08-05来源:网络
百度 《群言》杂志也是陶公和老一辈民盟人留给民盟和社会的一份财富。

摘要:51内核单片机在线仿真调试是一种取代专业仿真器的有效手段。利用ISP/IAP方法和STC Monitor-51监控程序,以及单片机集成开发环境Keil C51的在线仿真功能的支持,STC公司的IAP15F2K61S2单片机实现了在线仿真调试功能,为单片机教学和应用开发提供了一条新的途径。

引言

当今很多院校中,单片机的教学仍以经典的51内核单片机为主。其实验与应用开发中最重要的环节是软、硬件综合调试,通常采用的方法主要有两种:一种是使用仿真器,优点是功能齐全,但是价格较高,一般厂家研发采用;另一种是使用软件仿真和芯片直接烧写验证的方法,其成本虽然低,但在程序或硬件出现疑难问题时,很难找到原因。

实际上,还有一种成本低且具有在线仿真调试功能的技术是在线仿真调试,它特别适合初学者。“在线仿真调试”是指:通过Keil C51编译器,结合单片机中的监控程序,对系统的应用程序和硬件进行仿真调试,可以让单片机以单步、断点、全速等运行模式来执行程序。在线仿真调试是单片机应用开发过程中的高效方法,国内STC公司的51内核单片机IAP15F2K61S2便具有在线仿真调试功能。

1 在线仿真调试概述

Keil C51编译器开放了调试器与目标芯片的接口,只要芯片厂商提供自己特有的驱动程序(动态链接库DLL),就能使Keil调试器在不改变图形界面的情况下支持相应的硬件仿真调试。

STC Monitor-51是STC公司开发的内嵌Keil C51编译器的目标系统调试模块,它是一个实时监控程序,可利用PC机的USB口与目标端进行通信。在线仿真调试系统的结构示意图如图1所示。

a.jpg

PC机端由Keil调试器和STC Monitor-51的驱动程序stcmon51.DLL组成,stcmon51.DLL是STC公司自主开发的Keil仿真驱动协议,功能相比于 Keil自带的Mon51.DLL有较大的突破,例如:更改通信接口为真正的USB口,支持Keil Flash Download功能,支持软件复位,增加断点数量等。目标端由USB转串口芯片CH340、51内核单片机及STC Monoitor-51监控程序组成。Keil调试器将用户的调试指令通过PC机的USB口传送给目标端;目标端的USB转串口芯片将其转换为TTL电平后发送给单片机,最后由单片机中驻留的STC Monitor-51监控程序分析并执行。

2 在线仿真调试实现

2.1 IAP15F2K61S2的存储器结构

STC Monitor-51具有载入并执行用户程序的功能,所以要求单片机的程序存储器为Flash ROM,并具有ISP功能。ISP(In System Programming,在系统编程)指电路板上器件不用取出,就可以写入用户代码,已经编程的芯片也可以用ISP方式擦除或再编程。

IAP15F2K61S2单片机的程序存储器与数据存储器是独立编址的。IAP15F2K61S2单片机内部在物理上有4个相互独立的存储器空间;程序存储器(程序Flash)、片内基本RAM、片内扩展RAM与EEPROM(数据Flash)。IAP15F2K61S2单片机片内集成了61 KB的程序Flash存储器,其地址为0000H~F3FFH。用户可以使用的最大程序空间为55 KB,整个程序Flash存储器的分布图如图2所示。

b.jpg

很多单片机在出厂时已经将具有Boot loader功能的程序固化在系统区中,因此无需编程器就可通过ISP下载软件将用户程序下载到Flash ROM中。STC公司的单片机可以进行ISP串行下载程序,就是因为系统区中有芯片出厂时就已经固化的ISP引导码。如果想要下载应用程序至单片机,先要在下载软件界面上进行相应选择,然后再上电,当单片机检测到上位机中有特定的下载条件时,便启用ISP下载功能将程序下载至用户程序区;否则,单片机便会从用户应用程序区中开始执行代码。

STC公司的最新ISP下载软件stc-isp-15xx-v6.77.exe还可以将STC Monoitor-51监控程序下载到监控程序区,从而实现在线仿真调试功能。

2.2 IAP15F2K61S2的ISP和IAP实现

在线仿真调试功能的实现依赖于用户系统内部的监控程序和PC机上的下载程序。其具体实现主要利用IAP(In Applicatin Programming,在应用编程)技术,即在程序运行时程序存储器可由程序自身进行擦写。IAP15F2K61S2单片机的IAP功能,与以下几个特殊功能寄存器有关。

IAP_DATA:ISP/IAP数据寄存器,从Flash读出的数据放在此处,写入Flash的数据也需放在此处。

IAP_ADDRH:ISP/IAP地址寄存器高8位。

IAP_ADDRL:ISP/IAP地址寄存器低8位。

IAP_CMD:ISP/IAP命令寄存器,须IAP_TRIG触发方可生效。

IAP_TRIG:ISP/IAP命令触发寄存器。

IAP_CONTR:ISP/IAP控制寄存器。

当IAPEN(IAP_CONTR.7)=1时,只有对IAP_TRIG先写入0x5A、再写入0xA5,ISP/IAP命令才会生效。

ISP/IAP操作完成后,IAP命令寄存器、IAP地址高8位地址寄存器和低8位地址寄存器的内容都不变。如果需要对下一个地址的数据进行 ISP/IAP操作,则要手动将该地址的高8位和低8位对应写入地址寄存器中。每次进行IAP操作时,都要对IAP_TRIG先写入0x5A,再写入 0xA5,ISP/IAP命令才会生效。

ISP/IAP命令寄存器IAP_CMD的格式如表1所列。通过对命令寄存器IAP_CMD的MS1和MS0位进行赋值,可以实现相应功能。

c.jpg

IAP15F2K61S2程序在用户应用程序区时,不仅可以对数据Flash区(EEPROM)进行字节读、字节编程和扇区擦除,而且可以修改用户应用程序区。扇区擦除程序示意性代码如下所示,其他ISP/IAP操作类似。

IAP_ADDRH=EE_address/256; //送扇区地址高字节(地址需要改变时才需重新送地址)

IAP_ADDRL=EE_address%256; //送扇区地址低字节(512字节/扇区)

IAP_CONTR=0xS0; //设置等待时间,允许ISP/IAP操作,送一次就够

IAP_CMD=3; //送扇区擦除命令,命令不需改变时,不需重新送命令

IAP_TRIG=0x5A;

IAP_TRIG=0xA5; //ISP/IAP触发命令

2.3 监控程序

为配合Keil调试器的硬件仿真调试,监控程序应具备相应的单步、断点设置、ID读取等功能。仿真开始时,监控程序接收命令,判断相应的功能操作,再执行。STCMonoit or-51监控程序只能在程序中给定点处监测,调试时需要占用程序空间,属于一种侵入式的调试,其工作流程如图3所示。

d.jpg

2.4 IAP15F2K61S2在线仿真调试过程

以前的51内核单片机在线仿真调试时,需要根据硬件结构,修改应用程序和Keil C51集成开发环境的参数,初学者不易掌握,从而影响普及推广。STC公司的IAP15F2K61S2是十分易用的在线仿真调试芯片,只需利用最新ISP 下载软件stc-isp-15xx-v6.77.exe,将监控程序下载到单片机中,就可轻松地实现在线仿真调试功能。IAP15F2K61S2线仿真调试过程如下。

2.4.1 安装仿真驱动

运行ISP下载软件stc-isp-15xx-v6.77.exe,在“Keil仿真设置”页面中单击“添加MCU型号到Keil中”按钮,在出现的目录选择窗口中,确定到Keil的安装目录(一般可能为“C:Keil”)。添加头文件的同时也会安装STC的STC Monitor-51仿真驱动stcmon51.DLL。

2.4.2 创建仿真芯片

将一颗IAP15F2KG1S2通过目标板连接到电脑的USB口,然后在“Keil仿真设置”页面中单击“将IAP15F2K61S2设置为仿真芯片”按钮,再给目标板上电,当程序下载完成后仿真器便制作完成。

2.4.3 创建项目工程

若上一步的驱动安装成功,则在Keil中新建项目工程、选择芯片型号时,便会有“STC MCU Database”的选择项,然后从列表中选择相应的MCU型号(目前STC支持仿真的型号只有STC15F2K60S2),单击“确定”完成选择,再按Keil的一般使用方法添加源程序到项目工程中,若编译无误,则可以进行下面的项目设置。

2.4.4 硬件仿真驱动选择

选择Project中的Opertions for Target’Target1’,进入“Debug”设置页,在右侧的硬件仿真驱动下拉列表中选择“STC Monitor-51 Driver”项,然后单击“Settin gs”按钮,对串口的端口号和波特率进行设置,波特率一般选择115 200或者57 600。到此设置便完成了。

2.4.5 在线仿真调试

在这个Keil工程下,按下“Ctrl+F5”即可开始在线仿真调试。若硬件连接无误,将会进入到类似于常用的软件调试,并在命令输出窗口显示当前的仿真驱动版本号和当运行、全速运行等进行仿真调试。调试中的注意事项主要有:断点设置的个数不要太多,否则会影响调试速度;若仿真源代码为汇编程序,则第一条语句必须是长跳转语句,不能使用其他语句;仿真中,不能使用与P3.0和P3.1引脚相关的中断和功能。

结语

结合IAP15F2K61S2单片机与监控程序STC Monoitor-51、Keil C51集成开发软件,提供了一种成本低、功能强的在线硬件仿真调试技术,降低了使用单片机开发工具的门槛,特别适用于单片机初学者以及学校的教学活动,也为选用51内核单片机进行应用开发带来了极大便利,只需下载监控代码就可以进行在线仿真调试。

关键词: IAP15F2K61S2 STC Monitor-51 在线仿真 监控程序

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版
李白长什么样 总胆固醇什么意思 莲蓬吃了有什么好处 胰岛是什么器官 荨麻疹是什么样子的
鬼剃头是因为什么原因引起的 牛腩炖什么好吃 孩子打嗝是什么原因 如愿什么意思 清淡饮食吃什么
吃辣拉肚子是什么原因 舌头白腻厚苔是什么原因 置换是什么意思 孕妇喝什么水好 攻读学位填什么
过氧化氢是什么 流产可以吃什么水果 6月16日是什么日子 于是什么意思 苦瓜为什么是苦的
lp是什么的简称hcv8jop6ns4r.cn 会考是什么意思inbungee.com 滴虫性阴道炎用什么药好hcv8jop3ns7r.cn 阳痿有什么症状zhongyiyatai.com 肝是起什么作用的hcv8jop9ns8r.cn
相亲为什么不能拖太久hcv9jop0ns4r.cn 李五行属性是什么hcv9jop5ns3r.cn 左旋肉碱是什么东西shenchushe.com 腹部胀疼是什么原因hcv8jop3ns0r.cn 暂缓参军是什么意思hcv9jop8ns1r.cn
出汗太多吃什么药好hcv9jop0ns3r.cn 痰多咳嗽是什么原因hcv9jop4ns4r.cn 慢性肠炎吃什么药调理hcv8jop6ns0r.cn 风心病是什么病hcv8jop8ns7r.cn 软下疳是什么症状hcv9jop3ns1r.cn
低血压低是什么原因dajiketang.com 端庄是什么意思hcv7jop9ns2r.cn 真菌涂片检查是查什么hcv8jop1ns7r.cn 载脂蛋白b高是什么原因hcv8jop7ns6r.cn 固精是什么意思hcv7jop9ns7r.cn
百度