第七章开发环境.docx

上传人:小飞机 文档编号:1925161 上传时间:2022-12-26 格式:DOCX 页数:14 大小:652.22KB
返回 下载 相关 举报
第七章开发环境.docx_第1页
第1页 / 共14页
第七章开发环境.docx_第2页
第2页 / 共14页
第七章开发环境.docx_第3页
第3页 / 共14页
第七章开发环境.docx_第4页
第4页 / 共14页
第七章开发环境.docx_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《第七章开发环境.docx》由会员分享,可在线阅读,更多相关《第七章开发环境.docx(14页珍藏版)》请在三一办公上搜索。

1、第七章开发环境第一节开发工具7.1.0集成开发环境uVision2 IDE1.KEIL C51编译器KEIL C51是由德国KEIL软件公司开发的高效、灵活的51系列单片机的开发平台。uVision2是KEIL C51 for Windows的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51使用,进行

2、源代码级调试,也可由仿真器使用,直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。l uVision2 IDEuVision2 集成开发环境集成了一个项目管理器,一个功能丰富、有错误提示的编辑器,以及设置选项、生成工具、在线帮助。l C51编译器和A51汇编器源代码由uVision2创建,并被C51编译或A51汇编。编译器和汇编器从源代码生成可重定位的目标代码l LIB51库管理器LIB51库管理器允许从编译器或汇编器生成的目标文件创建目标库。库是一种被特别组织并在以后可以被连接重用的对象模块。当连接器处理一个库时仅仅那些被使用的目标模块才被真正使用l BL51 连接器/定位器BL

3、51连接器/定位器利用从库中提取的目标模块和由编译器或汇编器生成的目标模块创建一个绝对地址的目标模块。一个绝对地址目标模块或文件包含不可重定位的代码和数据。所有的代码和数据被安置在固定的存储器单元中。此绝对地址目标文件可以用来:a.写入EPROM或其他存储器件b.由uVision2调试器使用来模拟和调试c.由仿真器来测试程序l uVision2调试器uVision2源代码级调试器是一个理想、快速、可靠的程序调试器。此调试器包含一个高速模拟器,能够让你模拟整个8051系统,包括片上外围器件和外部硬件。当从器件库中选择器件时,这个器件的特性将自动配置。l Monitor51uVision2调试器支

4、持用Monitor51进行目标板调试。此监控程序驻留在目标板的存储器里,它利用串口和uVision2调试器进行通信。利用Monitor51,uVision2调试器可以对目标硬件实行源码级的调试l RTX51实时操作系统 RTX51实时操作系统时一个针对8051系列的多任务内核。RTX51实时内核从本质上简化了对实时事件反应速度要求高的复杂应用系统的设计、编程和调试。RTX51实时内核完全集成到C51编译器中的,从而方便使用。任务描述表和操作系统的连接由BL51连接器/定位器自动控制 2 软件开发流程 创建一个项目,从器件库中选择目标器件,配置工具设置 用C语言或汇编语言编写源程序 用项目管理器

5、生成应用 修改源程序中的错误 测试、连接、应用3.安装软件Keil uVision2(可在网上下载)cygnal_uv2_v133(可在下载)7.1.1用户嵌入程序下载工具(Downhex.exe)1 Hex文件Hex文件是记录文本行的ASCII文本文件,它全部由可打印的ASCII字符组成(可以用记事本打开)。在 Hex文件中,每一行是一条记录,由十六进制数组成的机器码或者静态数据组成。 Hex 文件常用来保存单片机或其他处理器的目标程序代码,它保存物理程序存储区中的目标代码映象。2下载程序Downhex.exe此下载工具可以通过计算机的COM1口和嵌入板的UART0口,把用户嵌入程序通过uV

6、ision2编译器生成的Hex目标代码固化到用户Flash区中,实现用户嵌入程序的真正嵌入。7.1.2串口下载程序使用说明1.下载程序简介此下载程序可以通过计算机的COM1口和单片机的UART1口,把由编译器生成的Hex文件固化到用户Flash中。2. 生成HEX文件的过程Keil uVision2编译器的设置:a、 见图1,点击options for target进入图2所示界面b、 在图2界面中,修改BL51 Locate 选项卡中的code range,修改为0XE000-0XF7FF(注意:不论用什么编译器,生成的代码段都要在这个范围内,否则程序无效)c、 在图3界面中,选择生成HEX

7、 文件,在该项目文件夹下生成的*.hex文件就是要下载的文件3.下载线连接 下载线一边连接PC机的COM1口,一边连接嵌入板的UART0口PC机 嵌入板 RS-232COM1UART04.操作说明a、双击Downhex.exe,开始运行程序b、出现“Enter the download_file name:”c、输入文件名后按ENTER键。例:d:userexample.hex(注意:由于DOS系统中文件名的长度不能超过8个字符,不包括文件名后缀,所以生成的Hex文件名最多为8个字符。如D:*.hex)d、出现“Please enter the number of pieces:”,e、输入要

8、固化的设备数,然后按ENTER键。例:20f、 Now you are loading d:userexample.hex to 20 deviceg、 Downloading,please wait./正在下载,请等待h、 Comparing,please wait./正在比较,请等待i、 Writing flash,please wait /正在固化,请等待 j、 Download success! /下载成功k、 When you get ready for the next device,please enter any key to go on/当准备好下一台设备的下载准备工作后,就

9、按任意键进行下载l、 Now you are loading %s to %d devicen,download,pieces/ 正在下载HEX文件到第N台设备重复上面的f到j步,直到全部设备下载完毕,显示Complete!5. 出错提示的说明Cant open download_file.Please enter downloadfile name again: /出现在输入文件名(d:userexample.hex:)后,表示要下载的Hex文件打不开,需要重新输入文件名 Your codes are out of range! Please relocate code /编译器生成的代码不

10、在0XE0000XF7FF之间,需要重新生成Hex文件Download error! Do you want to restart program(Y) or try again(N)? /下载时(downloading,please wait.)出现错误,需要选择是重新启动程序(Y)还是继续下载过程(N) Compare error! Do you want to restart program(Y) or try again(N)? /比较时(comparing,please wait.)出现错误,需要选择是重新启动程序(Y)还是继续下载过程(N)Write flash error! Do

11、 you want to restart program(Y) or try again(N)? /固化时(writing flash,please wait.)出现错误,需要选择是重新启动程序(Y)还是继续下载过程(N)Send over time!Communication error! Do you want to restart program(Y) or try again(N)? /通信线路故障,需要选择重新启动程序(Y)还是继续下载(N)Receive over time!Communication error! Do you want to restart program(Y)

12、 or try again(N)? /通信线路故障,需要选择重新启动程序(Y)还是继续下载(N)第二节嵌入式PLC专用芯片组EASY CORE 1.00 是一个加载了EASYV1.00嵌入式PLC软件平台的核心芯片组,用于设计PLC,专用控制器(客制式PLC)及其它自动化装置的PLC功能嵌入。7.2.0 原理框图、供电:+5V 200mA,RAM掉电保护5年。、CPU: C8051F040。、嵌入扩展能力l 32 I/O:可复用成SPI、I2C接口及外中断、外计数、AD等。l 4 AD:12位精度,100 KPS。l 2 DA:12位精度,100 KPS。、通信接口l CANBUS:软件内核管

13、理,使用工具软件CANSet构建CANBUS总线网络。l UART0:软件内核管理,用于梯形图编程、监控,支持人机界面及用户驱动程序下载。l UART1:软件内核管理,用于下载CANBUS网络参数、构建RS485网络及支持第三方设备互连。7.2.1外观尺寸及引脚分布1、外形尺寸、引脚排布2、引脚分布引脚PA_1-PA_26定义表:序号12345678910名称+5V+5VGNDGNDPRORUN/SETP4.3P4.2P4.1P4.0序号11121314151617181920名称DAC0DAC1CANRXCANTXAD0AD1AD2AD3P1.7P1.6序号212223242526*名称P1

14、.5P1.4P1.3P1.2P1.1P1.0*引脚PB_1-PB_26定义表:序号12345678910名称AGNDAGNDP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7序号11121314151617181920名称P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7P2.0P2.1序号212223242526*名称P2.2P2.3P2.4P2.5P2.6P2.7*注:P0.0,P0.1固定用作UART0;P0.2,P0.3固定用作UART1。第三节EASYCORE函数库 EASYCORE 函数库 EASYCORE.LIB,函数库中包含128个系统函数,可供用户

15、使用7.3.0库文件源代码 一.重定向系统函数1定点数运算子程序W_BCDEQUUSER_FUN0;双字节HEX转换成BCD码DW_BCD EQUUSER_FUN1;双字HEX转换成BCD码W_BINEQUUSER_FUN2;双字节BCD转换成二进制数DW_BIN EQUUSER_FUN3;双字BCD转换成二进制数D2ADDEQUUSER_FUN4;双字节加法D4ADDEQUUSER_FUN5;双字加法D2SUBEQUUSER_FUN6;双字节减法D4SUBEQUUSER_FUN7;双字减法法D2MULEQUUSER_FUN8;双字节乘法D4MULEQUUSER_FUN9;双字乘法D2DIVE

16、QUUSER_FUN10 ;双字节除法D4DIVEQUUSER_FUN11 ;双字除法2浮点数运算子程序FINT2_L EQUUSER_FUN12 ;浮点数转2字节整数FINT4_L EQUUSER_FUN13 ;浮点数转4字节整数FSDT2_L EQUUSER_FUN14 ;2字节整数转浮点数FSDT4_L EQUUSER_FUN15 ;4字节整数转浮点数FABP_L EQUUSER_FUN16 ;浮点数加/减法FMUL_L EQUUSER_FUN17 ;浮点数乘法FDIV_L EQUUSER_FUN18 ;浮点数除法3转换子程序HEX_ASC EQUUSER_FUN19 ;二进制数转ASC

17、码ASC_HEX EQUUSER_FUN20 ;ASC码转二进制数二系统函数入口矢量表USER_FIN EQU 07E00H ;系统函数入口矢量表的起始地址1定点数运算子程序USER_FUN0EQU USER_FIN+4*0;W_BCD;双字节HEX转换成BCD码USER_FUN1EQU USER_FIN+4*1;DW_BCD;双字HEX转换成BCD码USER_FUN2EQU USER_FIN+4*2;W_BIN;双字节BCD转换成二进制数USER_FUN3EQU USER_FIN+4*3;DW_BIN;双字BCD转换成二进制数USER_FUN4EQU USER_FIN+4*4;D2ADD;双

18、字节加法USER_FUN5EQU USER_FIN+4*5;D4ADD;双字加法USER_FUN6EQU USER_FIN+4*6;D2SUB;双字节减法USER_FUN7EQU USER_FIN+4*7;D4SUB;双字减法法USER_FUN8EQU USER_FIN+4*8;D2MUL;双字节乘法USER_FUN9EQU USER_FIN+4*9;D4MUL;双字乘法USER_FUN10EQU USER_FIN+4*10 ;D2DIV;双字节除法USER_FUN11EQU USER_FIN+4*11 ;D4DIV;双字除法2浮点数运算子程序USER_FUN12EQU USER_FIN+4*

19、12;FINT2_L;浮点数转2字节整数USER_FUN13EQU USER_FIN+4*13;FINT4_L;浮点数转4字节整数USER_FUN14EQU USER_FIN+4*14;FSDT2_L;2字节整数转浮点数USER_FUN15EQU USER_FIN+4*15;FSDT4_L;4字节整数转浮点数USER_FUN16EQU USER_FIN+4*16;FABP_L;浮点数加/减法USER_FUN17EQU USER_FIN+4*17;FMUL_L;浮点数乘法USER_FUN18EQU USER_FIN+4*18 ;FDIV_L;浮点数除法3转换子程序USER_FUN19EQU US

20、ER_FIN+4*19;HEX_ASC ;二进制数转ASC码USER_FUN20EQU USER_FIN+4*20;ASC_HEX ;ASC码转二进制数EASYV1.00版提供了21个系统函数给用户调用,以下是待扩展的系统函数入口矢量USER_FUN21EQU USER_FIN+4*21 USER_FUN22EQU USER_FIN+4*22USER_FUN125EQU USER_FIN+4*125USER_FUN126EQU USER_FIN+4*126USER_FUN127EQU USER_FIN+4*1277.3.1系统函数使用说明代号解释FS0_FLAG = 结果0标志FS1_FLAG

21、 = 进位标志FS2_FLAG = 借位标志NAME:函数名FUN:函数功能 IN:变量入口OUT:变量出口USE:占用资源定点数运算子程序1.双字节HEX转换成BCD码NAME:W_BCDFUN:BIN-BCD IN:R0OUT:W_DATAUSE:R0到R7,A,B, PSW,FS0_FLAG/FS1_FLAG/FS2_FLAG,W_DATA2. 双字HEX转换成BCD码NAME:DW_BCDFUN:BIN-BCD IN:R0OUT:W_DATAUSE:R到R7,A,B, PSW,FS0_FLAG/FS1_FLAG/FS2_FLAG,W_R0到W_R7,W_DATA3双字节BCD码转换成H

22、EXNAME:W_BINFUN:BCD-BIN IN:R0OUT:W_DATAUSE:R0到R7,A,B, PSW,FS0_FLAG/FS1_FLAG/FS2_FLAG,W_R0到W_R7,W_DATA 4双字BCD-HEXNAME:DW_BINFUN:BCD-BIN IN:R0OUT:W_DATAUSE:R0到R7,A,B, PSW,FS0_FLAG/FS1_FLAG/FS2_FLAG,W_R0到W_R7,W_DATA 5双字节加法NAME:D2ADDFUN:R0+R1-W_DATA IN:R0, R1OUT:W_DATAUSE:R0到R7,A,B, PSW,FS0_FLAG/FS1_FLA

23、G/FS2_FLAG,W_R0到W_R7,W_DATA 64字节加法NAME:D4ADDFUN:R0+R1-W_DATA IN:R0, R1OUT:W_DATAUSE:R0到R7,A,B, PSW,FS0_FLAG/FS1_FLAG/FS2_FLAG,W_R0到W_R7,W_DATA 7双字节减法NAME:D2SUBFUN:R0+R1-W_DATA IN:R0, R1OUT:W_DATAUSE:R0到R7,A,B, PSW,FS0_FLAG/FS1_FLAG/FS2_FLAG,W_R0到W_R7,W_DATA 84字节减法NAME:D4SUBFUN:R0+R1-W_DATA IN:R0, R1

24、OUT:W_DATAUSE:R0到R7,A,B, PSW,FS0_FLAG/FS1_FLAG/FS2_FLAG,W_R0到W_R7,W_DATA 9双字节乘法NAME:D2MULFUN:R0*R1-W_DATA IN:R0, R1OUT:W_DATAUSE:R0到R7,A,B, PSW,FS0_FLAG/FS1_FLAG/FS2_FLAG,W_R0到W_R7,W_DATA 104字节乘法NAME:D4MULFUN:R0*R1-W_DATA IN:R0, R1OUT:W_DATAUSE:R0到R7,A,B, PSW,FS0_FLAG/FS1_FLAG/FS2_FLAG,W_R0到W_R7,W_D

25、ATA 11双字节有符号数除法NAME:D2DIVFUN:R0/R1-W_DATA IN:R0, R1OUT:W_DATAUSE:R0到R7,A,B, PSW,FS0_FLAG/FS1_FLAG/FS2_FLAG,W_R0到W_R7,W_DATA 12四字节有符号数除法NAME:D4DIVFUN:R0*R1-W_DATA IN:R0, R1OUT:W_DATAUSE:R0到R7,A,B, PSW,FS0_FLAG/FS1_FLAG/FS2_FLAG,W_R0到W_R7,W_DATA 浮点数运算子程序13浮点数转2字节整数NAME:FINT2_LFUN:R0-W_DATA IN:R0OUT:W_

26、DATAUSE:R0到R7,A,B, PSW,FS0_FLAG/FS1_FLAG/FS2_FLAG,W_R0到W_R7,W_DATA 14. 浮点数转4字节整数NAME:FINT4_LFUN:R0-W_DATA IN:R0OUT:W_DATAUSE:R0到R7,A,B, PSW,FS0_FLAG/FS1_FLAG/FS2_FLAG,W_R0到W_R7,W_DATA 152字节整数转浮点数NAME:FSDT2_LFUN:R0-W_DATA IN:R0OUT:W_DATAUSE:R0到R7,A,B, PSW,FS0_FLAG/FS1_FLAG/FS2_FLAG,W_R0到W_R7,W_DATA 1

27、6. 4字节整数转浮点数NAME:FSDT4_LFUN:R0-W_DATA IN:R0OUT:W_DATAUSE:R0到R7,A,B, PSW,FS0_FLAG/FS1_FLAG/FS2_FLAG,W_R0到W_R7,W_DATA 17浮点数加/减法NAME:FABP_LFUN:R0+R1-W_DATA IN:R0, R1OUT:W_DATAUSE: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_LFUN:R0*R1-W_DATA I

28、N:R0, R1OUT:W_DATAUSE:R0到R7,A,B, PSW,FS0_FLAG/FS1_FLAG/FS2_FLAG,W_R0到W_R7,W_DATA 19. 浮点数除法NAME:FDIV_LFUN:R0+R1-W_DATA IN:R0, R1OUT:W_DATAUSE:R0到R7,A,B, PSW,FS0_FLAG/FS1_FLAG/FS2_FLAG,W_R0到W_R7,W_DATA 转换子程序20. 二进制数转ASC码NAME:HEX_ASCFUN:A-R2,R3 IN:AOUT:R2,R3USE:R0到R7,A,B, PSW,FS0_FLAG/FS1_FLAG/FS2_FLAG

29、,W_R0到W_R7,W_DATA 21. ASC码转二进制数NAME:ASC_HEXFUN:R2,R3-A IN:R2,R3OUT:AUSE:R0到R7,A,B, PSW,FS0_FLAG/FS1_FLAG/FS2_FLAG,W_R0到W_R7,W_DATA 第四节 系统头文件说明系统头文件名为EASYCORE.INC7.4.0头文件源代码以下“;”后面为注释说明部分;=CPU寄存器组(00H-1FH)=; 0区00H-07H主程序使用; 1区08H-0FH编程口(高优先级中断)使用; 2区 10H-17H 串口1 (高优先级中断)使用; 3区 18H-1FH CANBUS(低优先级中断)使

30、用;*3区可被用户嵌入时(低优先级中断)重复使用*;=位寄存器区中用户使用区(20H-23H)=BRAM_USEREQU20H;4BYTES;=直接寻址寄存器中用户使用区(58H_67H)=DRAM_USEREQU58H;16BYTES;=外部RAM中用户使用区(3600H-3FFFH)=XRAM_USEREQU3600H;4096-1536BYTES=2560BYTES;=用户程序使能位=KEY_SETEQU3FHKEY_PROEQU3EHPLC_PRO_ERREQU3DHPLC_PRO_ENDEQU3CHFS0_FLAGEQU?FS1_FLAGEQU?FS2_FLAGEQU?FS3_FLA

31、GEQU?;=公共运算区(30H-4FH);公共运算区不可用于:1.系统软定时TMS;2.用户中断M0EQU30HM1EQU31HM2EQU32HM3EQU33HM4EQU34HM5EQU35HM6EQU36HM7EQU37HM8EQU38HM9EQU39HM10EQU3AHM11EQU3BHM12EQU3CHM13EQU3DHM14EQU3EHM15EQU3FHFLOAT_M1EQU40H;FLOAT_M2EQU44HFLOAT_M3EQU48HFLOAT_M4EQU4CHW_DATAEQU ?W_R0EQU?W_R1EQU?W_R2EQU?W_R3EQU?W_R4EQU?W_R5EQU?W

32、_R6EQU?W_R7EQU?;=PLC资源区 (0000_5080H)=;位变量区(0000-05FFH)字变量区(0A00-7FFFH)RAM_PCNEQU0A00H;C0000-C0199(2)RAM_PCN1EQU0C00H;C0200-C0255(4);L,H=(2)(2)-D0D1(D1为高字)RAM_PD8EQU0E00H;D8200-D8255RAM_PTNEQU1000H;T0000-T0255RAM_PDEQU4000H;D0000-D7999第五节 用户嵌入程序结构用户嵌入程序包括头文件部分、中断入口调用矢量地址部分和用户程序部分。用户嵌入程序代码存放在E000H-F7F

33、FH;=头文件部分$INCLUDE(C8051F040.INC); C8051F040的寄存器定义文件(必备)$INCLUDE(easycore.INC); easycore 符号定义文件(必备)$INCLUDE(EASYCORE.LIB); easycore库函数文件(必备)$INCLUDE(user_data.INC); 用户符号定义(用户自己定义);=中断向量重定向地址=ORG0E000HORG0E003H;外部中断0(INT0)ORG0E013H;外部中断1址(INT1)ORG0E033H;串行外设接口(SPI)ORG0E03BH;SMBus interfaceORG0E043H;AD

34、C0 Window ComparatorORG0E04BH;可编程计数器阵列ORG0E053H;比较器0ORG0E05BH;比较器1ORG0E063H;比较器2ORG0E07BH;ADC0 end of ConversionORG0E083H;定时/计数器4ORG0E08BH;ADC2 end of ConversionORG0E093H;ADC2 Window Comparator;=用户应用程序调用入口=ORG0E0A0H;用户I/O配置程序入口LJMPUSER_CONFIGORG0E0A3H;用户上电初始化程序入口LJMPUSER_STARTORG0E0A6H;用户设置初始化程序入口LJ

35、MPUSER_SET_INITORG0E0A9H;用户运行初始化程序入口LJMPUSER_RUN_INITORG0E0ACH;用户演算周期扫描程序入口LJMPUSER_SCANORG0E0B0H;指令周期扫描LJMPUSER_STEPORG0E0B3H;2.5ms周期扫描LJMPUSER_TMSORG 0E100H ;*USER_CONFIG*USER_CONFIG:;用户I/O配置程序代码 ;配置用户要用的I/O资源(用户不可用的I/O资源为 ;P4.4,P4.5,P4.6,P4.7,P5,P6,P7及UART0、UART1的占用口RET;*USER_START*USER_START:;用户上电初始化程序代码RET;*USER_RUN_INIT*USER_RUN_INIT: ; 用户运行初始化程序代码 RET;*USER_SET_INIT*USER_SET_INIT:; 用户设置初始化程序代码RET ;*USER_STEP*USER_STEP: ;用户每步执行程序代码RET;*TMS*USER_TMS: ;用户2.5ms定时运行程序代码RET;*USER_SCAN*USER_SCAN:;用户演算周期扫描程序代码RETEND

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号