APP下载

单片机位地址计算方法研究

2016-07-23陈业慧涂德凤安徽新华学院电子通信工程学院安徽合肥230088

赤峰学院学报·自然科学版 2016年11期
关键词:存储器

陈业慧,涂德凤,程 明(安徽新华学院 电子通信工程学院,安徽 合肥 230088)



单片机位地址计算方法研究

陈业慧,涂德凤,程明
(安徽新华学院电子通信工程学院,安徽合肥230088)

摘要:介绍了一种单片机位地址计算方法,针对MCS-51内部RAM256B中位地址段20H-2FH16个字节单元拆分成的128个位地址,无需查表,快速准确地得到位地址,并就该计算方法在可位寻址的SFR以及其他主流单片机系列位地址计算的适用性进行了分析.

关键词:AT89S52;存储器;位地址;SFR

1 引言

自1980年直到现在,MCS-51系列单片机凭借其优越的性能和完善的结构,成为一种通用计算机.其强大的位处理功能,为处理复杂程序标志位的置位、清零或检测以及确定程序的运行方向等提供了极大的方便.但许多单片机爱好者在开始学习期间,对其存储器地址冲突问题上倍感棘手.本文主要介绍了一种单片机位地址的计算方法,针对内部RAM128字节中位地址段20H-2FH16个字节单元拆分成的128位地址,无需查表,快速准确地得到位地址,并就该计算方法在可位寻址的SFR以及其他单片机系列位地址计算的适用性进行了分析,也便于工作人员准确定位地址并利用好每一个存储单元.

2 MCS-51单片机位地址和位地址计算方法

MCS-51存储器配置方式采用哈佛结构,结构组织可以分成3个不同的存储空间,64kB程序存储器、64kB外部RAM和256B内部RAM,其中256B的内部RAM又分为两部分:高128B和低128B,低128B的内部RAM才是真正的RAM区,主要被用来写入或读出数据,结构如图1所示:

图1 MCS-51存储器基本机构图

51系列优点之一是它从内部的硬件到软件有一套完整的按位操作系统,称作位处理器,或布尔处理器.它的处理对象不是字或字节而是位.它不光能对片内某些特殊功能寄存器的某位进行处理,如传送、置位、清零、测试等,还能进行位的逻辑运算,其功能十分完备,使用起来得心应手.51系列在片内RAM区间还特别开辟了一个双重功能的地址区间,十六个字节,单元地址20H~2FH,它既可作字节处理,也可作位处理(作位处理时,合128个位,相应位地址为00H~7FH),使用极为灵活.这一功能无疑给使用者提供了极大的方便,因为一个较复杂的程序在运行过程中会遇到很多分支,因而需建立很多标志位,在运行过程中,需要对有关的标志位进行置位、清零或检测,以确定程序的运行方向.而实施这一处理(包括前面所有的位功能),只需用一条位操作指令即可.

2.1位寻址区(20H-2FH)

片内RAM的20H—2FH单元为位寻址区,既可作为一般单元用字节寻址,也可对它们的位进行寻址,使用极其灵活.为使用者在复杂程序中分支程序标志位的的置位、清零或检测,以确定程序的运行方向提供了极大的方便.而实施这一处理(包括前面所有的位功能),只需用一条位操作指令即可.位地址分配如下表1所示:

表1 位地址分配

2.2计算方法

由于单片机中只有内部RAM和特殊功能寄存器的部分单元有位地址,分别针对2部分分析位地址的计算方法.

(1)当位地址涉及空间在内部RAM位寻址20H~2FH段时,假设其位表示成2XH.Y,其中X∈(0,F),Y∈(0,7),即2XH.Y的范围在20H.0-2FH.7,则计算方法如下:

由上式可得,20H.0=00H,2FH.7=FFH,故位地址表达的范围落在00H-7FH范围.

同理亦可反推位地址3BH=27.3,快速准确,与表1相符.

(2)对于高128B片内RAM来说,此公式不适用,比如P0.0即80H.0,如果用此公式将得到00H的结果,必然是错误的.

故修正如下,对于可位寻址的SFR,位地址与字节地址相关,规则如下:字节地址高四位定义为M,低四位定义为N,则字节地址为MN.位号定义为Z,则MNH.Z=M(N+Z)H.

P0.0即80H.0,由规则可以得到该位位地址=80H.

PS即B8H.5,由规则可得该位位地址=BDH,与表2相符.

表2 特殊功能寄存器

3 位寻址与字节寻址的区别

对位地址中的内容进行位操作的寻址方式成为位寻址.对字节地址中的内容进行位操作的寻址方式称为直接寻址.位寻址只能对有位地址的内部RAM和特殊功能寄存器的部分单元进行寻址操作.它是一种直接寻址方式,由指令给出直接位地址.而字节寻址给出的是字节地址.

区分两者需要根据不同的指令及伪指令,酌情判断.单片机有专用的12条指令专用于位操作,不会混淆,例如:

SETB TR0;(TR0)←1

CLR20H;(24H.0)←0

4 适用性研究

本文提出的单片机位地址计算方法针对Intel51系列及相关兼容性的单片机,比如ATmel公司及STC的51系列的典型产品等,简单迅速而准确的得到位地址,有效解决复杂的组合逻辑问题,避免进行大量的数据传送、字节屏蔽和测试一分支等操作为初学者及单片机爱好者及工作人员准确定位地址并利用好每一个存储单元提供了便利.但因存储器结构及指令的不同,不适用于AVR、PIC单片机,其中AVR系列单片机中并不能直接对RAM单元中的位进行操作,若想对RAM中的某位置位时,必须通过状态寄存器SREG的T位进行中转.如对RAM中的R0寄存器的第4位置位,则:

BSET6;状态寄存器T置位

BLDR0,4;将T位复制到R0的第4位显然,后者比前者要复杂.

5 结论

本文介绍的针对MCS-51系列单片机位地址计算方法,无需查表,快速准确地得到位地址,有效解决了单片机初学者及工作人员对于位地址的定位,同时也为教学提供了方便.该方法简单准确,使用Inter、Atmel及STC等系列通用单片机中,为利用位寻址有效解决复杂的组合逻辑问题,避免进行大量的数据传送、字节屏蔽和测试一分支等操作提供了便利.

参考文献:

〔1〕王琼.单片机原理及应用(第二版)[M].合肥:合肥工业大学出版社,2013.

〔2〕张毅坤.单片微型计算机及应用[M].西安:西安电子科技大学出版社,2005.

〔3〕马淑华,王凤文,张美金.单片机原理与接口技术[M].北京:北京航空航天大学出版社,2007.

〔4〕张毅刚.单片机原理及应用-C51编程+Proteus仿真[M].北京:高等教育出版社,2012.

〔5〕刘海成.AVR单片机原理及测控工程应用[M].北京:北京航空航天大学出版社,2008.

〔6〕张明峰.PIC单片机入门与实战[M].北京:北京航空航天大学出版社,2004.

中图分类号:TP368

文献标识码:A

文章编号:1673-260X(2016)06-0032-02

收稿日期:2016-02-11

猜你喜欢

存储器
静态随机存储器在轨自检算法
Synology发布新款廉价4盘位机架式NAS存储器
任意2~k点存储器结构傅里叶处理器
非易失性纳米晶存储器的研究
英特尔再战存储器、扩大晶圆代工冲刺晶圆厂产能
SOC中MBIST结构的设计与实现
Altera演示FPGA中高性能DDR4存储器数据速率
存储器——安格尔(墨西哥)▲
基于Nand Flash的高速存储器结构设计
Buffalo推出四硬盘网络存储器 主打Soho一族