S5263K仿真器的主要性能:
· 采用双CPU单线通讯结构,仅占用用户一个I/O口,而且此I/O口可以通过跳线选择(P0.7、P1.7、P2.7、P3.7任选其一)。
· 可以仿真T2定时器、UART口。
·
仅占用2级堆栈。
·
可以脱机运行
·
可仿真双DPTR指针。
·
片上带768字节XDATA。
·
可以禁止ALE输出 。
·
监控程序与用户程序空间分离,因此绝对不会出现因监控程序被误擦除导致
无法联机的现象。
·
直接支持 KEIL C51 的集成开发仿真环境。
·
可用单步、断点、运行到光标处、全速运行等方法调试程序;可参考变量、RAM变量。
·
支持汇编、C语言混合调试。
·
片内 63K(0000H-0FAFFH)程序空间、64KXDATA地址空间。
·
自动适应各种通讯速率。
·
完全仿真 P0、P2 口。
·
仿真频率 0-40 MHz,可选择目标板晶振或仿真器自带晶振(22.1184 MHz)。
·
可以仿真标准的51内核的单片机。
·
大小仅相当于DIP40封装的集成电路尺寸,可以直接插在目标板上。
·
可以由计算机USB口供电,也可以由目标板直接供电。
跳线设置说明
左面有白色插座的一端为仿真器的1脚和40脚,下面的五芯插座为仿真状态时与计算机串口连接使用。上面的三芯插座是通过仿真器内部的MAX232与仿真芯片的RXD和TXD相连,可以直接和计算机串口相连,用于串口程序的调试。1脚(从上往下数,后面数法相同)接串口的2脚(TXD),2脚接串口的3脚(RXD),3脚接串口的5脚(GND)。当然也可以不使用此插座,而使用用户板上的MAX232直接和仿真器的P3.0、P3.1连接来调试串口。
右面 九芯插针 1、2相连 仿真状态
2、3相连 脱机运行状态
4、5相连
仿真芯片P0.7用于和监控CPU通讯
5、6相连
仿真芯片P1.7用于和监控CPU通讯
7、8相连
仿真芯片P2.7用于和监控CPU通讯
8、9相连
仿真芯片P3.7用于和监控CPU通讯
三芯插针 1、2相连 仿真器内部晶振(22.1184M)
2、3相连
用户板晶振
使用说明
S5263K仿真器,在一个近乎标准DIP40封装面积内集成了一个IAP(在应用中编程)系统一个在线实时仿真器系统,同你的标准51 系统完全一致,你只需要把S5263K 仿真器插入到你的系统中,不需要做任何改动,你的系统就会具备各种崭新的功能其中软件开发平台就是使用Keil C51 集成软件, Keil C51可以编写C 语言源程序汇编语言源程序或混合语言源程序可以编译C 源文件可以编译汇编源文件或编译混合语言源程序;可适用众多厂家的以80C51
为核的单片机;可以装入*.c;*.h;*.a*;*.inc;*.txt 等文件,见图1 可以连接多个目标文件生成烧
录HEX 文件并有功能齐全的软件模拟调试及硬件调试环境,所以Keil C51 是一个功能强大的开发平台, Keil C51 并在不断改进升级,用户可以在互联网上免费下载限2k
的Keil C51 集成Demo 软件,全开放的正版软件可上网购买或从第三方获得 要获得Keil C51 技术支援可上互联网上联系http://www.keil.com
软件开发过程
1 建立一个工程项目选择芯片确定选项
2 建立汇编源文件或C源文件
3 用项目管理器生成各种应用文件
4 检查并修改源文件中的错误
5 编译连接通过后进行硬件仿真
6 脱机运行
7 烧写程序
以下假定你在E:\TEST 目录下学习
1 . 建立一个工程项目选择芯片确定选项
- ①Project →②New Project③输入工程名test,
④保存工程文件,见图2
图2 创建工程名
鼠标点击保存按钮,弹出选①CPU 厂家→②选CPU 型号选择对话框, ③选好后点击确定按钮确定,见图3
这时如果出现下面的对话框请按否。
接着选晶振频率及生成HEX 文件等操作:
-① Project →②Options for Target ‘Target 1’…③在Target 选项中, ④可以更改CPU 晶振频率(该频率设置仅在软件模拟运行时用于计算程序运行时间,硬件仿真时可以不设置),⑤在Output 选项中, ⑥选择生成HEX 格式,其它采用
缺省设置, ⑦选好后确定,见图4
图4 选晶振频率及生成HEX 文件等窗口
2.建立C 源文件或汇编源文件
- ①File→②New, ③弹出源文件编辑窗口, 见图5,进入编辑源文
例1:
在文件窗口中输入汇编源程序如下:
;P1 口测试程序,P1 口LED 灯有规律点亮程序
ORG 0000H
SJMP START
;跳向主程序
ORG 000BH
SJMP INTT0 ;跳向定时器0中断服务子程序
ORG 0030H
;主程序从30H开始
START: MOV
SP,#60H
;设置堆栈
MOV TMOD,#00000001B ;定时器设置
MOV IE,#10000010B
;中断设置
MOV TH0,#0 ;T0时间常数设置
MOV TL0,#0
SETB TR0
;计数器开始记数
MOV A,#0
SS2:
ACALL D1S
ACALL D1S
ACALL D1S
SS8:
DEC A
MOV P1,A
CJNE A,#0H,SS4
SJMP SS6
SS4: JB 20H,$
SETB 20H
SJMP SS8
SS6:
ACALL D1S
ACALL D1S
ACALL D1S
SS5:
INC DPTR
MOV P1,DPL
MOV A,DPL
CJNE A,#0FFH,SS7
SJMP SS2
SS7:
JB 20H,$
SETB 20H
SJMP SS5
D1S:
MOV R7,#188 ;延时子程序
DD2:
MOV R6,#255
DD1:
NOP
DJNZ R6,DD1
DJNZ R7,DD2
RET
NOP
INTT0: CLR
20H
;中断服务子程序
NOP
RETI
END
- ①File→② Save As 将文件以test.asm 保存在E:\test 目录下
生成源文件方法:
①
从键盘上输入源文件;
②可把源文件,包括Microsoft Word 文件中的源文件,复制到Keil C51 文件窗口中,使Word 文档变为TXT 文档,这种方法最好,可方便输入中文注释;③也可装入在其它编辑软件中编辑的源文件如: *.asm/*.a51/*.c... 等当然你也可以直接装入工程调试文件调试运行.
以上方法便于单片机的程序移植和交流!
3.用项目管理器生成(编译)各种应用文件
①点击Target 1 前之+ 号,出现②Source Group1,③点击它并按鼠标右键会弹出下拉菜单见图6
编译文件文件窗口,选择④Add Files to Group ‘ Source Group 1’ ⑤向项目中添加Test.asm 源文件,⑥点击Add加入该文件,⑦在Source Group 1 前会出现一个+号,⑧点击之,弹出test.asm 文件名,双击该文件名,⑨主窗口中会出现该程序
-Project Build target 或点击快捷图标
就会生成一系列的文件如OBJ 文件LST 文件
HEX 文件等。
4.检查并修改源文件中的错误
如果在源文件中存在错误,在Output 窗口中会出现错误提示信息.如图7所示。
图7 Output窗口
括号中的15就是错误的行,双击此提示即可看到该错误的行,如图8中绿色箭头所示。
图8 错误的行
你可以在源程序中观察错误(图中的错误是在语句前多了一个“,”),修改后重新Build,直到编译通过(在Output 窗口中显示 “xyz…” - 0 Error(s), 0 Warning(s). 其中 “xyz…”为文件名 如图9所示)。
图9 编译通过
5 . 编译连接通过后进行硬件仿真
将仿真器插入用户板(注意方向千万不能插错,否则可能会损坏仿真器),连接线DB9插头插入PC机的串口,USB插头插入PC机USB口,五芯插头连接仿真器,设置硬件实时仿真调试选项:Project\ Options for Target ‘Targetl’ \Debug选择硬件仿真,进入硬件实时仿真调试选项窗口,见图10选硬件仿真选项.
图10 硬件实时仿真调试选项窗口
按“Settings”按钮进行通讯设置如图11. 然后按“OK”键,最后按“确定”按钮完成设置.
图11 仿真器与计算机通讯设置选项窗口
将跳线设置在仿真状态(方法见上文),按一次复位键,仿真器上的信号指示灯闪一下。
-
Debug \Debug Start\Stop Debug Session或按快捷键
进入仿真窗口,
见图12
图12
硬件实时仿真调试窗口
Watch#1 窗口中添加变量i 点击源程序中DPL 变量按鼠标右键在下拉菜单中选Add “DPL”
to Watch Window… #1
在Memory#1 窗口中观察程序存贮区0020 中的内容时在窗口上方地址栏中输入C:0020H 即可观察P1 的状态-Peripherals->I/O-Ports->Port1
在程序中某一行设置断点的方法:光标移到该行按鼠标右键在弹出菜单中选
Insert/Remove Breakpoint,然后按鼠标左键(或者在该行的空白处双击鼠标),在该行首出现红色方块标志,说明该行已设有断点(要去掉断点只要重复同样的操作即可)。
可在View菜单中打开各种观察窗口, 可在Debug菜单中选择进行单步(Step)跨步(Step Over)、运行到光标处(Run to Cursor line)、全速运行(Go)等操作。在运行过程中若遇到断点,程序就会停下(如图12中的黄色尖头所示,用户程序停留在此行),这时可观察各个变量的值是否和设想的一样。若不是,说明程序在逻辑上有错误,要修改源程序直到能实现想要的功能。有效的利用断点、单步、跨步等操作能很快的找出程序中的错误。Keil的功能十分强大,这里只是介绍了一些简单的常规操作,更详细的用法可参考相关资料。
6 脱机运行
若程序仿真运行能通过,就可以脱机运行了,程序装载完成后,将跳线设置为脱机运行状态,按一次复位键即进入脱机运行状态,这时仿真器不占用用户任何资源,其工作状态和程序烧写在单片机里的工作状态完全一样。(注意:在程序装载完成跳线未设置为脱机运行状态之前,请勿要按复位键,否则会擦除掉刚刚装载的程序。)
7 烧写程序
如果用户系统用S5263K 脱机运行调试通过,可把用户程序通过Keil编译生成的test.hex文件,用编程器写到8X5X 单片机中,用8X5X 单片机取代S5263K仿真器工作,你的科研开发工作初步完成,以后任务是到工业现场进行考核、试机、编写总结报告。
例2:这是一个单片机与计算机通过串口进行通讯的C51源程序
//接收SSCOM3.2发过来的数据,再返回给SSCOM3.2
//89c51连接MAX232
//89C51 TXD-- MAX232 RX2
//89C51 RXD-- MAX232 TX1
//MAX232接计算机
//MAX232 IN1-- PC 3脚
//MAX232 OUT2--PC 2脚
//计算机用SSCOM3.2接收
#include<reg51.h>
#define uchar unsigned char
void send(uchar);
//发送子程序
uchar rece(void);
//接收子程序
void main(void)
{
TMOD=0x20; //定时器1,方式2
TL1=0xE8;
TH1=0xE8; //22.1184MHZ晶振,波特率为2400
PCON=0x00;
SCON=0x50; //方式3
ET1 = 1;
TR1=1;
//启动定时
while(1)
{
uchar a;
a=rece(); //接收
send(a); //发送
}
}
void send(uchar a)
{
SBUF=a;
while(TI!=1);TI=0;
}
uchar rece(void)
{
uchar a;
while(RI!=1);
RI=0;
a=SBUF;
return(a);
}
按照前面的方法一步一步完成建立工程项目、选择芯片等操作(注意源程序保存时要以.c为扩展名)。将仿真器上的白色三芯插座和计算机的串口(九芯)相连(方法见文章开头跳线设置说明部分)。程序编译后装入仿真器。打开SSCOM3.2,选择在“HEX发送”、“HEX显示”前打“√”,选择所连接的串口号(一般上面的为COM1,下面的为COM2),波特率选择2400,其它选项采用默认设置。在字符输入框输入两位十六进制数,打开串口。点一次发送键,计算机就向仿真器串口发送一次数据,仿真器发向计算机串口的数据会在上面的窗口显示出来。现在仿真器可以以单步、全速等方式运行,配合SSCOM3.2的操作完成串口通讯部分的调试如图13所示。
图13 串口通讯时SSCOM3.2界面
上面的程序需要懂C语言才能看的懂,对于不懂C语言的的朋友可以自己编写一个汇编语言的程序进行通讯实验,方法与本程序相同。
仿真器使用问答
问:代码的运行有几种方式?
答:代码的运行有单步(Step)、跨步(Step over)、全速运行(Run),断点运行(Run Stop
at Breakpoint)、运行到光标处(Run to Cursor line)等几种方式。
问:如何修改变量?
答:MCU 内部和外部的所有资源(MCU 内部寄存器,RAM,外部RAM,内部程序代码和数据)中的变量都可以修改.例如,你想修改A,则可以在命令窗口写A=0XAA 或A=0AAh,则A的数据就可以得到修改.关于详细的命令修改方法见Keil 的使用说明.有一点需要指出,所有变量数据的修改的结果都将反映在S5263K 仿真器中,而不是Keil 的仿真内存中.例如,你写入P0=0X00,则S5263K 仿真器的P0 口将全部变成00h(低电平)。
问:我可以更换S5263K 仿真器的晶振吗?
答:完全可以,你可以使用板上的内部外部晶振转换跳线选择目标晶振,但建议在允许的情况下尽量选择高一点的晶振频率,这样在程序下载和调试时速度比较快。内部使用的是自动波特率,并不完全依赖晶振频率.但晶振频率选择的高,你的波特率选择就会有较大的范围;如果选择的晶振频率低,你只能选择较低的波特率.选22.1184MHz
的晶振是个好的方法,它几乎可以适应所有的通讯波特率。
问: S5263K 仿真器的寿命有多长?
答: S5263K仿真器由于使用Flash 作为记录程序的载体,因此它的理论寿命大约可以循环使用10 万次(我想也足够了) 但是由于它的硬件比较简单,所以实际在使用中的寿命要大于一般的仿真器,因为它们太复杂了,很容易出现问题。
问:我为什么不能同Keil 通讯成功?
答:在使用中,有很多用户开始时不能同Keil 通讯成功,如果发生这种现象,请按照下面的方法检查:
(1) 检查晶振选择跳线的位置,是否处于外部选择,且外部有可以使用的晶振,如果外部使用的晶振频率过低,检查Keil 中有关波特率的设置不要太高,尽量开始选择较低的波特率,如9600,4800
等。
(2) 检查运行方式选择跳线的位置,是否处于仿真状态(1、2相连)。
(3) 检查仿真CPU与监控CPU的的通讯端口(P0.7、P1.7、P2.7、P3.7)是否被外部电路拉低。若是,请选择其它端口。
(4) 检查串口电缆的各个部位接触是否良好,或者直接在S5263K仿真器的PCB 底部测量同电缆的PC端DB9 针插座之间的连接情况,.正常情况下应该有3 根线互相连接,且之间不应该有短路现象。
(5) 正确选择你的串行通信口
(6) 多按几次复位键
如果你检查完以上的所有情况,问题仍不能解决,请跟我们联系。
问: S5263K 仿真器适合于何种语言的调试?
答:S5263K 仿真器在Keil 的仿真环境中,即可调试纯汇编的用户程序,也可以调试C 语言的源程序(如果程序是用C 语言编写,也可以调试C 语言对应的汇编行).
问: S5263K 仿真器在进行串口调试时有什么限制吗?
答:无任何限制。因为本仿真器采用双CPU结构,不占用串口和T2,所以在调试串口程序时,可以使用调试其它程序的单步(Step)、跨步(Step over)、全速运行(Run),断点运行(Run Stop
at Breakpoint)、运行到光标处(Run to Cursor line)等所有工作方式。
S5263K仿真器
缺货停止供应! (技术咨询
13952861407 )
邮局汇款地址:邮编226200 江苏省启东市江海中路511号水晶苑 A1 谢刚 收
电话/传真:0513-83342087 小灵通:0513-83082087 联系人:谢刚
电子信箱:
电子制作实验室网站主页 http:www.xie-gang.com