《实验1、实验2熟悉软件开发环境及51单片机编程(学生版).docx》由会员分享,可在线阅读,更多相关《实验1、实验2熟悉软件开发环境及51单片机编程(学生版).docx(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、实验1、实验2熟悉软件开发环境及51单片机编程(学生版)实验一、熟悉软件开发环境及51单片机资源认识I/O口的应用与编程计算机的应用是一个系统,这个系统应由两部分组成硬件和软件。硬件是指详细的元器件、电路等,软件则是指程序和数据。假如説硬件是计算机应用系统的基础的话,那么软件则是计算机应用系统的灵魂。计算机原理告诉我们程序和数据是被“装载在计算机存储器中的,从某种意义上讲,认识一个计算机的存储器系统是开发软件所必须的。为了全面认识51系列单片机的存储空间,实验一与实验二列出四个实训单元。在进行完四个实训单元后,要求学生应全面了解51系列单片机的程序存储器ROM、片内随机存储器片内RAM和片外随
2、机存储器片外RAM空间的范围、用处和使用方法等。1.1认识51系列单片机的程序存储器ROM第一部分教学要求一、实验目的:1.认识51系列单片机的程序存储器ROM的空间范围;2.认识汇编指令编码在ROM中存储形式;3.把握指令编码和指令编码所在地址的概念;4.了解51系列单片机的程序存储器ROM固定地址的用处。二、实训平台1.PC机,台/人;2.伟福V3.2版仿真软件或其它51系列单片机仿真软件三、实验报告内容:注:成绩评定等级:优、良、中、及格、不及格第二部分教学内容一、预备知识1.ROM存储器ROM(ReadOnlyMemory)即只读存储器之意,其特点是在计算机正常运行的情况下CPU对RO
3、M存储器只能进行读操作且断电后信息不会丢失,通常用来存储固定不变的程序和数据,如引导程序、基本输入输出系统程序等。ROM按其性能可分为下面几类:(1)掩模工艺ROM它是由芯片制造厂根据ROM要求存储的信息,制造成固定的半导体掩模版生产的。一旦制出成品后,其存储的信息只能读出,不能改变。这种ROM适用于存储固定不变的程序和数据,批量生产时,成本较低。(2)可一次编程PROM允许用户对ROM进行一次编程。(3)可擦除的EPROM允许用户对ROM进行屡次编程,即可擦除。按擦除的方法不同,可分为紫外线擦除的可擦除可编程序只读存储器EPROM(ErasableProgrammableReadOnlyMe
4、mory)和电擦除的电可擦除编程序只读存储器EEPROM(ElectricallyErasableProgrammableReadOnlyMemory)。(4)Flash存储器Flash存储器是在20世纪80年代末逐步发展起来的一种新型不挥发性半导体存储器,它结合了以往EPROM构造简单、密度高和EEPROM在系统的电可擦除性的一些优点,实现了高密度、低成本和高可靠性。Flash存储器和传统存储器的最大区别在于它是按块(Sector)擦除,按位编程,进而实现了快闪擦除的高速度。目前它广泛应用于PCBIOS、数字蜂窝电话、汽车领域和微控制器等很多领域。EPROM、EEPROM、Flash存储器需
5、通过专用的编程器将程序和数据写入其中。2.51系列单片机ROM空间由于5l系列单片机的程序计数器PC是16位的,所以能寻址64KB的程序存储器地址范围。允许用户程序调用或转向64KB的任何存储单元。在5l系列单片机中根据不同的型号,其程序存储器的形式也有所不同。例如:8051单片机在芯片内部设置了4KB掩模版的ROM,8751单片机在芯片内部设置了4KB的EPROM,89C52单片机在芯片内部设置了8KB的Flash存储器,而8031单片机在芯片内部没有设置程序存储器,需要在单片机外部配置EPROM。51系列单片机的EA引脚为访问内部或外部程序存储器的选择端。当EA引脚接高电平常,CPU将首先
6、访问内部存储器,当指令地址超过内部存储器的最大地址时,自动转向片外ROM去取指令。当EA引脚接低电平常(接地),CPU只能访问外部程序存储器。对于8031单片机,由于其内部无程序存储器,故只能采用这种接法。51系列单片机程序存储器的地址从0000H开场编址。程序存储器低端的一些地址被固定地用作特定程序的入口地址:0000H0000H:单片机复位后的程序入口地址;0001H0003H:外部中断0的中断服务程序入口地址;000BH:定时器0的中断服务程序入口地址;:0013H:外部中断l的中断服务程序入口地址;:001BH:定时器1的中断服务程序入口地址;0023H:串行端口的中断服务程序入口地址
7、;002BH:定时器2的中断服务程序入口地址。FFFFH图1.1.1ROM空间示意编程时,通常在这些入口地址开场的二三个单元中,放人一条转移指令,以使相应的服务与实际分配的程序存储器区域中的程序段相对应(仅在中断服务程序较短时,才能够将中断服务程序直接放在相应的人口地址开场的几个单元中)。3.源程序汇编与程序定位伪指令将汇编语言源程序转换为计算机能执行的机器码形式的目的程序的经过叫汇编。汇编常用的方法有两种:一是手工汇编,二是利用计算机汇编。手工汇编时,把程序用助记符指令写出后,通过手工方式查指令编码表,逐个把助记符指令翻译成机器码,然后把得到的机器码程序(以十六进制形式)键入到单片机开发机中
8、,并进行调试。由于手工汇编是按绝对地址进行定位的,所以,对于偏移量的计算和程序的修改有众多不便。通常只要程序较小或条件所限时才使用。机器汇编是在常用的个人计算机上,使用穿插汇编程序将汇编语言源程序转换为计算机能执行的机器码形式的目的程序。汇编工作由计算机自动完成。生成的目的程序由PC机传到开发机上,经调试无误后,再固化到程序存储器ROM中。机器汇编与手工汇编相比具有极大的优势,是汇编工作的首选。本教材选用的伟福仿真软件就可进行机器汇编。伪指令不是单片机执行的指令,没有对应的机器码,仅是用来对汇编经过进行某种控制。常用的伪指令有:1定位伪指令ORG格式:标号:ORGl6位地址功能:规定程序块或数
9、据块存放的起始地址。如:ORG8000HSTART:MOVA,#30H该语句规定第一条指令从地址8000H单元开场存放。标号START的值为8000H。通常,在一段汇编语言源程序的开场,都要设置一条ORG伪指令来指定该程序在存储器中存放的起始位置。若省略ORG伪指令,则该程序段从0000H单元开场存放。在一个源程序中,能够屡次使用ORG伪指令,以规定不同程序段或数据段存放的起始地址,但要求16位地址值由小到大依序排列,不允许空间重叠。(2)汇编结束伪指令END格式:标号:END表达式功能:结束汇编。汇编程序碰到END伪指令后即结束汇编。处于END之后的程序,汇编程序不予处理。(3)字节数据定义
10、伪指令DB格式:标号:DB8位字节数据表功能:从标号指定的地址单元开场,在程序存储器中定义字节数据。字节数据表能够是一个或多个字节数据、字符串或表达式。该伪指令将字节数据表中的数据按从左到右的顺序依次存放在指定的存储单元中。一个数据占一个存储单元。4.伟福V3.2版仿真软件使用见后续实验讲义。二、实训程序ORG0000H*AJMPBEGIN;转初始化程序段ORG0003HLJMPPINT0;转外部中断0的中断服务程序ORG0100HBEGIN:SETBEA;初始化程序段SETBEX0SETBPX0SETBIT0MOVR0,#03HMOVA,#0A8HMOVR0,AMOVR1,#20HMOVR2
11、,#31HMOVR0,#00HMOVA,R1MOVXR0,AMOVR0,#03HMOVA,#01HMOVXR0,ACLRAMOVXR0,A*LOOP:SJMP$ORG2000HPINT0:MOVR0,#00H;外部中断0的中断服务程序INCR1MOVA,R1MOVXR0,AMOVR0,#02HMOVA,#01HMOVXR0,ACLRAMOVXR0,A*DJNZR2,NEXTCLREX0SJMPDONENEXT:SETBEX0DONE:RETIEND三、实训将以上实训程序通过伟福V3.2版仿真软件或其它51系列单片机仿真软件输入到计算机中,并以*.ASM文件名保存,然后进行汇编。汇编成功后,通过
12、伟福V3.2版仿真软件的“窗口(W)数据窗口(D)CODE菜单观察程序存储器ROM中的内容,理解“地址、“指令代码的概念,并了解51系列单片机程序存储器ROM空间的分布特点。注:本节实训不要求学生详细读懂上述程序的详细功能。详细步骤如下:(1)打开伟福V3.2版仿真软件,选择伟福软件模拟器。如图1.1.2所示图1.1.2(2)选择“文件(F)新建文件(N),输入实训程序。如图1.1.3所示当前位置:文档视界实验1、实验2熟悉软件开发环境及51单片机编程(学生版)实验1、实验2熟悉软件开发环境及51单片机编程(学生版)当前位置:文档视界实验1、实验2熟悉软件开发环境及51单片机编程(学生版)实验
13、1、实验2熟悉软件开发环境及51单片机编程(学生版)当前位置:文档视界实验1、实验2熟悉软件开发环境及51单片机编程(学生版)实验1、实验2熟悉软件开发环境及51单片机编程(学生版)第一部分教学要求一、实验目的1、认识51系列单片机片内随机存储器片内RAM的空间范围;2、认识51系列单片机片内随机存储器的区域划分;3、把握字节地址和位地址的概念;4、了解R0R7寄存器与字节地址的关系。二、实训平台1、PC机,台/人;2、伟福V3.2版仿真软件或其它51系列单片机仿真软件三、实验报告内容注:成绩评定等级:优、良、中、及格、不及格第二部分教学内容一、预备知识1.RAM存储器RAM(RandomAc
14、cessMemory)即随机访问存储器之意,RAM存储器是一种既可读又可写的易失性存储器,其特点是断电后所存储的信息将全部丢失,通常用来暂存运行的程序和数据。但在单片机应用系统中RAM存储器仅被用来暂存运行的数据。2.51系列单片机片内随机存储器的区域划分51系列单片机片内随机存储器根据型号的不同,其存储容量为128B或256B。典型芯片的容量为128B,被划分为工作寄存器区、位寻址区和通用RAM区等三个区域。如图1.2.1所示。其中单片机片内RAM中,最低的32个字节又被分成4个工作寄存器组,每组占8个字节。即:寄存器0组:地址00H一07H;寄存器1组:地址08H一0FH;寄存器2组:地址
15、10H一17H;寄存器3组:地址18H1FH。每个工作寄存器组都有8个寄存器,分别称为:R0,R1,R7。程序运行时,只能有一个工作寄存器组作为当前工作寄存器组。当前工作寄存器组的选择是由特殊功能寄存器中的程序状态字寄存器PSW的RSl、RS0两位决定的。能够对这两位进行编程,以选择不同的工作寄存器组。工作寄存器组与RSl、RS0的关系及地址如表2l所示。图1.2.151系列单片机片内RAM区域划分组号RS1RS0R0R1R2R3R4R5R6R700000H01H02H03H04H05H06H07H10108H09H0AH0BH0CH0DH0EH0FH21010H11H12H13H14H15H
16、16H17H31118H19H1AH1BH1CH1DH1EH1FH在工作寄存器区之后的20H2FH的16个字节为位寻址区,共有128位。每位都有相应的位地址,范围是00H7FH。利用位寻址,能够对被寻址的位进行位操作。在实际应用中常把各种程序状态标志、位控制变量设在位寻址区内。对于该区未用到的单元可以以作为通用RAM使用。位寻址区之后的30H7FH共80个字节为通用RAM区。这些单元有两种用处:其一能够作为数据缓冲器使用;其二设置堆栈区。51系列单片机的堆栈一般设在30H7FH的范围内。栈顶的位置由SP寄存器指示。系统复位时SP的初值为07H,在系统初始化时能够重新设置。3.寻址方式与汇编指令
17、立即数寻址:例MOV30H,#20H;将数据20H送入30H单元中;直接寻址:例MOV30H,20H;将20H单元中的数据送入30H单元中;间接寻址:例MOVR0,30H;将30H单元中的数据送入以R0寄存器中的内容为地址的存储单元中;寄存器寻址:例MOVR0,#20H;将数据20H送入R0寄存器中;位寻址:例SETB00H;将位地址为00H的位置1。二、实训程序ORG0000HAJMPBEGINORG0030HBEGIN:MOVR0,#00H;0=R0MOVR1,#11H;11H=R1MOVR6,#66H;66H=R6MOVR7,#77H;77H=R7MOVR0,01H;将01单元中的数据=
18、R0MOVR6,07H;将07单元中的数据=R6SETBRS0;设置寄存器组为一组,RS1,RS0=01MOVR0,00H;将00单元中的数据=寄存器一组中的R0MOVR1,01H;将01单元中的数据=寄存器一组中的R1MOVR7,07H;将07单元中的数据=寄存器一组中的R7SETBRS1;设置寄存器组为三组,RS1,RS0=11MOVR6,00H;将00单元中的数据=寄存器三组中的R6MOVR7,17H;将17单元中的数据=寄存器三组中的R7MOV20H,#00H;0=20H单元MOV2FH,#0FFH;FFH=2FH单元SETB00H;位地址00H置“1SETB07H;位地址07H置“1
19、CLR78H;位地址78H清“0CLR7FH;位地址7FH清“0MOV31H,#31H;31H=31H单元MOV32H,#32H;32H=32H单元CLRRS0;CLRRS1;设置寄存器组为0组,RS1,RS0=00PUSH00H;将00单元中的数据入栈MOVSP,#30H;重新设置栈地址为30HPUSH00H;将00单元中的数据入栈PUSH01H;将01单元中的数据入栈POP00H;弹出栈顶数据至00单元POP01H;弹出栈顶数据至01单元AJMP$;三、实训1.阅读以上程序,正确理解每一条指令功能。2.将以上实训用程序通过伟福V3.2版仿真软件或其它51系列单片机仿真软件输入到计算机中,并以*.ASM文件名保存,然后进行汇编。3.汇编成功后,分别将光标移至标记所在行,通过伟福V3.2版仿真软件的“执行(R)设置/取消断点(B)菜单对标记所在行设置断点。如图1.2.2所示。4选择伟福V3.2版仿真软件的“执行(R)复位(E)菜单。使程序从第一条指令开场执行。当前位置:文档视界实验1、实验2熟悉软件开发环境及51单片机编程(学生版)实验1、实验2熟悉软件开发环境及51单片机编程(学生版)