第七章开发环境.docx
- 文档编号:26845645
- 上传时间:2023-06-23
- 格式:DOCX
- 页数:24
- 大小:168.64KB
第七章开发环境.docx
《第七章开发环境.docx》由会员分享,可在线阅读,更多相关《第七章开发环境.docx(24页珍藏版)》请在冰豆网上搜索。
第七章开发环境
第七章开发环境
第一节 开发工具
§7.1.0集成开发环境uVision2IDE
1.KEILC51编译器
KEILC51是由德国KEIL软件公司开发的高效、灵活的51系列单片机的开发平台。
uVision2是KEILC51forWindows的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。
开发人员可用IDE编辑C或汇编源文件。
然后分别由C51及A51编译器编译生成目标文件(.OBJ)。
目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。
ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51使用,进行源代码级调试,也可由仿真器使用,直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。
●uVision2IDE
uVision2集成开发环境集成了一个项目管理器,一个功能丰富、有错误提示的编辑器,以及设置选项、生成工具、在线帮助。
●C51编译器和A51汇编器
源代码由uVision2创建,并被C51编译或A51汇编。
编译器和汇编器从源代码生成可重定位的目标代码
●LIB51库管理器
LIB51库管理器允许从编译器或汇编器生成的目标文件创建目标库。
库是一种被特别组织并在以后可以被连接重用的对象模块。
当连接器处理一个库时仅仅那些被使用的目标模块才被真正使用
●BL51连接器/定位器
BL51连接器/定位器利用从库中提取的目标模块和由编译器或汇编器生成的目标模块创建一个绝对地址的目标模块。
一个绝对地址目标模块或文件包含不可重定位的代码和数据。
所有的代码和数据被安置在固定的存储器单元中。
此绝对地址目标文件可以用来:
a.写入EPROM或其他存储器件
b.由uVision2调试器使用来模拟和调试
c.由仿真器来测试程序
●uVision2调试器
uVision2源代码级调试器是一个理想、快速、可靠的程序调试器。
此调试器包含一个高速模拟器,能够让你模拟整个8051系统,包括片上外围器件和外部硬件。
当从器件库中选择器件时,这个器件的特性将自动配置。
●Monitor-51
uVision2调试器支持用Monitor-51进行目标板调试。
此监控程序驻留在目标板的存储器里,它利用串口和uVision2调试器进行通信。
利用Monitor-51,uVision2调试器可以对目标硬件实行源码级的调试
●RTX51实时操作系统
RTX51实时操作系统时一个针对8051系列的多任务内核。
RTX51实时内核从本质上简化了对实时事件反应速度要求高的复杂应用系统的设计、编程和调试。
RTX51实时内核完全集成到C51编译器中的,从而方便使用。
任务描述表和操作系统的连接由BL51连接器/定位器自动控制
2.软件开发流程
①创建一个项目,从器件库中选择目标器件,配置工具设置
②用C语言或汇编语言编写源程序
③用项目管理器生成应用
④修改源程序中的错误
⑤测试、连接、应用
3.安装软件
①KeiluVision2(可在网上下载)
②cygnal_uv2_v133(可在下载)
§7.1.1用户嵌入程序下载工具(Downhex.exe)
1.Hex文件
Hex文件是记录文本行的ASCII文本文件,它全部由可打印的ASCII字符组成(可以用记事本打开)。
在Hex文件中,每一行是一条记录,由十六进制数组成的机器码或者静态数据组成。
Hex文件常用来保存单片机或其他处理器的目标程序代码,它保存物理程序存储区中的目标代码映象。
2.下载程序Downhex.exe
此下载工具可以通过计算机的COM1口和嵌入板的UART0口,把用户嵌入程序通过uVision2编译器生成的Hex目标代码固化到用户Flash区中,实现用户嵌入程序的真正嵌入。
§7.1.2串口下载程序使用说明
1.下载程序简介
此下载程序可以通过计算机的COM1口和单片机的UART1口,把由编译器生成的Hex文件固化到用户Flash中。
2.生成HEX文件的过程
KeiluVision2编译器的设置:
a、见图1,点击optionsfortarget进入图2所示界面
b、在图2界面中,修改BL51Locate选项卡中的coderange,修改为0XE000-0XF7FF(注意:
不论用什么编译器,生成的代码段都要在这个范围内,否则程序无效)
c、在图3界面中,选择生成HEX文件,在该项目文件夹下生成的*.hex文件就是要下载的文件
3.下载线连接
下载线一边连接PC机的COM1口,一边连接嵌入板的UART0口
4.操作说明
a、双击Downhex.exe,开始运行程序
b、出现“Enterthedownload_filename:
”
c、输入文件名后按ENTER键。
例:
d:
\user\example.hex
(注意:
由于DOS系统中文件名的长度不能超过8个字符,不包括文件名后缀,所以生成的Hex文件名最多为8个字符。
如D:
\********\********.hex)
d、出现“Pleaseenterthenumberofpieces:
”,
e、输入要固化的设备数,然后按ENTER键。
例:
20
f、Nowyouareloadingd:
\user\example.hexto20device
g、Downloading,pleasewait……..//正在下载,请等待
h、Comparing,pleasewait……….//正在比较,请等待
i、Writingflash,pleasewait……//正在固化,请等待
j、Downloadsuccess!
//下载成功
k、Whenyougetreadyforthenextdevice,pleaseenteranykeytogoon
//当准备好下一台设备的下载准备工作后,就按任意键进行下载
l、Nowyouareloading%sto%ddevice\n,download,pieces//正在下载HEX文件到第N台设备
重复上面的f到j步,直到全部设备下载完毕,显示Complete!
5.出错提示的说明
Can’topendownload_file.
Pleaseenterdownloadfilenameagain:
//出现在输入文件名(d:
\user\example.hex:
)后,表示要下载的Hex文件打不开,需要重新输入文件名
Yourcodesareoutofrange!
Pleaserelocatecode//编译器生成的代码不在0XE000-0XF7FF之间,需要重新生成Hex文件
Downloaderror!
Doyouwanttorestartprogram(Y)ortryagain(N)?
//下载时(downloading,pleasewait……..)出现错误,需要选择是重新启动程序(Y)还是继续下载过程(N)
Compareerror!
Doyouwanttorestartprogram(Y)ortryagain(N)?
//比较时(comparing,pleasewait……..)出现错误,需要选择是重新启动程序(Y)还是继续下载过程(N)
Writeflasherror!
Doyouwanttorestartprogram(Y)ortryagain(N)?
//固化时(writingflash,pleasewait……..)出现错误,需要选择是重新启动程序(Y)还是继续下载过程(N)
Sendovertime!
Communicationerror!
Doyouwanttorestartprogram(Y)ortryagain(N)?
//通信线路故障,需要选择重新启动程序(Y)还是继续下载(N)
Receiveovertime!
Communicationerror!
Doyouwanttorestartprogram(Y)ortryagain(N)?
//通信线路故障,需要选择重新启动程序(Y)还是继续下载(N)
第二节嵌入式PLC专用芯片组
EASYCORE1.00是一个加载了EASYV1.00嵌入式PLC软件平台的核心芯片组,用于设计PLC,专用控制器(客制式PLC)及其它自动化装置的PLC功能嵌入。
§7.2.0原理框图
、供电:
+5V200mA,RAM掉电保护5年。
、CPU:
C8051F040。
、嵌入扩展能力
●32I/O:
可复用成SPI、I2C接口及外中断、外计数、AD等。
●4AD:
12位精度,100KPS。
●2DA:
12位精度,100KPS。
、通信接口
●CANBUS:
软件内核管理,使用工具软件CANSet构建CANBUS总线
网络。
●UART0:
软件内核管理,用于梯形图编程、监控,支持人机界面
及用户驱动程序下载。
●UART1:
软件内核管理,用于下载CANBUS网络参数、构建RS485
网络及支持第三方设备互连。
§7.2.1外观尺寸及引脚分布
1、外形尺寸
、引脚排布
2、引脚分布
引脚PA_1------PA_26定义表:
序号
1
2
3
4
5
6
7
8
9
10
名称
+5V
+5V
GND
GND
PRO
RUN/SET
P4.3
P4.2
P4.1
P4.0
序号
11
12
13
14
15
16
17
18
19
20
名称
DAC0
DAC1
CANRX
CANTX
AD0
AD1
AD2
AD3
P1.7
P1.6
序号
21
22
23
24
25
26
***
***
***
***
名称
P1.5
P1.4
P1.3
P1.2
P1.1
P1.0
***
***
***
***
引脚PB_1------PB_26定义表:
序号
1
2
3
4
5
6
7
8
9
10
名称
AGND
AGND
P0.0
P0.1
P0.2
P0.3
P0.4
P0.5
P0.6
P0.7
序号
11
12
13
14
15
16
17
18
19
20
名称
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7
P2.0
P2.1
序号
21
22
23
24
25
26
***
***
***
***
名称
P2.2
P2.3
P2.4
P2.5
P2.6
P2.7
***
***
***
***
注:
P0.0,P0.1固定用作UART0;P0.2,P0.3固定用作UART1。
第三节EASYCORE函数库
EASYCORE函数库"EASYCORE.LIB",函数库中包含128个系统函数,可供用户使用
§7.3.0库文件源代码
一.重定向系统函数
1>.定点数运算子程序
W_BCDEQUUSER_FUN0;双字节HEX转换成BCD码
DW_BCDEQUUSER_FUN1;双字HEX转换成BCD码
W_BINEQUUSER_FUN2;双字节BCD转换成二进制数
DW_BINEQUUSER_FUN3;双字BCD转换成二进制数
D2ADDEQUUSER_FUN4;双字节加法
D4ADDEQUUSER_FUN5;双字加法
D2SUBEQUUSER_FUN6;双字节减法
D4SUBEQUUSER_FUN7;双字减法法
D2MULEQUUSER_FUN8;双字节乘法
D4MULEQUUSER_FUN9;双字乘法
D2DIVEQUUSER_FUN10;双字节除法
D4DIVEQUUSER_FUN11;双字除法
2>.浮点数运算子程序
FINT2_LEQUUSER_FUN12;浮点数转2字节整数
FINT4_LEQUUSER_FUN13;浮点数转4字节整数
FSDT2_LEQUUSER_FUN14;2字节整数转浮点数
FSDT4_LEQUUSER_FUN15;4字节整数转浮点数
FABP_LEQUUSER_FUN16;浮点数加/减法
FMUL_LEQUUSER_FUN17;浮点数乘法
FDIV_LEQUUSER_FUN18;浮点数除法
3>.转换子程序
HEX_ASCEQUUSER_FUN19;二进制数转ASC码
ASC_HEXEQUUSER_FUN20;ASC码转二进制数
二.系统函数入口矢量表
USER_FINEQU07E00H;系统函数入口矢量表的起始地址
1>.定点数运算子程序
USER_FUN0EQUUSER_FIN+4*0;W_BCD;双字节HEX转换成BCD码
USER_FUN1EQUUSER_FIN+4*1;DW_BCD;双字HEX转换成BCD码
USER_FUN2EQUUSER_FIN+4*2;W_BIN;双字节BCD转换成二进制数
USER_FUN3EQUUSER_FIN+4*3;DW_BIN;双字BCD转换成二进制数
USER_FUN4EQUUSER_FIN+4*4;D2ADD;双字节加法
USER_FUN5EQUUSER_FIN+4*5;D4ADD;双字加法
USER_FUN6EQUUSER_FIN+4*6;D2SUB;双字节减法
USER_FUN7EQUUSER_FIN+4*7;D4SUB;双字减法法
USER_FUN8EQUUSER_FIN+4*8;D2MUL;双字节乘法
USER_FUN9EQUUSER_FIN+4*9;D4MUL;双字乘法
USER_FUN10EQUUSER_FIN+4*10;D2DIV;双字节除法
USER_FUN11EQUUSER_FIN+4*11;D4DIV;双字除法
2>.浮点数运算子程序
USER_FUN12EQUUSER_FIN+4*12;FINT2_L;浮点数转2字节整数
USER_FUN13EQUUSER_FIN+4*13;FINT4_L;浮点数转4字节整数
USER_FUN14EQUUSER_FIN+4*14;FSDT2_L;2字节整数转浮点数
USER_FUN15EQUUSER_FIN+4*15;FSDT4_L;4字节整数转浮点数
USER_FUN16EQUUSER_FIN+4*16;FABP_L;浮点数加/减法
USER_FUN17EQUUSER_FIN+4*17;FMUL_L;浮点数乘法
USER_FUN18EQUUSER_FIN+4*18;FDIV_L;浮点数除法
3>.转换子程序
USER_FUN19EQUUSER_FIN+4*19;HEX_ASC;二进制数转ASC码
USER_FUN20EQUUSER_FIN+4*20;ASC_HEX;ASC码转二进制数
EASYV1.00版提供了21个系统函数给用户调用,以下是待扩展的系统函数入口矢量
USER_FUN21EQUUSER_FIN+4*21
USER_FUN22EQUUSER_FIN+4*22
︰
︰
︰
USER_FUN125EQUUSER_FIN+4*125
USER_FUN126EQUUSER_FIN+4*126
USER_FUN127EQUUSER_FIN+4*127
§7.3.1系统函数使用说明
代号解释
FS0_FLAG=结果0标志
FS1_FLAG=进位标志
FS2_FLAG=借位标志
NAME:
函数名
FUN:
函数功能
IN:
变量入口
OUT:
变量出口
USE:
占用资源
定点数运算子程序
1.双字节HEX转换成BCD码
NAME:
W_BCD
FUN:
BIN-->BCD
IN:
@R0
OUT:
@W_DATA
USE:
R0到R7,A,B,PSW,FS0_FLAG/FS1_FLAG/FS2_FLAG,W_DATA
2.双字HEX转换成BCD码
NAME:
DW_BCD
FUN:
BIN-->BCD
IN:
@R0
OUT:
@W_DATA
USE:
R0到R7,A,B,PSW,FS0_FLAG/FS1_FLAG/FS2_FLAG,W_R0到W_R7,W_DATA
3.双字节BCD码转换成HEX
NAME:
W_BIN
FUN:
BCD-->BIN
IN:
@R0
OUT:
@W_DATA
USE:
R0到R7,A,B,PSW,FS0_FLAG/FS1_FLAG/FS2_FLAG,W_R0到W_R7,W_DATA
4.双字BCD-->HEX
NAME:
DW_BIN
FUN:
BCD-->BIN
IN:
@R0
OUT:
@W_DATA
USE:
R0到R7,A,B,PSW,FS0_FLAG/FS1_FLAG/FS2_FLAG,W_R0到W_R7,W_DATA
5.双字节加法
NAME:
D2ADD
FUN:
@R0+@R1--@W_DATA
IN:
@R0,@R1
OUT:
@W_DATA
USE:
R0到R7,A,B,PSW,FS0_FLAG/FS1_FLAG/FS2_FLAG,W_R0到W_R7,W_DATA
6.4字节加法
NAME:
D4ADD
FUN:
@R0+@R1--@W_DATA
IN:
@R0,@R1
OUT:
@W_DATA
USE:
R0到R7,A,B,PSW,FS0_FLAG/FS1_FLAG/FS2_FLAG,W_R0到W_R7,W_DATA
7.双字节减法
NAME:
D2SUB
FUN:
@R0+@R1--@W_DATA
IN:
@R0,@R1
OUT:
@W_DATA
USE:
R0到R7,A,B,PSW,FS0_FLAG/FS1_FLAG/FS2_FLAG,W_R0到W_R7,W_DATA
8.4字节减法
NAME:
D4SUB
FUN:
@R0+@R1--@W_DATA
IN:
@R0,@R1
OUT:
@W_DATA
USE:
R0到R7,A,B,PSW,FS0_FLAG/FS1_FLAG/FS2_FLAG,W_R0到W_R7,W_DATA
9.双字节乘法
NAME:
D2MUL
FUN:
@R0*@R1--@W_DATA
IN:
@R0,@R1
OUT:
@W_DATA
USE:
R0到R7,A,B,PSW,FS0_FLAG/FS1_FLAG/FS2_FLAG,W_R0到W_R7,W_DATA
10.4字节乘法
NAME:
D4MUL
FUN:
@R0*@R1--@W_DATA
IN:
@R0,@R1
OUT:
@W_DATA
USE:
R0到R7,A,B,PSW,FS0_FLAG/FS1_FLAG/FS2_FLAG,W_R0到W_R7,W_DATA
11.双字节有符号数除法
NAME:
D2DIV
FUN:
@R0/@R1--@W_DATA
IN:
@R0,@R1
OUT:
@W_DATA
USE:
R0到R7,A,B,PSW,FS0_FLAG/FS1_FLAG/FS2_FLAG,W_R0到W_R7,W_DATA
12.四字节有符号数除法
NAME:
D4DIV
FUN:
@R0*@R1--@W_DATA
IN:
@R0,@R1
OUT:
@W_DATA
USE:
R0到R7,A,B,PSW,FS0_FLAG/FS1_FLAG/FS2_FLAG,W_R0到W_R7,W_DATA
浮点数运算子程序
13.浮点数转2字节整数
NAME:
FINT2_L
FUN:
@R0-->@W_DATA
IN:
@R0
OUT:
@W_DATA
USE:
R0到R7,A,B,PSW,FS0_FLAG/FS1_FLAG/FS2_FLAG,W_R0到W_R7,W_DATA
14.浮点数转4字节整数
NAME:
FINT4_L
FUN:
@R0-->@W_DATA
IN:
@R0
OUT:
@W_DATA
USE:
R0到R7,A,B,PSW,FS0_FLAG/FS1_FLAG/FS2_FLAG,W_R0到W_R7,W_DATA
15.2字节整数转浮点数
NAME:
FSDT2_L
FUN:
@R0-->@W_DATA
IN:
@R0
OUT:
@W_DATA
USE:
R0到R7,A,B,PSW,FS0_FLAG/FS1_FLAG/FS2_FLAG,W_R0到W_R7,W_DATA
16.4字节整数转浮点数
NAME:
FSDT4_L
FUN:
@R0-->@W_DATA
IN:
@R0
OUT:
@W_DATA
USE:
R0到R7,A,B,PSW,FS0_FLAG/FS1_FLAG/FS2_FLAG,W_R0到W_R7,W_DATA
17.浮点数加/减法
NAME:
FABP_L
FUN:
@R0+@R1-->@W_DATA
IN:
@R0,@R1
OUT:
@W_DATA
USE:
R0到R7,A,B,PSW,FS0_FLAG/FS1_FLAG/FS2_FLAG,W_R0到W_R7,W_DATA
FS2_FLAG=0加法FS2_FLAG=1减法
18.浮点数乘法
NAME:
FMUL_L
FUN:
@R0*@R1-->@W_DATA
IN:
@R0,@R1
OUT:
@W_DATA
USE:
R0到R7,A,B,PSW,FS0_FLAG/FS1_FLAG/FS2_FLAG,W_R0到W_R7,W_DATA
19.浮点数除法
NAME:
FDIV_L
FUN:
@R0+@R1-->@W_DATA
IN:
@R0,@R1
OUT:
@W_DATA
USE:
R0到R7,A,B,PSW,FS0_FLAG/FS1_FLAG/FS2_FLAG,W_R0到W_R7,W_DATA
转换子程序
20.二进制数转ASC码
NAME:
HEX_ASC
FUN:
A-->R2,R3
IN:
A
OUT:
R2,R3
USE:
R0到
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第七 开发 环境