完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
*在学习51之前,最先接接触到的是Arduino,这个东西上手确实十分的简单,可以做出来一些小玩意,但是它的性能终究是不够强大,对于一些比较厉害的作品,用Arduino就显得心有余而力不足了,所以现在开始学习51和stm32。51的学习在大学本科阶段,在学校课堂上学到的基本上是一些理论知识,这些东西也确实有一定的必要,毕竟掌握了都是自己的。所以说我准备对这些理论的知识进行一个整理。好,废话不多说,现在切入正题。
对于一般的大学教材,前面两章基本上都是对单片机的一些基本的介绍,主要就是一些对单片机硬件结构认识过程,这个主要是让我们有个总体的认识,开始适应单片机的学习。这些东西就忽略了吧。就从51系列单片机的指令系统开始吧。这里使用汇编语言编写程序的。(以上都是废话,自动忽略)* 51系列单片机的指令系统 一:单片机指令系统的概述 (1)总共111条指令 (单字节指令49条,双字节指令45条,三字节指令17条) (一个机器周期、12个时钟震荡周期指令64条,两个机器周期、24个时钟震荡周期指令45条、乘除两条指令位4个机器周期) (12MHZ晶振:机器周期位1us) (2)51指令不区分大小写 (3)指令格式:操作码+操作数 二:单片机的寻址方式 (1)寄存器寻址方式:MOV A,Rn (2)直接寻址方式:MOV A,40H (寻址范围:第一:内部RAM的128个单元、第二:特殊功能寄存器SFR,除了以单元形式外还能用寄存器符号形式:即MOV A,80H==MOV A,P0) (3)寄存器间接寻址:(寄存器中放的是操作数地址、寄存器前面加标志符@)例如:MOV R1,#40H MOV A ,@R1 (寻址范围:第一:访问内部RAM、第二:片外数据存储器的64k字节的间接寻址、第三:片外的数据存储器的低256字节、第四:堆栈区) (4)立即寻址方式:(操作数在指令中直接给出,需在操作数前面加上#,如果首位是A-F,前面还加0)例如:MOV A,#40H MOV A,#0FFH (5)基址寄存器加变址寄存器间址寻址方式:(以DPTRPC作为基址寄存器,以累加器A作为变址寄存器) (6)位寻址方式:例如:MOV A,40H 把40H的值送到进位位C (寻址范围:第一:内部RAM位寻址区、第二:特殊功能寄存器中的可寻址位) (7)相对寻址方式:(目的地址=转移指令所在地址+转移指令字节数+rel(带符号的8位二进制数的补码数)) 三:51系列单片机的指令系统及一般说明 (1)分类介绍: 数据传送类(28条) 算数操作类(24条) 逻辑运算类(25条) 控制转移类(17条) 位操作类 (17条) (2)指令中符号的意义: Rn当前寄存器区8个工作寄存器 Ri当前选中的寄存器区中可做间接寻址寄存器的2个寄存器 Direct 直接地址,即8位内部数据存储单元或者特殊功能寄存器地址 #data包含指令中的8位立即数 #data包含指令中的16位立即数 rel相对转移指令中的偏移量,8位带符号的补码数 DPTR数据指针,可用作16位的数据地址寄存器 bit内部RAM或者SFR中直接寻址位 C(Cy)进位标志位或者位处理机制中的累加器 addr11 11位目的地址 addr16 16位目的地址 @间接寻址寄存器 (x)x中的内容 ((X))由X寻址的单元中的内容 ---->箭头右边内容被箭头左边所替代 (持续更新中!!!) |
|
|
|
只有小组成员才能发言,加入小组>>
2545 浏览 0 评论
1142浏览 2评论
742浏览 1评论
495浏览 0评论
256浏览 0评论
418浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-18 20:36 , Processed in 1.116654 second(s), Total 81, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号