8051存储结构

上传人:积*** 文档编号:121216215 上传时间:2022-07-18 格式:DOC 页数:9 大小:21.50KB
返回 下载 相关 举报
8051存储结构_第1页
第1页 / 共9页
8051存储结构_第2页
第2页 / 共9页
8051存储结构_第3页
第3页 / 共9页
点击查看更多>>
资源描述
8051存储构造:1. CODE区用来寄存可执行代码。被16位寻址,空间可达64K。代码是只读的。还可以存储查寻表。通过数据指针DPTR或者程序计数器加上累加器提供的偏移量进行寻址。把表头地址装入DPTR,把表中要寻址的元素的偏移量装入累加器中,就可以寻址表中元素。2. DATA区第二个是8051内128字节内部RAM,或者8052的钱128字节内部RAM。这部分重要作为数据段。访问DATA区用直接寻址方式,访问XDATA区用间接寻址。一般把使用频繁的变量或者局部变量存储在DATA区,空间有限,需节省使用。在数据段中也可以通过R0和R1采用间接寻址,R0、R1被作为数据区的指针,将要恢复或者变化字节的地址放入R0或R1中。数据段中有两个小段,第一种子段涉及四个寄存器组,每组涉及8个寄存器,可子啊任何时刻通过修改PWS寄存器的RS0和RS1位来选择四组寄存器的任一组作为工作寄存器组,8051也可以默认任意一组喂工作寄存器组。工作寄存器组的迅速切换不仅使参数传递更加以便,并且可以进行迅速任务转换。另一种子段叫做位寻址段(BDATA)涉及16个字节,共128位,每一位都可以单独寻址。也可以进行字节寻址。3. IDATA区。8051系列的某些单片机如8052有附加的128字节内部RAM,位于从80H开始的地址空间中,被称为IDATA。由于IDATA区的地址和SFRs的地址是重叠的,通过辨别所访问的存储区来解决地址重叠问题,由于IDATA只能通过间接寻址来访问。4. 4.XDATA区。8051的最后一种存储空间为64K,和CODE区同样采用16位地址寻址,称作外部数据区,简称XDATA区。这个区一般涉及某些RAM或者某些需要通过总线接口的外围器件。对XDATA的读写操作使用DPTR,R0或者DPTR,R1。解决XDATA中的数据至少要三个指令周期,因此使用频繁的数据应尽量保存在DATA区。位操作和布尔逻辑8051可分别对BDATA和SFRs中的128个可寻址位,32个I/O口进行位逻辑操作。 MOV C 22H 把位地址 22H 中的数移入进位位中 ORL C 23H 把位地址 23H 中的数和进位位中的数相或 MOV 24H C 把进位位中的数移入位地址 24H 中寻址方式8051可对存储区直接或者间接寻址。直接寻址是指在指令中直接涉及所需寻址的字节地址。直接寻址只能在DATA区和SFR中进行。间接寻址要使用DPTR,PC,R0,R1寄存器,用来寻访所要访问的数据地址。间接寻址方式可以访问CODE,IDATA,XDATA存储区,对DATA也可以间接寻址,只能用直接寻址方式对位地址进行寻址。 DATA 和 IDATA区寻址 MOV R1 #22H 设立 R1 为指向 DATA 区内的地址 22H 的指针 MOV R0 #0A9H 设立 R0 为指向 IDATA 区内的地址 0A9H的指针 MOV A R1 读入地址 22H 的数据 MOV R0 A 将累加器中的数据写入地址 A9H INC R0 RO 中的地址变为 AAH INC R1 R1 中的地址变为 23H MOV 34H R0 将地址 AAH 中的数据写入 34H MOV R1 #67H 把立即数写入地址 23H XDATA区寻址 MOV DPTR #3048H DPTR 指向外部存储区 MOVX A DPTR 读入外部存储区地址 3048H 中的数 INC DPTR 指针加一 MOV A #26H 立即数 26H 写入 A 中 MOVX DPTR A 将 26H 写入外部存储区地址 3049H中 MOV R0 #87H R0 指向外部存储区地址 87H MOVX A R0 将外部存储区地址 87H 中的数读入累加器中 代码区寻址 MOV DPTR #TABLE_BASE DPTR 指向表首地址 MOV A index 把偏移量装入累加器中 MOVC A A+DPTR 从表中读入数据到累加器中中断优先级寄存器IP用来设立每个中断的优先级,如果相应的位被置位,则中断的优先级为高。此寄存器可位寻址。IP寄存器 可位寻址- - PT2 PS PT1 PX1 PT0 PX0- 保存- 保存PT2 定期器2中断优先级 PS 串行通信中断优先级PT1 定期器1中断优先级PX1 外部中断1优先级PT0 定期器0中断优先级 PX0 外部中断0优先级中断使能寄存器IE通过设立中断使能寄存器IE的EA位,使能所有中断,每一种中断源独有单独的使能位,可通过软件设立IE中相应的使能位在任何时刻使能或者禁用中断。中断使能寄存器IE 可位寻址EA - ET2 ES ET1 EX1 ET0 EX0 EA 使能标志位 置位则所有中断使能 复位则严禁所有中断ET2定期器2中断使能ES串行通信中断使能ET1 定期器1中断使能EX1外部中断1使能ET0定期器0中断使能EX0外部中断2使能内置定期/计数器原则的8051有两个定期/计数器,每个定期器有16位。定期/计数器既可以作为定期器(对机器周期计数),也可以用来对相应的I/O口(T0,T1)上从高到低的跳变脉冲计数。如果需要,当脉冲计数溢出时,可以产生一种中断。TCON寄存器用来控制寄存器的工作启停和溢出标志位。通过变化定期器运营位TR0和TR1来启动和停止定期器工作。TCON还涉及了定期器0和定期器1的溢出中断标志位。中断标志位可以在任何时候置位和清除,因此可以通过软件产生和制止定期器中断。定期器控制寄存器 TCON 可位寻址TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0TF1定期器1溢出中断标志。响应中断后由解决器清零TR1定期器1控制位,置位时定期器工作,复位时停止工作TF0 定期器0溢出标志位TR0定期器0控制位IE1外部中断1触发标志位,当检测到P3.3有从高到低得跳变电平时置位,解决器响应中断后,由硬件清除该位。IT1外部中断触发方式控制位,置位时为跳变触发,复位时为低电平触发IE0外部中断0触发标志位,当检测到P3.2有从高到低的跳变时置位,由解决器清零IT0外部中断0触发控制位,置位时为跳变触发,复位时为低电平触发定期器控制寄存器 TMOD-不可位寻址GATE C/T M1 M0 GATE C/T M1 M0 定期器1 定期器0GATE当GATE置位时,定期器仅当TR=1并且INT=1时才开始工作,如果GATE=0,置位TR定期器开始工作C/T定期器方式选择。如果C/T=1,定期器以计数方式工作,C/T=0,以定期方式工作M0模式选择高位 M1模式选择高位可通过C/T位的设立来选择定期器的时钟源。当定期器用来对内部时钟脉冲计数时,可通过硬件或者软件来控制。GATE=0为软件控制,置位TR定期器就开始工作,GATE=1为硬件控制,当TR=1并且INT=1时定期器才工作。当INT脚给出低电平时,定期器将停止工作。这在测量INT脚的脉冲宽度时十分有用,此时INT不做外部中断使用。定期器工作方式0和方式1定期器有四种工作方式。方式0为13位定期/计数器方式,定期器溢出时置位TF0或TF1,并产生中断。方式1将以16位定期/计数器工作,除此之外和方式0同样定期器工作方式2方式2 为8位自动重装载工作方式。定期器的低8位(TL0或TL1)用来计数,高8位(TH0或TH1)用来寄存重装载数值。当定期器溢出时,TH中的数值被装入TL中。定期器0和定期器1在方式2是同样地。定期器1常用此措施来产生波特率。定期器工作方式3方式3时,定期器0成为两个8位定期/计数器(TH0和TL0).TH0相应于TMOD中定期器0的控制位,而TL0占据了TMOD中定期器1的控制位。这样定期器1将不能产生溢出中断,但可以用于不需要产生中断的场合,如作为波特率发生器或者作为定期计数器被软件查询,当系统需要用定期器1来产生波特率,而又同步需要两个定期/计数器时,这种方式十分有用,当定期器1设立为工作方式3时将停止工作。内置UART8051有一种全双工串行通讯接口。由寄存器SCON来进行设立 串行控制寄存器 SCON -可位寻址SM0 SM1 SM2 REN TB8 RB8 TI RISM0串行模式选择SM1串行模式选择SM2多机通讯容许位,当模式0时,此位应当位0,模式1时,当接受到停止位时,该位置位。模式2和3时,当接受到的第9位数据为1时,将置位REN串行接受容许位TB8在模式2和3中,将被发送数据的第9位RB8在模式0中该位不起作用,子模式1中,该位为接受数据的停止位,在模式2和3中,为接受数据的第9位TI串行中断标志位,由软件清零RI接受中断标志位,由软件清零UART模式0模式0时,UART作为1个8位的移位寄存器使用,波特率为fosc/12。数据由RXD从低位开始收发。TXD用来发送同步移位脉冲,因此,方式0不支持全双工。这种方式可用来和像某些具有8位串行口的EEPROM之类的器件通讯。当向SBUF写入字节时,开始发送数据。数据发送完毕时,TI将置位。置位REN时,将开始接受数据,当接受完8位数据时,RI将置位。UART模式1工作于模式1时,传播的是10位:1位起始位,8位数据位,1个停止位。这种方式可以和涉及PC机在内的许多器件进行通讯。这种方式的波特率是可调的。而用来产生波特率的定期器的中断应当被严禁,PCON的SMOD位为1时,可使波特率翻番。TI和RI在发送和接受停止位的中间时刻被置位,这使软件可以响应中断并装入新的数据。如果使用定期器1来产生波特率,则通过下公式计算TH1的装入值TH1=256 (K*OscFreq )/ (384*BaudRate)K=1 if SMOD=0K=2 if SMOD=1规定重装值要不不小于256,非整数的重装值必须和下一种整数非常接近。UART模式2模式2的数据以11位方式发送:1位起始位,8位数据位,第9位,1位停止位。发送数据时,第9位为SCON中的TB8,接受数据的第9位保存在RB8中。第9位一般用来多机通讯,仅在第9位为1时,单片机才接受数据。多机通讯用SCON的SM2来控制。当SM2为1时,仅当数据的第9位为1时才引起通讯中断,当SM2为0时,只要接受完11位就产生一次中断。第9位可以在多机通讯中避免不必要的中断,在传送地址和命令时,第9位置位,串行总线上的所有解决器都产生一种中断,解决器将决定与否继续接受下面的数据。如果继续接受数据就清零SM2,否则SM2置位,后来的数据流不会使它产生中断。SMOD=0时,模式2的波特率为 1/64Osc SMOD=1时 波特率为 1/32Osc。模式2和模式3的差别在于可变的波特率
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!