51系列单片机程序设计课件_第1页
51系列单片机程序设计课件_第2页
51系列单片机程序设计课件_第3页
51系列单片机程序设计课件_第4页
51系列单片机程序设计课件_第5页
已阅读5页,还剩82页未读 继续免费阅读

下载本文档

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

文档简介

1、2010/5/18,单片机原理与接口技术,第四章,MCS-51,系列单片机程序设计,1,4.1,汇编语言程序设计概述,计算机是仿照人的思维方式顺序执行一条条指令来完成特定,任务的机器,计算机程序因此被定义为指令或语句的“有序,集合,程序设计是指编写计算机程序的过程,汇编语言是用指令助记符等表示的计算机指令,采用汇编语,言编写的程序被称为汇编语言程序,汇编语言程序具有代码,效率高(编译后的指令代码占用存储空间小)和执行时间短,等优势和特点,由于单片机的存储器等资源有限,单片机应用程序中经常需,要面对硬件操作,且对程序执行的时间有较为严格的要求或,限制。因此,汇编语言程序设计,是单片机应用系统设计

2、的重,要基础之一,2,4.1,汇编语言程序设计概述,1,汇编语言的特点,汇编语言的特点归纳如下,助记符指令与机器指令一一对应,程序代码效率高,占用存储空间小,运行速度快,汇编语言程序往往是最优化的程序,助记符指令(汇编指令)与计算机硬件联系紧密,要求编程人员对计算机硬件较为熟悉,汇编语言程序缺乏通用性,移植性较差,4.1.1,汇编语言的特点及语句格式,3,4.1,汇编语言程序设计概述,2,汇编语言的语句格式,MCS-51,系列单片机汇编语言的语句格式如下,标号,操作码,操作数,注释,标号,标号是汇编语句地址的符号表示,操作码,用于规定该语句所执行的操作,操作数,操作数为汇编指令的操作提供数据或

3、地址,注释,注释是指对一条汇编语句或一段汇编语言程序,的说明,以增加汇编语言程序的可读性,4.1.1,汇编语言的特点及语句格式,4,4.1,汇编语言程序设计概述,1,起始地址定位伪指令,ORG,格式,标号,ORG,操作数,说明:其功能是指出紧接其后的指令的目标代码的,第一个字节在程序存储器中的绝对地址。例如,ORG 0030H,START:MOV A,#33H,即定义标号,START,表示的起始地址值为,0030H,该,段程序的指令代码从该地址开始顺序存放,4.1.2,汇编语言伪指令,5,4.1,汇编语言程序设计概述,2,赋值伪指令,EQU,格式:字符名称,EQU,操作数,说明:该指令用于,字

4、符名称赋值,在同一个,源程序中,任何一个字符名称只能赋值一次,且一旦赋值之后,整个源程序中该字符的值,就固定不变了。例如,ADPORT EQU 1001H,即给字符名称,ADPORT,赋值,16,进制数,1001H,4.1.2,汇编语言伪指令,6,4.1,汇编语言程序设计概述,3,数据地址赋值伪指令,DATA,格式:字符名称,DATA,操作数,说明,DATA,伪指令的功能与,EQU,伪指令相似,不同,之处在于,DATA,伪指令所定义的字符名称,可先使用后,定义(赋值),也可先定义(赋值)后使用,在程,序中它常用来定义(赋值,数据地址,4.1.2,汇编语言伪指令,7,4.1,汇编语言程序设计概述

5、,4,字节数据赋值伪指令,DB,格式,标号,DB,数据表(字节,说明:该伪指令用于定义(赋值)若干,字节数据表,固定常数),并存放在指定地址单元开始的程序,存储器中,例如,ORG 0050H,TABLE,DB 99H,88H,即表示在地址,0050H,标号,TABLE,开始定义(赋,值)两个字节数据,99H,88H,4.1.2,汇编语言伪指令,8,4.1,汇编语言程序设计概述,5,双字节数据赋值伪指令,DW,格式,标号,DW,数据表(双字节,说明:该伪指令与,DB,伪指令的不同之处在于,DW,定义(赋值,的是双字节数据,而,DB,定义(赋值)的是单字节数据,高,8,位数据安排在低地址单元,低,

6、8,位数据安排在高地址单元,6,预留空间定义伪指令,DS,格式,标号,DS,操作数,说明:该伪指令的作用是通知汇编程序,从指定的地址单元开,始(通常由标号指定首地址),保留由操作数(常数或表达,式)规定的字节空间,4.1.2,汇编语言伪指令,9,4.1,汇编语言程序设计概述,7,位地址赋值伪指令,BIT,格式:字符名称,BIT,位地址,说明:该伪指令给字符名称,赋予位地址,片内,RAM,和,SFR,中的,位地址),常用于位操作程序中。例如,FLAG BIT 20H,即将位地址,20H,赋予字符名称,FLAG,8,定义汇编结束伪指令,END,格式,标号,END,说明:汇编结束伪指令,END,的作

7、用是,通知汇编程序,汇编源程,序到此结束,在一个汇编程序中,只允许出现一条,END,伪指,令,且必须安排在整个源程序的末尾处,4.1.2,汇编语言伪指令,10,4.1,汇编语言程序设计概述,4. 2,基本程序结构,1,顺序结构程序,2,分支结构程序,3,循环结构程序,4,子程序,5,中断程序,基本程序结构,11,4. 2,基本程序结构,顺序结构是各类程序中最简单的,也是最基本的,程序结构。顺序结构程序的特征是,整个程序段没有,任何转移指令,主要由数据传递类指令和数据运算,类指令组成,通常用于执行数据传送和较为简单的,算术或逻辑运算任务,4.2.1,顺序结构,12,4. 2,基本程序结构,例,4

8、-1,将内部,RAM,中,20H,单元和,30H,单元的无符号数,相加,存入,R0,高位)和,R1,低位)中。源程序如下,MOV A,20H,取出被加数,ADD A,30H,两数相加,MOV R1,A,低位存入,R1,CLR A,ADDC A,00H,取进位标志,MOV R0,A,高位存入,R0,RET,4.2.1,顺序结构,13,4. 2,基本程序结构,分支结构程序利用,条件转移指令,使程序在执行,某一指令后(产生测试条件),根据所规定的条件,满足与否改变其后程序执行的顺序(产生分叉,即,根据判断条件的成立与否来确定程序的走向,分,支结构程序的特征是程序段中有控制转移类指令,条件转移指令,依

9、据程序分叉的数目,可将分支结构程序细分为,单分支选择结构,和,多分支选择结构,两类,4.2.2,分支结构,14,4. 2,基本程序结构,1,单分支选择结构,当程序的判断仅有两个出口(分叉),即两者选一时,称为,单分支结构。通常用条件判断指令来选择并确定程序的出口,例,4-3,设内部,RAM 40H,和,41H,单元中存放,2,个,8,位无符号二进制,数,试编程找出其中的大数存人,30H,单元中。源程序如下,MOV A,40H,CJNE A,41H,LOOP,取,2,个数进行比较,LOOP: JNC LOOP1,根据,CY,值,判断单分支出,MOV A,41H ;41H,单元中是大数,LOOP1

10、: MOV 30H,A ;40H,单元中是大数,RET,4.2.2,分支结构,15,4. 2,基本程序结构,2,多分支选择结构,当程序的判别部分有两个以上的出口(分叉)时,称为多分支选择结构,例,4-4,设变量,X,的值存放在内部,RAM,的,30H,单元中,编程求解下列函数式,将求得的函数值,Y,存人,40H,单,元,X,1,X100,Y,0,10X100,X,一,1,X10,4.2.2,分支结构,16,4. 2,基本程序结构,MOV A,30H,取自变量,X,值,CJNE A,10,LOOP,与,10,比较,A,中值不改变,LOOP,JC LOOP2,若,X 10,转,LOOP2,CJNE

11、 A,100,LOOP1,与,100,比较,LOOP1: JNC LOOP3,若,X100,转,LOOP3,MOV 40H,00H,因,10X100,故,Y=0,SJMP EXIT,LOOP2: DEC A,因,X10,故,Y=X,一,1,MOV 40H,A,SJMP EXIT,LOOP3: INC A,若,X100,故,Y=X,1,MOV 40H, A,EXIT,RET,17,4. 2,基本程序结构,在程序设计中,遇到一段程序需要多次重复执行的情况,通常应该采用循环结构程序,1,循环结构程序组成,循环结构程序由初始化、循环处理、循环控制和循环结束,4,部分组成,1,初始化部分,初始化部分设置

12、循环处理之前的初始状态,如,循环次数,变量初值、地址指针初值,等,2,循环处理部分,循环处理部分又称,循环体,是,重复执行的数据处理程序段,它是循环程序的,核心部分,功能主体,4.2.3,循环结构,18,4. 2,基本程序结构,3,循环控制部分,控制部分,控制循环继续与否,4,结束部分,结束部分对循环程序全部执行结束后的结果进行,分析、处理和保存,循环结构程序一般分为,单重循环,和,多重循,环,两类,循环次数的控制有多种方式,当循环次,数已知时,可采用循环次数计数器控制循环;若循,环次数未知时,可按条件满足与否控制循环,4.2.3,循环结构,19,4. 2,基本程序结构,2,循环程序设计,在一

13、个循环程序的循环体中不包含另外的循环结构称为单重,循环,例,4-5,设某字符串以回车符,0DH,为结束标志,并存放在,内部,RAM40H,单元开始的连续存储单元之中,编写测试字符,串长度的汇编语言程序,编程思路,为测试字符串,0DH,的长度,应使用逐,个字符依次与回车符,ODH,比较的方法。为此需要设一个字,符串指针和一个长度计数器,字符串指针用于指定字符,长,度计数器用于累加字符串的长度。如比较不相等,则长度计,数器和字符串指针都加,1,以继续往下比较;如果比较相等,则表示该字符为回车符,字符串结束,长度计数器的值就是,字符串的长度,4.2.3,循环结构,20,4. 2,基本程序结构,2,循

14、环程序设计,程序如下,MOV R7,0FFH,设长度计数器初值,MOV R0,3FH,字符串指针,初值,LOOP:INC R7,INC R0,CJNE,R0,ODH,LOOP,RET,4.2.3,循环结构,21,4. 2,基本程序结构,4.2.4,子程序结构,在编写程序过程中,如果遇到在,几个程序段中都需要执行某段相,同程序的情况(功能独立),为,减少编程工作量和节省程序存储,空间,就应该采用子程序结构,将重复执行的相同程序段编写成,为一个子程序,功能子程序,返回,调用,断点,子程序,主程序,22,4. 2,基本程序结构,MAIN:,进入主程序,MOV R0,#03H,设置入口参数(延时,1,

15、ACALL SUBPRO,调用子程序,子程序返回,继续执行主程序,子程序入口地址(子程序名称,SUBPRO,功能:延时子程序(延时时间由,R0,初值设置,入口参数,R0,内存放延时计数初值,出口参数:无,使用寄存器,R0,R1,SUBPRO,MOV R1,03H,DJNZ R1,DJNZ R0,SUBPRO,RET,子程序返回,END,4.2.3,子程序结构,23,4. 2,基本程序结构,单片机中断程序设计主要有以下三个方面,1,中断向量设置,2,中断初始化,3,中断服务程序,4.2.5,中断程序结构,24,4. 2,基本程序结构,例,4-7,设,89C51,单片机外中断,0,EX0,下降沿有

16、效,每次进,入中断服务程序,要求将,89C51,单片机的,P1.7,P1.0,取反,主程序如下,ORG 0000H,STAR,AJMP MAIN,主程序原始入口,ORG 0003H,外部中断,0,中断向量,AJMP EXTR,跳转到,EX0,中断服务子程序实际入,口地址,ORG 0030H,MAIN,SETB IT0,主程序实际入口,边沿触发设置,SETB EX0,外部中断,0,允许,SETB EA,总中断允许,HERE,AJMP HERE,等待再次进入中断服务程序,4.2.5,中断程序结构,25,4. 2,基本程序结构,中断服务子程序,ORG 1200H,EXTR,PUSH PSW,保护现场

17、,CPL A,累加器,A,数据取反,MOV P1,A,数据输出至,P1,端口,POP PSW,恢复现场,RETI,中断返回,4.2.5,中断程序结构,26,4.3,汇编语言程序设计实践,汇编语言程序设计的一般步骤如下,建立数学模型,用适用的数学方法描述所需要解决的问,题,确定算法,将数学模型转化为适合单片机处理(顺序执,行)的形式,采用绘制程序流程图等方法表示程序设计的思,路和依据,编写源程序,采用模块化设计方法,合理划分功能模块,分配存储器和,I/O,端口(依据硬件电路)等资源,确定各模块,内各程序段的结构,编写源程序文件,汇编及调试,在集成开发环境的支持下,汇编语言源程,序经汇编生成目标程

18、序文件,并通过调试以及对运行结果的,分析,修正源程序中的错误,达到预期的设计目标,27,所谓查表,就是根据变量,x,在表格中查找,y,使,y,f(x,函数值,y,事先根据变量,x,的取值范围计算出,并按一定规律编,成表格存放在计算机的程序存储器中。当用户程序中需要用,这些数据时,直接按编排的索引值,或程序号,寻找答案。这,样编写的程序称为查表程序。查表程序是一种常用程序,广,泛应用于,LED,显示器控制,智能化仪表控制,打印机打印,以,及,数据转换,等功能程序中,具有程序简单、执行速度快等优,点。查表程序有多种结构形式,下面举例介绍一种常用的查,表程序,4.3.1,查表程序,4.3,汇编语言程

19、序设计实践,28,4.3.1,查表程序,例,4-8,将,16,进制数转换成,ASCII,码的子程序。假设,16,进制数存放在,R0,中低,4,位,要求将转换后的,ASCII,码送回到,R0,中,设计思路:己知,0-9,的,ASCII,码为,30H,一,39H,A,F,的,ASCII,码为,41H,一,46H,对十六进制数而言,0-F,是连续的,而对应的,ASCII,码不连续,查表方法对解决此类问题十分有,效。根据题意,子程序的入口参数和出口参数均通过,R0,传,递,表中所有的值都是单字节,表格长度为,16,字节,4.3,汇编语言程序设计实践,29,查表子程序,MOV A,R0,读取主程序通过,

20、R0,传送的十六进制数,ANL A,0FH,屏蔽高,4,位,取出低,4,位,ADD A,02H,设置变址值(依据表首地址与查表指,令所处位置,MOVC A,A+PC,查表指令(获得对应的,ASCII,码,MOV R0,A,通过,R0,将查表结果传递给主程序,RET,TAB:DB 30H,31H,32H,33H,34H,35H,36H,37H,DB 38H,39H,41H,42H,43H,44H,45H,46H,程序中因为,MOVC A,A+PC,指令与表格首址相隔两个字,节,故变址调整值为,2,程序中对应变量,x,的函数值,y,为单字节,4.3.1,查表程序,4.3,汇编语言程序设计实践,30

21、,在,51,系列单片机指令集中有单字节的算术运算(加,减、乘、除)指令,但在实际程序设计中经常会遇到,多,字节算术运算问题,需要通过编制专门的功能子程序解,决此类问题,例,4-9,多字节无符号数加法运算。假设,R0,中存放被,加数低位字节地址指针,R1,中存放加数低位字节地址指,针,R2,中存放字节数,多字节算术运算一般从低字节,低位)到高字节(高位)的顺序依次进行,4.3.2,算术运算程序,4.3,汇编语言程序设计实践,31,汇编源程序如下,ADDBIN,CLR C,LOOP1: MOV A,R0,取被加数,ADDC A,R1,两数相加,带进位,MOV R0,A,INC R0,INC R1,

22、DJNZ R2,LOOP1,未加完转,LOOP1,JNC LOOP2,无进位转,LOOP2,MOV R0,0lH,RET,LOOP2: DEC R0,RET,4.3.2,算术运算程序,4.3,汇编语言程序设计实践,32,例,4-10,BCD,码多字节加法运算。假设,R0,中存放被加数,低位字节地址指针,R1,中存放加数低位字节地址指针,R2,中存放字节数,BCDADD: MOV 20H,R0,MOV 23H,R2,CLR C,LP0: MOV A,R0,取被加数,ADDC A,R1,两数相加,DA A,十进制调整,MOV RO,A,INC R0,指针加,1,DJN2 R2,LP0,做完加法否,

23、4.3.2,算术运算程序,MOV R2,23H,JNC RETURN,有无进位,MOV R0,01H,INC R3,RETURN: MOV R0,20H,RET,4.3,汇编语言程序设计实践,33,例,4-11,如,图,4-2,所,示,MCS-51,单片机的,P1,作为,输出端口,连接,8,只发光二,极管。按该电路工作原理,P1,口各位输出,0,时,将,发光二极管点亮,P1,口各,位输出,1,使发光二极管,灭。分析下述汇编程序运,行后,8,个发光二极管点亮,的规律,4.3.3 I/O,接口控制程序,VCC,MCS51,P1.0,P1.1,P1.2,P1.3,P1.4,P1.5,P1.6,P1.

24、7,图,4-2 P1,口驱动,LED,示意图,4.3,汇编语言程序设计实践,34,主程序,LP,MOV P1,7EH,LCALL DELA,Y,MOV P1,0BDH,LCALL DELA,Y,MOV P1,0DBH,LCALL DELA,Y,MOV P1,0E7H,LCALL DELA,Y,MOV P1,0DBH,LCALL DELA,Y,MOV P1,0BDH,LCALL DELA,Y,SJMP LP,子程序,DELA,Y,MOV R2,0FAH,L1,MOV R3, 0FAH,L2,DJNZ R3,L2,DJNZ R2,L1,RET,4.3.3 I/O,接口控制程序,35,例,4-12,

25、按照图,4-2,所示的电路,试编写控制发光二极管指,示灯移位的程序,要求,8,个发光二极管依次亮一个,循环,左移,一个一个地亮,直至循环。相关源程序如下,MOV A,7FH,L1,MOV P1,A,RL A,LCALL DELAY,与例,4-11,的延时程序相同,SJMP Ll,4.3.3 I/O,接口控制程序,4.3,汇编语言程序设计实践,36,一个函数的定义由类型、函数名、参数表和函数体四部分,组合而成。一个函数在程序中可以三种形态出现:函数定,义、函数调用、函数说明,C51,函数的一般格式为,类型,函数名(参数表,参数说明,数据说明部分,注释,执行语句部分,4.4.1 C51,程序结构,

26、4.4,面向,51,单片机的,C,语言程序,37,4.4.2 C51,数据类型,数据类型,位型,bit,字符型,char,整型,int,长整型,long,浮点型,float,双精度浮点型,double,数组类型,array,结构体类型,struct,共用体,union,枚举,enum,基本类型,构造类型,指针类型,空类型,1,数据类型,38,KEIL C51,编译器支持的数据类型、长度和值域如表,4-1,所列,数据类型,长度,Byte,值域,Bit,Unsigned char,Signed char,Unsigned int,Signed int,Unsigned long,Signed lo

27、ng,Float,Double,1,1,2,2,4,4,4,0,1,0,255,128,127,0,65 535,32 768,32 767,0,4 294 967 295,2 147 483 648,2 147 483 647,1.176E-38,3.40E+38(6,位数字,1.176E-38,3.40E+38(10,位数字,表,4-1 KEIL C51,数据类型,4.4.2 C51,数据类型,1,数据类型,39,C,语言的数据有,常量,变量,之分,常量是在程序运行的,过程中,其值不能改变的量,变量是在程序运行中,其值可,以改变的量,一个变量由两部分构成:变量名和变量值,每,一个变量都有一

28、个变量名,在内存中占据一定的存储单元,地址),并在该内存单元中存放该变量的值,常量定义,define CONST 44,定义常量符号,CONST,值为,44,变量定义,char t;,定义字符型变量,变量名为,t,C,语言中习惯上以小写字母定义变量,以大写字母定义,常量。另外由于,51,单片机的寄存器及数据总线为,8,位所以在,定义变量时,应尽可能使用无符号字符型,4.4.2 C51,数据类型,1,数据类型,常量和变量,40,2,C51,数据存储类型,51,系列单片机的程序存储器与数据存储器是分开的,并独立寻址,51,系列单片机共有如下四个存储空间,片内程序存储空间,片外程序存储空间,片内数据

29、存储空间,片外数据存储空间,C,语言编程时在对常量、变量的定义时,要注意不,同功能的常量、变量应存储在不同的存储区,在定义,变量或常量时要定义成不同的存储类型,data, bdata,idata, pdata, xdata, code,4.4.2 C51,数据类型,41,存储类型,存储空间,data,bdata,idata,pdata,xdata,code,内部,RAM,低,128,单元,可直接寻址,片内,RAM,位寻址区,内部,RAM,间接寻址,片外,RAM,256,字节,片外,RAM,64KB,代码存储区,64KB,表,4-2 C51,存储类型与单片机存储空间对应关系,4.4.2 C51,

30、数据类型,2,C51,数据存储类型,42,3,特殊功能寄存器的定义,在,51,单片机内部,RAM,的高,128,字节,分散着,21,个特,殊功能寄存器,SFR,,为了能直接访问这些特殊功能,寄存器,KEIL C51,提供一种自主形式的定义方法,此,种方法与标准,C,语言不兼容,只适用于对,8051,系列单片,机进行定义。这种定义的方法引入关键字,sfr,如,sfr TMOD=0 x89,定时,计数器方式控制寄存器地址,为,89H*,sbit,特殊功能位声明,sbit led1=P10,4.4.2 C51,数据类型,43,将其视为,片外数据存储器,的一个单元,利用,define,语句进行,定义,

31、define PORTA XBYTE0 x0020,将,PORTA,定义为外部,I/O,口,地址为,0 x0020*,例,要通过地址,0 x0020,向外部写数据,0 x01,下面分别用汇编语,言和,C,语言编程实现,汇编语言实现,MOV DPTR,#0020H,MOV A,#01H,MOVX DPTR,A,C,语言实现,define PORTA XBYTE0 x0020,PORTA=0 x01,4.4.2 C51,数据类型,4,片外扩展,I/O,口,44,C51,的运算符主要包括算术运算、关系运算、逻,辑运算、位操作运算、自增减运算及复合运算等。其,运算符与表达式与,C,语言要求基本一致,4

32、.4.3 C51,运算符和表达式,4.4.2 C51,数据类型,45,4.4.3 C51,运算符和表达式,运算符分类,运算符,表达式示例,优先关系,高,低,算术运算符,乘法,除法,求余,加法或正值,减法或负值,a+b,a+b)*c,算术运算符,关系运算符,逻辑运算符,赋值运算符,关系运算符,小于,大于,小于或等于,大于或等于,测试等于,测试不等于,c(a+b,a=bc,逻辑运算符,逻辑与,逻辑或,逻辑非,c=ai8;i,循环采集,8,个通道,ad_adr=0,启动,AD,while(ad_over=0,查询转换结束标志,xi=*ad_adr,存储结果,ad_adr,下一通道,void main

33、(void,主函数,static uchar ad10,ad0809(ad,59,60,include,define uchar unsigned char,define uint unsigned int,sbit D0=P10,uint a,void main(,D0=0,a=59000,while(a,D0=1,a=50000,while(a,61,include,delay_10ms(unsigned t,unsigned int i,j,for(i=0;it;i,for(j=0;j1880;j,void main(,while(1,delay_10ms(100,P0=0 xfe,de

34、lay_10ms(100,P0=0 xfd,delay_10ms(100,P0=0 xfb,Delay_10ms(100,P0=0 xf7,delay_10ms(100,P0=0 xef,delay_10ms(100,P0=0 xdf,delay_10ms(100,P0=0 xbf,delay_10ms(100,P0=0 x7f,62,include,52,系列单片机头文件,define uint unsigned int,宏定义,define uchar unsigned char,void delayms(uint,声明子函数,uchar x,声明无符号数原变量,x,占,1B,void m

35、ain(,主函数,P1=0 xfe,赋初值,11111110,while(1,大循环,for(x=0;x8;x,左移,8,次,delayms(500);,延时,500,毫秒,P1=P11;,左移,1,位,左移结束,灯全部亮,for(x=0;x8;x,右移,8,次,delayms(500,P1=P11|0 x80,右移,1,位,并设定最高位为,1,右移结束,灯全部灭,63,无论是单片机汇编语言还是,C,语言编程,都需要借助一个,软件工具,一般也称为开发环境,目前有很多专业的单片机软,件开发工具,下面为读者介绍一种单片机的集成开发环境,Keil uVision2,集成开发环境,Keil,Visio

36、n2,集成开发环境是德国,Keil,公司针对,51,系列单,片机应用系统开发而推出的基于,32,位,windows,环境下,以,51,单片机为开发目标,以高效率,C,语言为基础的集成开发平台,本节主要介绍,Keil C51 V7.20,版,它主要包括,C51,交叉编译器,和,A51,宏汇编,等工具,还内嵌了单片机仿真调试软件,可以让,用户采用,模拟仿真和实时在线仿真,两种方式对目标系统进行开,发。软件仿真时,它可以查看程序变量,内部存储单元。以及,模拟和查看单片机,I/O,口,定时器及中断的工作方式和设置,甚至可以仿真单片机的串行通信,4.5 Keil,Vsion2,集成开发环境,64,双击安

37、装程序,setup,进入安装模式。它与一般软件安,装过程类似。值得注意的是,当出现提示,Install Support,全新安装”和,Update Current Installation,升级安装,时,选择,Install Support,全新安装”。并且在出现提示,Full version,和,Eval version,时,选择,Full version,随后依次点击,Next-Yes,选择安装目录,Next,输入序,列号、姓名、公司”等。安装完成后在,Windows,桌面上会出,现一个,Keil,Vision2,的图标,4.5.1 Keil uVsion2,安装,65,在,Keil uV

38、sion2,支持下开发单片机应用系统软件,一般需要,经过以下的几个过程:创建工程,工程选项卡设置,新建源文,件,添加源文件到工程,编译,仿真调试,下载,4.5.2 Keil,Vsion2,的使用,66,1) Keil C51,Vision2,界面与工程创建(如图,4-8,图,4-8 Keil C51,Vision2,的工作界面,67,创建一个新工程,首先须在菜单栏,Project,菜单中选择,New,Project,选项(补充图,1,,此时会弹出“创建新工程”对话框(补充图,2,,可填入工程名,随后单击保存,创建新工程,补充图,1,68,保存工程项目,Test,补充图,2,69,接着出现选择单

39、片机芯片型号对话框(补充图,3,。本例选择,Atmel,AT89C51,单片机,随后点击“确定”,新工程创建即告完,成,选择芯片型号,补充图,3,70,建立源程序文档,补充图,4,71,点击保存按钮,补充图,5,72,图,4-9,源程序文档加入所建工程项目中,73,图,4-10,工程文件设置,74,Target,选项卡设置,补充图,6,75,Output,选项卡的设置,补充图,7,76,保存文件格式,补充图,8,练习,A,77,添加源程序,补充图,9,78,设定完成后单击“确定”返回主界面,工程文件设置完毕。当工程建立,并设置完成之后,接下来就可以对工程进行编辑(源程序文本)。以下,面简单的汇

40、编源程序为例,ORG 0000H,P1,口输出实验,LJMP START,ORG 0100H,START: MOV A,#0FEH,LOOP: RL A,MOV P1,A,LCALL DELAY,延时,0.1,秒,JMP LOOP,DELAY: MOV R1,#127,延时,0.1,秒,DEL1: MOV R2,#200,DEL2: DJNZ R2,DEL2,DJNZ R1,DEL1,RET,END,79,当源程序文件编辑输入完成之后,单击工具栏保存文,件,随后单击工具栏的编译按钮,对文件进行编译,如果源程序没有语言错误,将会在文件存储目录生成,OBJ,文件,同时如果设置正确,会生成,HEX,文件,并且在,工程主界面下方会出现无语法错误的提示,如图,4-19,

温馨提示

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

评论

0/150

提交评论