


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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文件,以供调试器dScope5
2、1使用,进行源代码级调试,也可由仿真器使用,直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。l uVision2 IDEuVision2 集成开发环境集成了一个项目管理器,一个功能丰富、有错误提示的编辑器,以及设置选项、生成工具、在线帮助。l C51编译器和A51汇编器源代码由uVision2创建,并被C51编译或A51汇编。编译器和汇编器从源代码生成可重定位的目标代码l LIB51库管理器LIB51库管理器允许从编译器或汇编器生成的目标文件创建目标库。库是一种被特别组织并在以后可以被连接重用的对象模块。当连接器处理一个库时仅仅那些被使用的目标模块才被真正使用l BL51 连接器
3、/定位器BL51连接器/定位器利用从库中提取的目标模块和由编译器或汇编器生成的目标模块创建一个绝对地址的目标模块。一个绝对地址目标模块或文件包含不可重定位的代码和数据。所有的代码和数据被安置在固定的存储器单元中。此绝对地址目标文件可以用来:a.写入EPROM或其他存储器件b.由uVision2调试器使用来模拟和调试c.由仿真器来测试程序l uVision2调试器uVision2源代码级调试器是一个理想、快速、可靠的程序调试器。此调试器包含一个高速模拟器,能够让你模拟整个8051系统,包括片上外围器件和外部硬件。当从器件库中选择器件时,这个器件的特性将自动配置。l Monitor51uVisio
4、n2调试器支持用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口
6、,把用户嵌入程序通过uVision2编译器生成的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(注意:不论用什么编译器,生成的代码段都要在这个范围内,否则程序无效
7、)c、 在图3界面中,选择生成HEX 文件,在该项目文件夹下生成的*.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
8、 of pieces:”,e、输入要固化的设备数,然后按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 reloca
10、te code /编译器生成的代码不在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)Wri
11、te flash error! Do 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
12、restart program(Y) 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
13、 KPS。、通信接口l CANBUS:软件内核管理,使用工具软件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名称DAC0DAC1CANRXCANTXAD0AD1AD2
14、AD3P1.7P1.6序号212223242526*名称P1.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 函数库 &q
15、uot;EASYCORE.LIB",函数库中包含128个系统函数,可供用户使用§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;双字减法
16、法D2MULEQUUSER_FUN8;双字节乘法D4MULEQUUSER_FUN9;双字乘法D2DIVEQUUSER_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 E
17、QUUSER_FUN18 ;浮点数除法3>转换子程序HEX_ASC EQUUSER_FUN19 ;二进制数转ASC码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 U
18、SER_FIN+4*3;DW_BIN;双字BCD转换成二进制数USER_FUN4EQU USER_FIN+4*4;D2ADD;双字节加法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_FUN1
19、1EQU USER_FIN+4*11 ;D4DIV;双字除法2>浮点数运算子程序USER_FUN12EQU USER_FIN+4*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;
20、浮点数乘法USER_FUN18EQU USER_FIN+4*18 ;FDIV_L;浮点数除法3>转换子程序USER_FUN19EQU USER_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*1
21、26USER_FUN127EQU USER_FIN+4*127§7.3.1系统函数使用说明代号解释FS0_FLAG = 结果0标志FS1_FLAG = 进位标志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
22、:R0OUT:W_DATAUSE:R到R7,A,B, PSW,FS0_FLAG/FS1_FLAG/FS2_FLAG,W_R0到W_R7,W_DATA3双字节BCD码转换成HEXNAME: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
23、_R7,W_DATA 5双字节加法NAME:D2ADDFUN: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 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到
24、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, R1OUT: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:D4
25、MULFUN: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 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,FS
26、0_FLAG/FS1_FLAG/FS2_FLAG,W_R0到W_R7,W_DATA 浮点数运算子程序13浮点数转2字节整数NAME:FINT2_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 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字节整数转浮点
27、数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 16. 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,
28、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 IN: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/
29、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,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.INC§
30、;7.4.0头文件源代码以下“;”后面为注释说明部分;=CPU寄存器组(00H-1FH)=; 0区00H-07H主程序使用; 1区08H-0FH编程口(高优先级中断)使用; 2区 10H-17H 串口1 (高优先级中断)使用; 3区 18H-1FH CANBUS(低优先级中断)使用;*3区可被用户嵌入时(低优先级中断)重复使用*;=位寄存器区中用户使用区(20H-23H)=BRAM_USEREQU20H;4BYTES;=直接寻址寄存器中用户使用区(58H_67H)=DRAM_USEREQU58H;16BYTES;=外部RAM中用户使用区(3600H-3FFFH)=XRAM_USEREQU360
31、0H;4096-1536BYTES=2560BYTES;=用户程序使能位=KEY_SETEQU3FHKEY_PROEQU3EHPLC_PRO_ERREQU3DHPLC_PRO_ENDEQU3CHFS0_FLAGEQU?FS1_FLAGEQU?FS2_FLAGEQU?FS3_FLAGEQU?;=公共运算区(30H-4FH);公共运算区不可用于:1>.系统软定时TMS;2>.用户中断M0EQU30HM1EQU31HM2EQU32HM3EQU33HM4EQU34HM5EQU35HM6EQU36HM7EQU37HM8EQU38HM9EQU39HM10EQU3AHM11EQU3BHM12EQ
32、U3CHM13EQU3DHM14EQU3EHM15EQU3FHFLOAT_M1EQU40H;FLOAT_M2EQU44HFLOAT_M3EQU48HFLOAT_M4EQU4CHW_DATAEQU ?W_R0EQU?W_R1EQU?W_R2EQU?W_R3EQU?W_R4EQU?W_R5EQU?W_R6EQU?W_R7EQU?;=PLC资源区 (0000_5080H)=;>>>>>>>>>>>>>>>>>>>>位变量区(0000-05FFH)<<<<&l
33、t;<<<<<<<<<<<<<RAM_PMEQU0000H;M0000-M3071RAM_PYEQU0180H;Y0000-Y0267RAM_PM8EQU01C0H;M8000-M8255RAM_PCSEQU01E0H ;CS000-CS255 计数器触点RAM_PTSEQU0200H;TS000-TS255 定时器触点RAM_PXEQU0240H;X0000-X0267RAM_PSEQU0280H;S0000-S0999RAM_PCCEQU04E0H;CC000-CC255计数器线圈RAM_PTCEQU0500H;
34、TC000-TC255定时器线圈;>>>>>>>>>>>>>>>>>>>>字变量区(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第五节 用户嵌入程序结构用户嵌入程序包括头文件部分、中断入口调用矢量地址部分和用户程序
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030年中国水冷式冷水机组行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030年中国氟哌啶醇行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030年中国楼宇对讲行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030年中国梯度热封测试仪行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030年中国核桃肽市场投融资规模与发展趋势预判报告
- 2025-2030年中国柠檬酸铋行业市场深度调研及发展趋势与投资前景预测研究报告
- 2025年文化考试特色试题及答案
- 2025-2030年中国木薯糖浆行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030年中国服务台解决方案行业市场现状供需分析及投资评估规划分析研究报告
- 行政管理专科语文总结能力试题及答案
- 带货主播经纪合同范本3篇
- 燃气管道项目审计要点
- 外科学(2)知到智慧树章节测试课后答案2024年秋温州医科大学
- 中医考试题+答案
- (高级)数据安全管理员职业技能鉴定考试题库-实操题
- 图书馆藏书出入库管理制度
- 国家开放大学《统计与数据分析基础》形考任务1-5答案
- 乐山大佛完整版本
- 小型风力发电机并网逆变器设计
- 北京市海淀区2023-2024学年五年级上学期数学期末试卷
- 2024年山东省济宁市中考生物试题卷(含答案解析)
评论
0/150
提交评论