Cx51入门与Keil使用 单片机_第1页
Cx51入门与Keil使用 单片机_第2页
Cx51入门与Keil使用 单片机_第3页
Cx51入门与Keil使用 单片机_第4页
Cx51入门与Keil使用 单片机_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Cx51入门与Keil使用 单片机 第第2讲Cx51入门与Keil使用2.1Cx51程序的基本结构2.2Cx51的数据类型2.3Cx51的运算规则2.4keil uVision2集成开发环境的使用2.1C51程序的基本结构#include/系统头文件#includedisplay.h/用户自定义头文件#includedelay.h/用户自定义头文件void main(void)/主函数unsigned chari,j;/变量定义SCON=0x00;/*串行口初始化为方式0*/while (1)/死循环for(i=0;i=10;i+)for(j=0;j=3;j+)P0=j;disp7seg(i);/显示数据delayx10ms (50);/延时5秒#include/系统头文件/*-REG51.H Headerfile forgeneric80C51and80C31microcontroller.Copyright(c)1988-xxKeil ElektronikGmbH andKeil Software,Inc.All rightsreserved.-*/#ifndef_REG51_H_#define_REG51_H_/*BYTE Register*/sfr P0=0x80;sfr P1=0x90;sfr P2=0xA0;sfr P3=0xB0;sfr PSW=0xD0;sfr ACC=0xE0;sfr B=0xF0;sfr SP=0x81;sfr DPL=0x82;sfr DPH=0x83;sfr PCON=0x87;sfr TCON=0x88;sfr TMOD=0x89;sfr TL0=0x8A;sfr TL1=0x8B;sfr TH0=0x8C;sfr TH1=0x8D;sfr IE=0xA8;sfr IP=0xB8;sfr SCON=0x98;sfr SBUF=0x99;/*BIT Register*/*PSW*/sbit CY=0xD7;sbit AC=0xD6;sbit F0=0xD5;sbit RS1=0xD4;sbit RS0=0xD3;sbit OV=0xD2;sbit P=0xD0;/*TCON*/sbit TF1=0x8F;sbit TR1=0x8E;sbit TF0=0x8D;sbit TR0=0x8C;sbit IE1=0x8B;sbit IT1=0x8A;sbit IE0=0x89;sbit IT0=0x88;/*IE*/sbit EA=0xAF;sbit ES=0xAC;sbit ET1=0xAB;sbit EX1=0xAA;sbit ET0=0xA9;sbit EX0=0xA8;/*IP*/sbit PS=0xBC;sbit PT1=0xBB;sbit PX1=0xBA;sbit PT0=0xB9;sbit PX0=0xB8;/*P3*/sbit RD=0xB7;sbit WR=0xB6;sbit T1=0xB5;sbit T0=0xB4;sbit INT1=0xB3;sbit INT0=0xB2;sbit TXD=0xB1;sbit RXD=0xB0;/*SCON*/sbit SM0=0x9F;sbit SM1=0x9E;sbit SM2=0x9D;sbit REN=0x9C;sbit TB8=0x9B;sbit RB8=0x9A;sbit TI=0x99;sbit RI=0x98;#endif#ifndef_DISPLAY_H_#define_DISPLAY_H_extern voiddisp7seg(unsigned charvalue);extern unsigned char code seg_tab;#endif#ifndef_DELAY_H_#define_DELAY_H_void delayms(unsigned charcount);void delayx10ms(unsigned charcount);#endif#includedisplay.h/用户自定义头文件#includedelay.h/用户自定义头文件#includeunsigned charcodeseg_tab=0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x19,0x61,0xff;/段码表0,1,2,3,4,5,6,7,8,/9,E,dark voiddisp7seg(unsigned charvalue)SBUF=seg_tabvalue;/发送显示段码while(TI=0);/等待发送完毕TI=0;display.c定义显示函数的文件delay.c定义延时函数的文件#includevoid delayms(unsigned charcount)unsigned inti,j;for(i=0;i 为了充分利用MCS-51单片机的资源特点,C51在在ANSI C的数据类型基础上增设了位型变量。 1、基本数据类型取值范围数据类型长度(bit)长度(byte)值值域范围bit10,1unsigned char810255signedchar81128127unsigned int162065535signed int1623276832767unsigned float32404294967295signed float32421474836482147483647float3241.176E-383.40E+38(6位数字)double6481.176E-383.40E+38(10位数字)一般指针243存储空间065535?数组(array)?结构体(struct)?联合体(union)?枚举(enum) 2、构造数据类型 3、指针类型 4、空类型2.2.2常量C语言中的数据有常量和变量之分。 常量在程序运行的过程中,其值始终不能改变的量。 经常用到使用预编译语句#define定义的符号常量#define CONST100#define NULL0#define TRUE1#define FALSE0习惯上符号常量通常用大写,而变量着用小写,注意养成良好的编程习惯。 2.2.3变量 一、变量定义格式存储种类数据类型存储器类型变量名;存储种类动态(auto),外部(extern),静态(static),寄存器器(register)unsigned char data system_status=0;unsigned intdata unit_id2;char pdatainp_string16;float xdataoutp_value;bit flag_finish; 1、auto动态变量动态变量只有在函数被调用时,系统才给动态变量分配存储单元,函数执行结束时释放存储空间。 2、static静态变量静态局部变量在程序运行时始终存在(占用存储单元),但是只能在函数内部使用,其作用是本次调用函数可以使用上次调用后的变量值。 3、用extern声明外部变量( (1)在变量定义处之前使用变量必须用extern声明。 (22)在一个文件中使用另一个文件中定义的全局变量,在使用之前应用extern声明。 二、位变量位变量(bit)的类型是位,其值可以是1(true)或者0(false)。 这些位变量定义在内部RAM的可位寻址区。 三、字符变量字符变量(char)的类型是一个字节共8位,是带符号的单字节数,其值范围为-128+127。 无符号字符变量(unsigned char)也是一个字节,但是不带符号,其值范围为0+255。 四、整型变量整型变量(int)的类型是双字节共16位,其取值范围是-32768+32767。 无符号整型变量(unsigned int)为双字节但不带符号,其值范围为065535。 Keil Cx51中整型变量(int)的字节存放次序高8位存放在低地址,低8位则存放在高地址。 例如位于地址0x1100的整数0x1234低地址0x1100存放0x12,高地址0x1101存放0x34。 五、浮点变量浮点变量(float)的类型是4字节共32位,其存放格式为地址+0+1+2+3内容SEEEEEEE EMMMMMMMMMMMMMMM MMMMMMMMKeil Cx51中浮点变量(float)采用IEEE-754标准,由1位位符号、8位指数和23位尾数(最高位始终为1无需保存)组成,具有24位精度。 38381040.310176.1?浮点变量(float)的字节次序和编译器及其版本有关。 Keil C编译器能从你的程序源代码中产生高度优化的代码,但你可以帮助编译器产生更好的代码。 下面将讨论这方面的一些问题。 六、使用Keil C时应做的和应该避免的一个提高代码效率的最基本的方式就是减小变量的长度。 使用C编程时,我们都习惯于对循环控制变量使用int类型,这对8位的单片机来说是一种极大的浪费。 你应该仔细考虑你所声明的变量值可能的范围,然后选择合适的变量类型。 很明显,经常使用的变量应该是unsigned char,只占用一个字节: (1)采用短变量为什么要使用无符号类型呢?原因是8051不支持符号运算,程序中也不要使用含有带符号变量的外部代码。 除了根据变量长度来选择变量类型之外,你还要考虑变量是否会用于负数的场合,如果你的程序中可以不需要负数,那么把变量都定义成无符号类型的变量: (2)使用无符号类型unsigned intdata n1,n2;在8位操作系统上使用32位浮点数是得不偿失的。 你可以这样做,但会浪费大量的时间。 所以当你要在系统中使用浮点数的时候,你要问问自己这是否一定需要。 可以通过提高数值数量级和使用整型运算来消除浮点指针。 处理int和long比处理double和float要方便得多,你的代码执行起来会更快,也不用连接处理浮点指针的模块。 如果你一定要采用浮点指针的话,你应该采用西门子80517和达拉斯半导体公司的80320,这些已经对数处理进行过优化的单片机。 (3)避免使用浮点数 (4)使用位变量对于某些标志位应使用位变量而不是unsigned char,这将节省你的内存。 你不用多浪费7位存储区,而且位变量在RAM中访问他们只需要一个处理周期。 2.2.4存储器类型和存储模式 一、存储器类型存储类型与存储空间的对应关系data直接寻址片内数据存储区,访问速度快(128字节)bdata可位寻址片内数据存储区,允许位与字节混合访问(16字节)idata间接寻址片内数据存储区,可访问片内全部RAM地址空间(256字节)pdata分页寻址片外数据存储区(256字节),由MOVXRi访问xdata寻址片外数据存储区(64K字节),有MOVXDPTR访问code寻址代码存储区(64K字节),有MOVCDPTR访问unsigned chardata system_status=0;unsigned intdata unit_id2;chardatainp_string16;float dataoutp_value;mytype datanew_var;( (1)data区对对data区的寻址是最快的,所以应该把使用频率高的变量放在data区。 由于空间有限,必须注意使用data区;除了包含程序变量外,还包含了堆栈和寄存器组在data区的声明。 ( (2)bdata区可以在data区的位寻址区定义变量,这个变量的每个位就可进行位寻址。 bit stat_flag;idata区也可存放使用比较频繁的变量,使用寄存器作为指针进行寻址。 在寄存器中设置8位地址进行间接寻址,和外部存储器寻址比,它的指令执行周期和代码长度都比较短( (3)idata区unsigned char idata system_status=0;unsigned intidata unit_id2;charidatainp_string16;float idataoutp_value;在这两个区声明变量和在其它段的语法是一样的。 pdata段只有256个字节,而xdata段可达65536个字节。 下面是一些例子( (4)pdata和xdata区-片外RAM unsigned char xdatasystem_status=0;unsigned intpdata unit_id2;char xdatainp_string16;float pdataoutp_value;unsigned intcode unit_id2=1234;unsigned charcode Num=0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x10,0x11,0x12,0x13,0x14,0x15;( (5)code区代码区的数据是不可改变的,8051的代码段不可重写。 一般代码段中可存放数据表.下面是代码段的声明例子 二、存储器模式Cx51提供了3种存储器模式来存储变量过程参数和分配再入函数堆栈存储模式说明small参数及局部变量放入data区,默认存储类型是是data,堆栈位于片内idata(片内RAM)pact参数及局部变量放入pdata区,默认存储类型是是pdata,堆栈位于片内idata(片内RAM)large参数及局部变量放入xdata区,默认存储类型是是xdata,模拟堆栈位于片外xdata(片外RAM)2.2.5C51扩展的数据类型 一、普通位变量-bit普通位变量只能存放于内部RAM中,一般用bdata指定存放于可位寻址片内数据存储区。 位变量的C51定义的一般语法格式如下位类型标识符(bit)位变量名;例如bit direction_bit;/*把direction_bit定义为位变量*/bit look_pointer;/*把look_pointer定义为位变量*/ 二、特殊功能寄存器定义-sfr特殊功能寄存器(SFR)的定义sfr特殊功能寄存器名=绝对地址;例如sfr PSW=0xD0;/*定义程序状态字PSW的地址为D0H*/sfr TMOD=0x89;/*定义定时器方式控制寄存器*/sfr P1=0x90;/*定义P1口的地址为90H*/对对16位SFR的可使用关键字“sfr16”来定义。 /*BYTE Register*/sfr P0=0x80;sfr P1=0x90;sfr P2=0xA0;sfr P3=0xB0;sfr PSW=0xD0;sfr ACC=0xE0;sfr B=0xF0;sfr SP=0x81;sfr DPL=0x82;sfr DPH=0x83;sfr PCON=0x87;sfr TCON=0x88;sfr TMOD=0x89;sfr TL0=0x8A;sfr TL1=0x8B;sfr TH0=0x8C;sfr TH1=0x8D;sfr IE=0xA8;sfr IP=0xB8;sfr SCON=0x98;sfr SBUF=0x99; 三、可位寻址的特殊位变量-sbit对于位于内部RAM20H2FH区域,和可位寻址的SFR中的位,C51的扩充功能支持特殊位的定义,使用sbit来来定义位寻址单元。 第一种格式sbit bit-name=sfr-nameint constant;sfr PSW=0xD0;/*定义PSW寄存器地址为D0H*/sbit OV=PSW2;/*定义OV位为PSW.2,地址为D2H*/sbit CY=PSW7;/*定义CY位为PSW.7,地址为D7H*/第二种格式sbit bit-name=int constantint constant;=后的int constant为寻址地址位所在的特殊功能寄存器的字节地址,符号后的int constant为寻址位在特殊功能寄存器中的位号。 例如sbit OV=0XD02;/*定义OV位地址是D0H字节中的第2位*/sbit CY=0XD07;/*定义CY位地址是D0H字节中的第7位*/例如sbit OV=0XD2;/*定义OV位地址为D2H*/sbit CY=0XD7;/*定义CY位地址为D7H*/第三种格式sbit bit-name=int constant;=后的int constant为寻址位的绝对位地址。 例如并口中的每一个IO口线还可以用sbit来定义其每一个位sbit P00=P00;/定义IO线P0.0sbit P01=P01;/定义IO线P0.1sbit P02=P02;/定义IO线P0.2sbit P03=P03;/定义IO线P0.3sbit P04=P04;/定义IO线P0.4sbit P05=P05;/定义IO线P0.5sbit P06=P06;/定义IO线P0.6sbit P07=P07;/定义IO线P0.7标准SFR在reg51.h、reg52.h等头文件中已经被定义,只要用文件包含做出申明即可使用。 打开reg51.h可以看到这样的一些内容/*BYTE Register*/sfr P0=0x80;sfr P1=0x90;sfr P2=0xA0;sfr P3=0xB0;sfr PSW=0xD0;sfr ACC=0xE0;sfr B=0xF0;sfr SP=0x81;sfr DPL=0x82;sfr DPH=0x83;sfr PCON=0x87;sfr TCON=0x88;sfr TMOD=0x89;sfr TL0=0x8A;sfr TL1=0x8B;sfr TH0=0x8C;sfr TH1=0x8D;sfr IE=0xA8;sfr IP=0xB8;sfr SCON=0x98;sfr SBUF=0x99;#includereg51.hsbit P10=P10;sbit P12=P12;main()P10=1;P12=0;PSW=0x08;2.2.6绝对地址访问对于片外扩展I/O口,则根据硬件译码地址,将其视作为片外数据存储器的一个单元,使用#define语句进行定义。 例如如#include#define PORTAXBYTE0xFFC0absa.h是C51中绝对地址访问函数的头文件,将PORTA定义为外部I/O口,地址为FFC0H,长度为8位。 一旦在头文件或程序中对这些片外I/O口进行定义后,在程序中就可以自由使用变量名与其实际地址的联系。 #includeabsa.h#define PAXBYTE0xffecmain()PA=0x3A;/*将数据3AH写入地址为0xffec的存储单元或I/O端口*/2.3Cx51的运算规则2.3.1算术运算及其优先级2.3.2关系运算及其优先级2.3.3逻辑运算及其优先级2.3.4位操作及其表达式2.3.5自减、自加和复合运算 一、Cx51最基本的5种算术运算符+:加法运算,或者正值符号;-:减法运算,或者负值符号;*:乘法运算;/:除法运算;%:取模(求余)运算符。 2.3.1算术运算及其优先级 二、算术表达式、优先级与结合性用算术运算符和括号将运算对象连接起来的式子称之为算术表达式。 运算优先级,指当运算对象两侧都有运算符时,执行运算的先后次序先乘、除、模(3者等同),后加、减(2者等同),括号最优先。 (a+b)*(c-d)-e运算结合性,指当运算对象两侧的运算符具有相同优先级时,执行运算的先后次序先左后右。 a+b-c 三、数据类型转换如果一个运算符的两侧的数据类型不同,则必须先通过数据类型转换,将两侧的数据转换成位相同类型。 转换的方法有两种?自动(缺省)类型转换,即在程序编译时由C编译器自动从低类型到高类型进行类型转换;?强制类型转换,需要使用强制类型转换符。 unsigned chara,b,c;c=a+(unsigned int)b;首先(unsigned int)强制把b转换为类型unsigned int,编译器在编译加法代码时自动把a转换为unsigned int,最后存放运算结果时,编译器又自动把a转换为unsigned char2.3.2关系运算及其优先级 一、Cx51有6种关系运算符:大于;=:大于或者等于;=:测试等于;!=:测试不等于。 优先级相同(高)优先级相同(低)小于小于等于大于大于等于等于!不等于 一、关系运算符 二、关系运算符的优先级前4种关系运算符的优先级相同,后2种关系运算符的优先级也相同,前4中关系运算符的优先级高于后2种。 关系运算符的优先级低于算术运算符的优先级,但是高于赋值运算符(=)的优先级。 优先级算术运算符高关系运算符赋值运算符低?关系运算符的结合性为左结合。 关系表达式用关系运算符将两个表达式(算术表达式、关系表达式、逻辑表达式及字符表达式)连连接起来的式子。 关系表达式的结果由于关系运算符总是二目运算符,故它作用在运算对象上产生的结果为一个逻辑值,即真 (1)或者假 (0)。 例unsigned chara=4,b=3,c=1;ab=c;/-1(真)注意观察,本例中还隐含了对变量c的类型自动转换!2.3.3逻辑运算及其优先级“&”和“|”是双目运算符,要求有两个运算对象;而“!”是单目运算符,只要求有一个运算对象。 Cx51提供3种逻辑运算符&:逻辑“与”(AND);|:逻辑“或”(OR);!:逻辑“非”。 逻辑运算的优先级很特殊,有的很高,有的则很低优先级!(逻辑非)高算术运算符关系运算符&和|赋值运算符低?逻辑运算符的结合性为左结合。 逻辑表达式用逻辑运算符将关系表达式或者逻辑量连接起来的式子;逻辑表达式的结果其值和逻辑关系表达式的值一致,是一个逻辑量真 (1)或者假 (0);例unsigned chara=4,b=3,c=1;ab&bc=c;/-1(真)注意观察,本例中还隐含了对变量c的类型自动转换!有的编译器会对这个逻辑表达式提出警告,最好使用括号把它改写成(ab)&(bc)=c;/-1(真)2.3.4位操作及其表达式只有“”和逻辑运算符“!”一样是单目运算符,且它的优先级也和“!”一样最高。 一般情况下单目运算符的优先级总是最高的。 Cx51提供6种位操作运算符&:按位“与”;|:按位“或”;:按位“异或”;:按位取“反”;:全部位同时右移。 例unsigned chara=4,b=3,c=1;ab&b(c=2)0(假)注意观察,本例中还隐含了对变量c的嵌入式赋值(c=2)。 2.3.5自减、自加和复合运算 一、Cx51提供4种自加/减运算符+i,-i:使用i之前先对i加/减1;i+,i-:使用i之后再对i加/减1;例unsigned chara=4,b;b=+a;/a=5,b=5b=a+;/a=5,b=4b=-a+;/a=4,b=3b=(+a)+(+a)+(+a);/a=7,b=21 二、Cx51提供所有二目位运算符的复合运算+=,-=,*=,/=,%=,=,&=,|=,=。 例unsigned chara=4,b;b=a+4;/b=a+4=8b*=a+;/b=8*4=32,a=5采用这种复合运算符的目的是为了简化实际程序,提高C程序的编译效率。 Cx51所有运算符的优先级和结合性优先级类别运算符名称运算符结合性性1类型转换、成员转换,下标,成员(),-,.右右2单目单目运算!,+,-,&,*,-,sizeof左左3算术乘除模*,/,%左左4算术加减+,-左左5字位左右移左左6关系比较,=,0;DelayTime-)for(j=0;j125;j+);void main()unsigned charOutData=0xfe;while (1)P1=OutData;OutData=_crol_(OutData,1);/循环左移mDelay (1000);/*延时1000毫秒*/例2简易故障监视报警系统(讲义P83)系统要求 1、设P1.0P1.3监视着四个故障源;(相应线路为“1表示有故障,为“0表示无故障) 2、无故障时,绿灯亮,红灯灭;只要有一个故障源产生故障都会造成绿色信号灯的熄灭;同时,应将相应的红色故障指示灯点亮。 硬件电路、程序如下1有故障“0无故障障或门DIPswitch greenLED无故障时,绿灯亮,红灯灭;有故障绿灯灭,相应的红灯亮#includesbit DIPswitch=P14;/*定义位DIPswitch*/sbit greenLEDP15;/*定义位greenLED*/void main(void)unsignedcharvalue;/*定义变量value*/value0;/*value的初始值*/P3=0;/*初始状态,红灯灭*/greenLED=0;/*绿灯初始为灭态*/P1=0;/*初始无故障*/while (1)if(DIPswitch1)/*查P1.4是否为高*/greenLED0;/*置P1.5输出为低*/valueP1&0x0F;/*从P1读位03*/else/*若P1.4输入为低*/greenLED1;/*置P1.5输出为高*/value=0;P3=value;/*输出到P3.0P3.3*/2.4keil uVision2集成开发环境的使用2.4.1KEIL8051开发工具介绍Keil Software的8051开发工具可用于编译C源码、汇编源程序、连接和重定位标文件和库文件,创建HEX文件,调试目标程序。 ?uVision2是一个集成开发环境它把项目管理源代码程序调试等集成到一个功能强大的环境中。 ?C51是标准优化C交叉编译器。 从你的C源代码产生可重定位的目标文件?A51宏汇编器。 从你的8051汇编源代码产生可重定位的目标文件?LIB51库管理器。 组合你的目标文件生成可以被连接器使用的库文件。 ?OH51目标文件到HEX格式的转换器。 从绝对目标文件创建建Intel HEX格式的文件。 ?RTX-51实时操作系统。 简化了复杂和对时间要求敏感的软件项目。 ?BL51连接/重定位器。 组合你的由C51和A51产生的可重定位的目标文件生成绝对目标文件?正式版包括没有限制的8051工具和全套手册(含本手册)正正式版套件包含1年的技术支持和产品升级升级通过.keil.提供。 1、测试版工具包和产品工具包Keil Software把软件分成两种类型测试版和正式版?测试版包括8051工具的测试版本和本用户手册你可以用它们产生目标代码小于2K字节的应用。 2、软件开发流程使用Keil Software工具时你的项目开发流程和其它软件开发项目的流程极其相似。 ?创建一个项目,从器件库中选择目标器件,配置工具设置;?用C语言或汇编语言创建源程序;?用项目管理器构造应用;?修改源程序中的错误;?调试连接后的应用一个完整的8051工具集的框图可以最好地表述此开发流程。 3、安装?系统需求?为了取得比较好的运行效果最低的硬件和软件配置必须满足?具有奔腾奔腾II或兼容的处理器的个人计算机?操作系统为WIN95WIN98WINNT4.0或更高?RAM大于16MB?20MB的硬盘空余空间?安装详细说明所有的Keil产品都带有一个安装程序。 8051开发工具的安装步骤如下?插入Keil开发工具光盘?从CD浏览界面选择安装软件?跟随提示进行安装操作?文件夹组织结构安装程序复制开发工具到基本目录的各个子目录中。 默认的基本目录是C:KEIL。 下表列出的文件夹结构是包括所有8051开发工具的全部安装信息。 C:KEILC51ASM汇编SFR定义文件和模板源程序文件C:KEILC51BIN8051工具的执行文件C:KEILC51EXAMPLES示例应用C:KEILC51RTX51完全实时操作系统文件C:KEILC51RTX_TINY小型实时操作系统文件C:KEILC51INC C编译器包含文件C:KEILC51LIB C编译器库文件启动代码和常规I/O资源C:KEILC51MONITOR目标监控文件和用户硬件的监控配置C:KEILUV2普通uVision2文件2.4.2keil uVision2集成开发环境的使用uVision2有两种工作模式?Build模式(build mode)在这种工作模式中,建立工程、选择CPU、设置工程环境、创建源文件等、编译所有的应用文件,并生产可执行程序。 ?调试模式(debug mode):使用调试器测试应用程序。 一、项目的建立、设置与编译Build模式(build mode)基本步骤创建一个项目,从器件库中选择目标器件,配置工具设置;用用C语言或汇编语言创建源程序;用项目管理器构造应用;修改源程序中的错误;生成HEX文件。 1、创建一个项目?单击project/New Project,出现创建新项目对话框( (1)设置项目文件夹建议每个项目都使用一个独立的文件夹。 ( (2)确定项目名称使用英文名称?选择目标CPU在输入项目名称后单击确定后,会弹出器件选择窗口;在此窗口中选择合适的CPU。 窗口中的器件按公司名称排列。 选中的器件器件信息描述器件选定后会出现如下的对话框,选择“否”。 至此,一个新的工程已经建立。 2、配置项目?单击project/Option forTarget?Tar

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论