- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2 单片机原理及应用
将CPU及部分存储器、定时器/计数器以及I/O接口集成在一片超大规模集成电路芯片上构成的微型计算机,称为单片微型计算机,简称单片机。(Single Chip Microcomputer) 现一般称为MCU(Micro Controller Unit) (1)内部(片内)RAM ?堆栈 是RAM中一个 专用的连续存 储区,是一种 单端读写操作 的存储结构。 51单片机的堆 栈在片内RAM 开辟。 ?堆栈指针(SP):8位寄存器,用来存放堆栈的栈顶地址。单片机复位后,SP=07H。 ?堆栈的操作 压入堆栈:SP自动加1,数据进栈。 弹出堆栈:数据出栈,SP自动减1。 例:假设SP=70H,将数据12H、34H依次压入堆栈的过程如下。 ?SP自动加1,SP=71H;将数据12H压入SP所指的堆栈单元(71H); ? SP自动加1,SP=72H;将数据34H压入SP所指的堆栈单元(72H)。 如图所示: 初始状态 ? ? 反之,现在要将堆栈单元的内容弹出的话,过程如下: ?将SP所指堆栈单元(72H)的内容34H弹出;SP自动减1,SP=71H; ?将SP所指堆栈单元(71H)的内容12H弹出;SP自动减1,SP=70H。 初始状态 ? ? ?堆栈操作的原则:先进后出,后进先出。 ?堆栈的作用:用来保护断点地址和保护现场。 ?堆栈操作指令 压入堆栈 PUSH direct;SP先自动加1,然后将direct单元 内容压入SP所指的堆栈单元 弹出堆栈 POP direct;先将SP所指堆栈单元的内容弹给 direct,然后SP自动减1 ?内部数据传送指令 ?查表指令 ?程序存储器主要用来存放程序,也可存放表格常数,要取出表格常数时,可以采用查表指令。 ?特点 ?只能将表格常数读入A中 ?表格常数采用变址间接寻址方式 ?指令功能说明 例:已知DPTR=2000H,A=E0H,则执行 MOVC A,@A+DPTR过程如下图所示: ?应用 例:用查表方法求片内数据存储器30H单元内容(0~9)的平方值,并存入31H单元。 分析:假设先将0~9的平方 值连续存放在程序存储器 3000H开始的单元中。则 每个平方值存放的单元地 址=表格首地址+偏移量 (索引值),而该索引值 即为待求平方值的数。 方法1: ORG 0000H MOV A,30H ;取数 MOV DPTR,#3000H ;表格首地址送入DPTR MOVC A,@A+DPTR ;查表取平方值 MOV 31H,A ;存结果 LP:SJMP LP ORG 3000H DB 0,1,4,9,16,25 DB 36,49,64,81 ;平方值表 ? DB(定义字节伪指令) P50 格式:[标号:] DB 8位二进制数表 方法2: ORG 2000H MOV A,30H ;取数 ADD A,#TAB-NPC ;加偏移量 MOVC A,@A+PC ;查表 NPC:MOV 31H,A ;存结果 LP:SJMP LP TAB:DB 0,1,4,9,16,25 DB 36,49,64,81 ;平方值表 方法2: ORG 2000H 2000H E5 30 MOV A,30H ;取数 2002H 24 04 ADD A,#04H ;加偏移量 2004H 83 MOVC A,@A+PC ;查表 2005H F5 32 NPC:MOV 31H,A ;存结果 2007H
文档评论(0)