1、RAM用来存放运算的中间结果和采集的数据等。 51系列单片机P0、P2口作为16位地址总线,可在片外分别扩展64K8位EPROM和64K8位RAM。共计264K存储器。从逻辑的角度看,存储器地址空间可分为三类:1 片内外统一编址0000HFFFFH的64K字节的ROM空间,采用16位地址。2 片外64K字节RAM地址空间。地址也从0000HFFFFH,采用16位地址。3 片内256字节RAM地址空间,采用8位地址。这256字节被分成两个区域:00H7FH地址是真正的RAM区,CPU可以读、写各种数据。而80HFFH地址是专门用作特殊功能寄存器的区域,共安排了21个8位特殊功能寄存器SFR。MC
2、S-51系列单片机存储器结构如图1-2所示。由图1-2可见,上述三个存储器地址空间有重叠区,为区别这三个不同的逻辑空间,MCS-51的指令系统设计了三种不同的数据传送类指令操作码加以区别:(1) CPU访问片内外64K地址空间ROM用MOVC指令;(2) CPU访问片外64K地址空间RAM用MOVX指令;(3) CPU访问片内RAM的256个字节地址空间用MOV指令。3定时器/计数器51系列弹片机有两个定时器/计数器,即定时器/计数器0和1。它们既可以编程作为定时器,也可以编程作为计数器使用。若计数计的是内部晶振的驱动时钟,它就是定时器;若计数计的是输入引脚的脉冲信号,它就是计数器。定时器和计
3、数器都是加1计数的,定时器实际上也是以计数方式工作,只是它对固定频率的脉冲计数,由于脉冲周期固定,由计数值可以计算出时间。用于控制和确定各定时器/计数器的功能与操作模式的寄存器有:模式控制寄存器TMOD;控制寄存器TCON。4中断中断是指当计算机执行正常程序时,由于系统中出现某些需要紧急处理的情况或特殊请求时,计算机打断当前正在运行的程序,转而对这些紧急情况进行处理,处理完毕后,计算机返回原来被打断的运行程序继续执行。终端控制方式使CPU在平时可以利用充分的时间去处理主要事件,而当外界有特殊情况需要处理时CPU也不会错过,以次提高工作效率。在编制实时性要求较高的程序时,采用中断方式是非常必要的
4、。51系列单片机有5个中断源,可分为2个优先级,每个中断源的优先级都是可编程的。51系列单片机的5个中断源是: 外部中断请求0,由输入; 外部中断请求1,由 片内定时器/计数器0溢出中断请求; 片内定时器/计数器1溢出中断请求; 片内串行口发送/接受中断请求。控制中断的寄存器主要有:中断允许寄存器IE;中断优先级寄存器IP。关于这两个寄存器的用法请同学们参考有关的书籍1.3 MCS-51系列单片机指令系统MCS-51系列单片机指令系统共有111条指令,其中单字节指令49条,双字节指令45条,三字节指令17条。从指令执行的时间看,单机器周期(12个震荡周期)指令64条,双机器周期(24个震荡周期
5、)指令45条,只有乘、除2条指令的执行时间为4个机器周期(48个震荡周期)。若晶振为12MHZ,则指令功能的执行时间分别为1s,2s,4s。MCS-51的硬件结构中有一个布尔处理机,指令系统中相应地设计了一个处理布尔变量的指令子集。在这一指令子集中,有丰富的位操作指令,这些指令与位操作部件结合在一起,构成了一个比较完整的位处理器,即布尔处理机。有了位处理器就可以把大量的硬件组合逻辑用软件来代替,方便地用于各种逻辑控制。具体的指令助记符及含义请同学们参考有关的书籍。1.4 MCS-51系列单片机的引脚及功能在MCS-51系列单片机中,各种型号芯片的引脚功能是互相兼容的,其封装形式一般是采用双列直
6、插式的,也有采用方形的封装方式的。图1-3是双列直插式芯片的引脚图。这40条引脚按功能分可分成三大部分:1 电源及时钟VSS(20) 电源地线,工作时接地;VCC (40) 电源,外接+5V;XTAL1 (19) 和XTAL2 (18) 外接晶体引脚。在使用单片机内部振荡电路时,用来外接石英晶振和微调电容,在使用外部脉冲时,用来输入时钟脉冲。2 控制或与其它电源复用引脚RST/VPD (9) 此脚有两个功能:第一功能是上电复位信号输入线。当RST引脚上出现两个机器周期的高电平时将使单片机复位。第二功能是备用电源输入端。当主电源发生故障时,VPD将为RAM提供备用电源,保证RAM信息不丢。(29
7、) 外部程序存储器ROM的读选通信号。在CPU访问外部程序存储器时, = 0 的有效信号自动生成。ALE/ (30) 此引脚有两个功能:第一功能是外部地址低8位锁存有效信号输出端。在CPU访问外部存储器时,ALE的输出用于锁存地址的低位字节。即使不访问外部存储器,ALE端仍以不变的频率周期性地出现正脉冲信号,此频率为震荡频率的1/6。因此,它可作为对外输出的脉冲,或用于定时的目的。第二功能是对8751片内EPROM编程时的编程脉冲输入端。/VPP(31) 此引脚也是双功能脚。第一功能是片外ROM选择信号输入端。当= 0时,CPU从片外ROM读取指令;= 1时,CPU从片内ROM读取指令。第二功
8、能VPP是对片内有EPROM的8751来说,此引脚接21V的编程电源VPP。3 I/O口线P0口 8位三态双向口。在单片机外扩存储器或I/O接口时,作为地址总线低8位A7A0和数据总线D7D0。P0口能驱动8个TTL门电路,但在驱动MOS电路时若作为地址/数据总线使用可以直接驱动而不必外加上拉电阻。对8031单片机来讲,P0口只能做地址/数据复用总线,而对于有内部ROM的单片机,P0口可作通用I/O端口,此时在驱动NMOS电路时要外接上拉电阻。P1口 8位准双向并行I/O口。P1口能驱动4个TTL门电路。并且不需外加电阻就能驱动MOS电路。P2口 8位准双向口。作为地址总线高8位A15A8,与
9、P0一起形成16位地址总线。驱动能力同P1、P2口也能做通用I/O端口使用。P3口 8位准双向口。P3口是一个多用途端口,除可作通用I/O端口外,它的每条引脚还有第二功能,这些功能见表1-1。其驱动能力同P1。P3口的第二功能 表1-1口线第二功能标记第二功能注释P3.0RXD串行数据输入端P3.1TXD串行数据输出端P3.2 外部中断0请求输入端 P3.3 外部中断1请求输入端P3.4T0 定时器/计数器0的外部输入端P3.5T1 定时器/计数器1的外部输入端P3.6 外部数据存储器写选通端P3.7 外部数据存储器读选通端第二章 伟福仿真器简介2.1 功能简介伟福仿真器是南京伟福实业有限公司
10、推出的单片机开发装置,所谓单片机开发装置是指能够承担单片机开发(调试、测试、软件编写等)工作的仪器或系统。伟福仿真器的主要功能如下:1主机+仿真头组合通过更换不同的仿真头可对不同类型的单片机进行仿真。2双平台仿真器支持DOS和WINDOWS版本。其中WINDOWS版本功能强大,支持ASM、C、PLM语言混合编程;有项目管理功能,为用户的资源共享、课题重组提供方便;有丰富的窗口显示方式,多方位、动态地显示仿真的各种过程。3双工作模式可工作于软件模拟仿真(不要仿真器也能模拟仿真)和硬件仿真两种状态下。4双CPU结构,100%不占用户资源。全空间硬件断点,不受任何条件限制。5双集成环境编辑、编译、下
11、载、调试全集中在一个环境下,统一的界面,包含一个项目管理器、一个编辑器,为编译和调试提供了方便。2.2 操作步骤如上所述,伟福仿真软件可对文件进行编辑、编译、仿真等,在编译中可提示编译中的错误;有单步运行功能,可及时观察指令的执行情况;在调试界面的窗口可看到地址数据、总线状态及I/O端口数据传送情况等。可在无仿真器的情况下进行软件仿真,使用较为方便。使用伟福仿真器的操作步骤如下:1在开始菜单的程序中或桌面上双击“WAVE”,出现如图2-1所示窗口:2单击“好”。3在菜单栏中单击“文件”并选择下拉菜单中的“新建文件”选项,或用快捷键 ,如图2-2所示。 4在右边空白处编写程序,编写完后,再在“文
12、件”的下拉菜单中选择“保存文件”,此时要注意,在输入文件名时必须写入后缀asm、c或plm,分别对应汇编文件、C文件或PLM/51文件。注意:用C编写的文件,文件名不能用中文,也不能存在中文名的子目录中,且字长不能超过个字符。5程序编写完并保存后,首先单击菜单栏中的“仿真器”,在下拉菜单中选择“仿真器设置”,出现如图2-3所示的窗口,单击“仿真器”选项,选择K51/T或K51/S (由仿真器的型号决定),然后单击“语言”选项,在“编译器选择”中,选择“伟福汇编器”,若使用C编写的文件,则要选择“Keil c (V4或更低),英特尔PL/M51,英特尔汇编器”,然后单击“好”。6单击“项目”,选
13、择“编译”,或用快捷键 ,编译后的程序如图2-4上面右边窗口所示。同时观察信息窗口,若无错误,信息窗口显示如图2-4下面窗口所示信息,若有错误,按信息窗口中的信息提示改正错误,直至正确为止。7合上伟福仿真器电源,单击“仿真器”,在下拉菜单中选择“仿真器设置”,出现如图2-5所示窗口,单击“通信设置”,将“使用伟福软件模拟器”前面的“”去掉,再在端口选择中选择仿真器与计算机连接的串口号,单击“好”。 8将仿真器与计算机连接好,外部电路连接好,在图2-6所示的窗口中单击“执行”,在下拉菜单中选择“全速执行”,或使用快捷键 ,便可在硬件电路中看到程序运行的结果。 以上是使用伟福仿真器进行软、硬件仿真
14、的大致过程,伟福仿真器还有许多功能,在使用中也还有许多的快捷键,详情请同学们参阅伟福仿真器的说明书。注:伟福仿真器的说明书及应用可登陆其网站下载,网址为: www.wave-第三章 单片机基本系统试验实验一 P1口作为输出口实验一 实验目的 了解P1口作为输出方式使用时,CPU对P1口的操作方式。二 实验设备1 计算机一台;2 AY-USB-51F开发板一套;三 实验原理P1口作为8位准双向口,每一位可独立定义为输入/输出。CPU对P1的操作可以是字节操作,也可以是位操作。实验中P1口接8个发光二极管,通过编写不同的程序控制8个发光二极管的不同状态,以了解CPU对P1口的操作指令。四 实验内容
15、与步骤 (一)编制8个发光二极管右移循环点亮程序并运行。1编写程序,编写完后在伟福仿真器软件模拟状态下,进行软件仿真(参考第二章仿真器操作步骤的5、6),软件仿真成功后,往下进行。若仿真有问题。按所提示的问题进行修改,直至成功。2将实验板连接好后,进行写器件操作,观察运行结果,若有问题再进行调试。每次写新的程序前,要先擦除芯片。3参考程序(1) 汇编语言编写的右移循环点亮程序ORG 0000HIOO: MOV A,#01H ;选第一个发光管L1: MOV P1,A ;送P1口ACALL DL ;调延时RR A ;右移AJMP L1DL: MOV R7,#00HDL1: MOV R6,#0FFH
16、 ;延时DL6: DJNZ R6,DL6DJNZ R7,DL1RET(2) C语言编写的隔一个右移循环点亮程序(注意:此程序中的P要大写)#includevoid delay (int ms) /延时子程序。int i,j;for (i=0;i=ms;i+)for (j=o;j=120;j+);void main (void)while (1)P1=0xfe; delay (300); /按位控制每个发光二极管,使其间隔一个循环点亮。P1=0xfa;P1=0xea; delay(300);P1=0xaa;P1=0xfd;P1=0xf5;P1=0xd5;P1=0x55; (二)编制8个发光二极管
17、隔两个右移循环点亮程序并运行。按图3-1接线。按(一)的相应步骤编写并运行程序。 (三)编制8个发光二极管同时亮 延时 灭的循环程序并运行。实验二 定时器/计数器实验学习单片机的定时/计数功能,掌握怎样通过修改软件来改变定时器的工作模式及定时时间。2AY-USB-51F开发板一套;1 概述MCS-51内部有两个可编程的16位定时器/计数器T0、T1。可以工作于定时器方式或外部事件计数器方式。工作方式的选择由特殊功能寄存器TMOD中的M1M0控制位决定。工作于定时器方式时,寄存器内容每个机器周期增量一次。所以可以把定时器看作是在对机器周期计数。一个机器周期由12个振荡周期组成,则计数速度是振荡频
18、率的1/12。当采用12MHZ的晶振时,计数速率为1MHZ。 工作于“计数器”方式时,计数脉冲来自相应的外部输入引脚,如果在P3.4或P3.5引脚上有个“1”到“0”的跳变,则寄存器内容增量一次。需要用两个机器周期,即24个振荡周期,才能识别一个从“1”到“0”的跳变,因此,最高计数速率为振荡频率的1/24。当采用12MHZ的晶振时,最高计数频率为500KHZ。2定时器/计数器的计数初值计算设系统晶振频率为12MHZ,则计数频率为1MHZ,对于不同的工作模式,定时器最大时间间隔不同,现以模式0为例,说明定时器/计数器的计算方法。模式0为13位定时器,它的最大时间间隔为2131s =8.192m
19、s,当需要定时时间为yms时,计数寄存器的初值x按下面的公式计算:(213-x)1s = y1000s 例:在模式0下,要求用定时器/计数器0产生定时0.5ms,求计数寄存器的初值x。解:带入公式得: (213-x)1s = 0.5求得x = 7692 = 1111000001100B。高8位赋给TH0,低5位赋给TL0。则计数寄存器的初值为:TH0 = F0H,TL0 = 0CH。其余模式定时器/计数器的计数初值计算以此类推。四 实验内容及步骤 (一)用定时器T0产生0.5ms定时,并在P1.0输出周期为1ms的方波。晶振为12MHZ。T0工作于模式“0”。 1编写程序,编写完后在伟福仿真器
20、软件模拟状态下,进行软件仿真,软件仿真成功后,往下进行。若仿真有问题,按所提示的问题进行修改,直至成功。 (1) 汇编语言编写的程序TIM: MOV TL0, #0CH ;送初值MOV TH0, #0F0HSETB TR0 ;启动T0LP: JBC TF0, LP1 ;查询定时到否AJMP LPLP1:CPL P1.0 ;P1.0求反 (2)C语言编写的程序(注意程序中的大、小写) # include sbit P10 = P10;void clock_initial () TR0 = 0; TF0 = 0; /*清TF0位*/ TH0 = 0xF0; /*装载计数初值*/ TL0 = 0x0
21、C; TR0 = 1; /*启动定时器/计数器0*/void main () TMOD = 0x00; /*定时器0,模式0*/ for (; ;) clock_initial (); do while (!TF0); /*查询、等待TF0置位*/ P10 = !P10; /*定时时间到,P1.0翻转*/(二) 使定时器T0工作于模式1,编制定时器1ms定时,P1.0输出2ms方波的程序。 按(一)的相应步骤编写并运行程序。实验三中断实验通过实验了解单片机中断原理、中断过程、中断方式(电平触发方式、边沿触发方式)的选择及编程方法。利用R-S触发器边沿触发INT0(P3.2)口,使产生中断,每请
22、求一次中断,转到中断服务程序,控制P1口的8个发光二极管隔一个循环点亮。 (一)编制P1口发光二极管隔一个亮程序作为中断服务程序1编写程序,编写完后在伟福仿真器软件模拟状态下进行软件仿真,软件仿真成功后,往下进行。 2将实验板连接好后,进行写器件操作,观察运行结果,若有问题再进行调试。3中断脉冲由实验板上的K1-K8按钮产生,引起中断后便进入中断服务程序,观察程序运行结果。4. 参考程序 (1)用汇编语言编写的程序 ORG 0000H AJMP MAIN ORG 0003H AJMP INT0MAIN: SETB P3.2 SETB IT0 ;置外部中断INT0SETB EX0SETB EA
23、;开中断HERE: AJMP HERE ;中断等待 INT0: MOV A,#55H ;中断服务 MOV P1,A ; P1口LED隔一个亮 RETI(2)用C语言编写的程序 #include void startset (void)IE=0;IP=0x0b;IT0=1;EX0=1;EA=1;INT0=1;void delay (int ms) /*延时子程序*/ for (j=0;j+);void light (void) /*中断响应,使每发生一次中断,就多点亮一个发光二极管*/EX0=0;P1=P11;delay (500);IE0=0;start set ();if (INT0=0)
24、light ();(以下实验需用单片机仿真器做)第四章 单片机扩展及接口实验实验一 数据存储器扩展实验掌握单片机内部RAM和外部RAM之间的数据传送的特点和应用,掌握存储器扩展方法。二 实验设备2 伟福仿真器一台;3 5V稳压电源一台;单片机实验板一块。三 实验原理数据存储器RAM概述MCS-51系列单片机内部有128字节的RAM存储器,但在实时数据采集系统中,仅靠片内128字节的RAM是不够的,因此需外扩RAM。常用的外部数据存储器由静态RAM ( Static Random Access Memory SRAM )和动态RAM( Dynamic Random Access Memory D
25、RAM )两种,本实验只讨论静态RAM。MCS-51单片机扩展外部数据存储器的地址是由P0口和P2口提供的,因此最大寻址范围为64KB(0000HFFFFH)。2静态RAM芯片6264简介6264是8K8位的静态RAM,它采用COMS工艺制造,单一+5V电源,额定功耗200mW,典型读取时间200ns,封装形式为DIP28,其引脚排列如图4-1所示。其中,A0A12为地址线;I/O0I/O7为数据线(双向);为片选线1,低电平有效;CE2为片选线2,高电平有效;为读允许信号线,低电平有效;为写信号线,低电平有效。四 实验内容及步骤(一)编写数据传送程序,使8031内部RAM30H3FH置初值10H1FH,然后送到外部RAM的2000H200FH中。再将20
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1