第一次实验示例程序必读

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

(1)P0和P2口P0口锁存器和缓冲器结构P0口除了作普通的I/O口,直接和外部设备打交道外;还用作片外总线的地址总线AB0-AB7的低八位、数据总线。P2口锁存器和缓冲器结构P2口除了作普通的I/O口,直接和外部设备打交道外;还用作片外总线的地址总线的高八位地址线AB8-AB15注意:P0口在作输出入口使用时,由于它无内部上拉电阻,为了在口线上输出高电平并具有一定的驱动能力,必须外接上拉电阻。作输入口使用时,为了防止口锁存器对输入口线的输入信号造成影响,必须先往口锁存器写1。同理,P2口作输入时,也必须先往口锁存器写1。(2)P1口P1口锁存器和缓冲器结构P1口只用作普通输入输出口注意:和P0、P2口一样,为防止口锁存器对输入口线造成影响,P1口作输入时,也必须先往口锁存器写1。(3)P3口P3口锁存器和缓冲器结构P3口除了作普通的I/O口(功能和P1口一样)直接和外部设备打交道外;还具有第二功能。P3.0串行输入口(RXD)P3.1串行输出口(TXD)P3.2外中断0(INT0)P3.3外中断1(INT1)P3.5定时/计数器1的外部输入口(T1)P3.6外部数据存储器写选通(WR)P3.4定时/计数器0的外部输入口(T0)P3.7外部数据存储器读选通(RD)2.单片机的软件及数据如何存放?从前面的任务中,我们还看到要控制灯闪烁,必须编制程序,还必须将控制灯的相关数据预先存储,那么,在单片机中的程序和数据是怎样保存的?原来,在单片机内部有程序存储器和数据存储器,如果内部程序存储器和数据存储器的容量不够的话,还可以在单片机外部为它扩展,最大我们可以将程序存储器空间总容量扩大到64K,将数据存储器在片外再单独扩展64K,这样,以89S51为例,数据存储器的总容量可达64K(片外)+128字节(片内)。MCS-51单片机的存储器组织结构,采用典型的哈佛结构,即程序存储器和数据存储器完全独立,拥有各自的寻址系统,包括片内数据存储器与片外数据存储器都拥有自己独立的寻址系统。0FFFFH0FFFH1EAROM外部0EAROM内部H0000程序存储器1000HH00000080HRAM内部00FFH能寄存器特殊功0FFFFH)(外部K64RAM数据存储器H0000007FHMCS-51单片机存储器组织结构(1)程序存储器用途:存放程序及程序运行时所需的常数。寻址范围:0000H~FFFFH容量64KB,即地址长度:16位1EA,寻址内部ROM;说明:当PC值超过片内ROM容量时会自动转向外部存储器空间。0EA,寻址外部ROM。EA说明:8031单片机必须接低电平。程序存储器中6个具有特殊含义的单元0000H——系统复位,PC指向此处;0003H——外部中断0入口000BH——T0溢出中断入口0013H——外中断1入口001BH——T1溢出中断入口0023H——串口中断入口(2)数据存储器用途:存放程序执行的中间结果和过程数据的。物理上分为两大区域:00H~7FH即128B用户RAM区。80H~FFH即特殊功能寄存器区。组通用寄存器区第0组通用寄存器区第1组通用寄存器区第2组通用寄存器区第3)(位地址位寻址区FH7~H00区用户RAMH00H08/H07H10/FH0H18/H17H20/FH1H30/FH2FH7R0、R1、R2、R3、R4、R5、R6、R7即可位寻址,又可字节寻址数据缓冲区、堆栈区、工作单元位寻址区位寻址区(20H—2FH)16个字节。16*8=128位,每一位都有一个位地址,范围为:00H—7FH,位地址区也可作为一般的用户RAM使用。单元地址位地址EH2FH2H20H21H77FH7H76EH7H75DH7H74CH7H73BH7H72AH7H71H79H70H78H07FH0H06EH0H05DH0H04CH0H03BH0H02AH0H01H09H00H08(3)特殊功能寄存器寄存器位地址/位定义地址F7F6F5F4F3F2F1F0BF0HE7E6E5E4E3E2E1E0ACCE0D7D6D5D4D3D2D1D0PSWCYACF0RS1RS0OV/PD0HBFBEBDBCBBBAB9B8IPB8HB7B6B5B4B3B2B1B0P3P3.7P3.6P3.5P3.4P3.3P3.2P3.1P3.0B0HIEA8HA7A6A5A4A3A2A1A0P2P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0A0HSBUF99HSCON98H9796959493929190P1P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.090HTH18DHTH08CHTL18BHTL08AHTMODGATEC/TM1M0GATEC/TM1M089H8F8E8D8C8B8A8988TCONTF1TR1TF0TR0IE1IT1IE0IT088HPCONSMOD///GF1GF0PDIDL87HDPH83HDPL82HSP81H8786858483828180P0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.080H1)程序计数器PC(programCounter)程序计数器在物理上是独立的,它不属于特殊内部数据存储器块中。PC是一个16位的计数器,由两个八位寄存器PCH和PCL组成,用于存放一条要执行的指令地址,寻址范围为64kB,PC有自动加1功能,即完成了一条指令的执行后,其内容自动加1。PC本身并没有地址,因而不可寻址,用户无法对它进行读写,但是可以通过转移、调用、返回等指令改变其内容,以控制程序的执行顺序。2)累加器ACC(Accumulator)累加器A是一个最常用的专用寄存器,大部分单操作指令的一个操作数取自累加器,很多双操作数指令中的一个操作数也取自累加器。加、减、乘、除法运算的指令,运算结果都存放于累加器A或寄存器B中。大部分的数据操作都会通过累加器A进行,它形象于一个数据运输中转站,在数据传送过程中,任何两个不能直接实现数据的传送单元之间,通过累加器A中转,都能送达目的。3)寄存器B在乘除法指令中,乘法指令中的两个操作数分别取自累加器A和寄存器B,其结果存放于AB寄存器对中。除法指令中,被除数取自累加器A,除数取自寄存器B,结果商存放于累加器A,余数存放于寄存器B中。4)程序状态字(ProgramStatusWord)位序PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0位标志CYACF0RS1RS0OV-PCY——进位/借位标志;位累加器。AC——辅助进/借位标志;用于十进制调整。F0——用户定义标志位;软件置位/清零。OV——溢出标志;硬件置位/清零。P——奇偶标志;A中1的个数为奇数P=1;否则P=0。5)数据指针(DPTR)数据指针为16位寄存器,编程时,既可以按16位寄存器来使用,也可以按两个8位寄存器来使用,即高位字节寄存器DPH和低位字节DPL。DPTR主要是用来保存16位地址,当对64kB外部数据存储器寻址时,可作为间址寄存器使用,此时,使用如下两条指令:MOVXA,@DPTRMOVX@DPTR,A在访问程序存储器时,DPTR可用来作基址寄存器,采用基址+变址寻址方式访问程序存储器,这条指令常用于读取程序存储器内的表格数据。MOVCA,@A+@DPTR6)堆栈指针SP(StackPointer)指明栈顶元素的地址,8位,可软件设置初值,复位时SP=07H。7)I/O口专用寄存器(P0、P1、P2、P3)I/O口寄存器P0、P1、P2和P3分别是MCS-51单片机的四组I/O口锁存器。8)定时/计数器(TL0、TH0、TL1和TH1)MCS-51单片机中有两个16位的定时/计数器T0和T1,它们由四个8位寄存器组成的,两个16位定时/计数器却是完全独立的。我们可以单独对这四个寄存器进行寻址,但不能把T0和T1当作16位寄存来使用。9)定时/计数器方式选择寄存器(TMOD)TMOD寄存器是一个专用寄存器,用于控制两个定时计数器的工作方式,TMOD可以用字节传送指令设置其内容,但不能位寻址。3.单片机如何运行程序?知道了单片机通过I/O口与外设打交道,也知道了单片机的程序与数据如何保存,到底单片机是如何运行程序的?原来单片机和其他微机一样,也拥有一个中央处理器(CPU)。它通过单片机的内部总线,将单片机内部的各个部分:程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等联系在一起。内部总线有三种数据总线:专门用来传送数据信息。地址总线:专门用来传送地址信息,选中各操作单元。控制总线:专门用来传送CPU各种控制命令,以便CPU统一指挥协调工作。完成程序所要执行的各种功能。CPU执行程序一般包括两个主要过程第一,就是从程序存储器中取出指令,指令的地址由PC指针提供。第二,就是执指过程,取出的指令代码首先被送到CPU中控制器中的指令寄存器,再通过指令译码器译码变成各种电信号,从而实现指令的各种功能。执行取指令分析4.怎样保证CPU工作?现在我们知道了单片机怎样取指、执指,即怎样运行程序了。那么怎样才能保证CPU有序的工作?这就必须提到单片机的两个非常重要的外围电路:单片机的时钟电路和复位电路。Pin19:时钟XTAL1脚,片内振荡电路的输入端。Pin18:时钟XTAL2脚,片内振荡电路的输出端。时钟电路如下【振荡周期】:单片机外接石英晶体振荡器的周期。如外接石英晶体的频率若为12MHz,这其振荡周期就是1/12微秒。【状态周期】:单片机完成一个最基本的动作所需的时间周期。如扫描一次定时器T0引脚状态所需要的时间。一个状态周期=2个振荡周期。【机器周期】:单片机完成一次完整的具有一定功能的动作所需的时间周期。如一次完整的读操作或写操作对应的时间。一个机器周期=6个状态周期。【指令周期】:执行完某条指令所需要的时间周期,一般需要1~4个机器周期,如MULAB指令是四机器周期指令。一个指令周期=1~4个机器周期。ALE2S6S2S6S3S4S5S3S4S5S1S1S一个机器周期P1P2P1P22S1S6S1S单字节单周期指令例:INCA读操作码)读下一个操作码(丢弃3S4S5S单周期单字节指令时序复位电路如下单片机工作时,除了需要时钟支持外,还必须有一个初始状态,即单片机的复位状态。复位不改变RAM(包括工作寄存器R0-R7)的状态,89S51的初始态如下表:Pin9:RESET复位信号脚,当89S51通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。特殊功能寄存器初始态特殊功能寄存器初始态ACC00HB00HPSW00HSP07HDPH00HTH000HDPL00HTL000HIPxxx00000BTH100HIE0xx00000BTL100HTMOD00HTCON00HSCONxxxxxxxxBSBUF00HP0-P31111111BPCON0xxxxxxxB5.按键为何能打断原来的工作?在前面的任务中,我们还看到一个现象,只要按一下S1键,发光管的闪动就停止5秒,这就相当于打断了原来既定的工作,等到5秒延时一到,又恢复原来的工作。这就象我们平时通常所说的“中断”。单片机中也有中断系统,它有5个中断源,它们能打断单片机原来的工作,直到中断结束才能继续原来的工作。6.发光二极管为何按一定频率闪烁?在前面的任务中,灯有规律的闪动和按键停5秒,都离不开时间。那么,这个时间我们在前面的程序中是怎样得到的?原来,在89S51单片机中有两个定时器T0、T1,我们在前面也已经提到了,它在单片机中能够实现定时或计数功能。7.单片机的其他资源通过本次任务的分析,我们基本上知道MCS-51单片机的结构,它由CPU、程序存储器、数据存储器、并行输入输出口、定时计数器、中断系统等构成,当然除了本次任务用到的以上资源外,51单片机还有一个串行通讯口。单片机的引脚除了我们前面介绍的4个并I/O口,两根时钟引脚(18、19脚),一根复位引脚(9脚),两根电源脚(40、20脚)外,

1 / 29
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功