电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

单片机原理及应用 教学课件 ppt 作者 张兰红 第4章 80C51单片机的软件基础

212页
  • 卖家[上传人]:E****
  • 文档编号:89503246
  • 上传时间:2019-05-26
  • 文档格式:PPT
  • 文档大小:2.70MB
  • / 212 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、03:14,1,第4章 80C51单片机的软件基础,03:14,2,内 容,80C51单片机的指令系统,4.1,C51程序设计基础,4.2,C51语言的语句,4.3,C51的函数,4.4,C51的程序结构,4.5,03:14,3,单片机应用系统是由硬件和软件共同组成的。要使单片机实现所需要的控制功能,必须有控制软件,没有控制软件的单片机是毫无用处的。 机器语言是计算机唯一能识别的语言,用汇编语言和高级语言编写的程序(称为源程序)最终都必须翻译成机器语言的程序(称为目标程序),计算机才能识别。 汇编语言是能够利用单片机所有特性直接控制硬件的语言,它直接使用CPU的指令系统和寻址方式,从而得到占用空间小、执行速度快的高质量程序。对于一些实时控制要求高的场合,汇编语言是必不可少的。但对于较复杂的单片机应用系统,它的编写效率很低。,03:14,4,为了提高软件的开发效率,编程人员采用高级语言C语言来开发单片机应用程序。 目前许多软件公司致力于单片机C编译器的开发研究,许多C编译器的效率已接近汇编语言的水平,对于较复杂的应用程序,C语言产生的代码效率甚至超出了汇编语言。同时目前单片机片内程序存储

      2、器的发展十分迅速,许多型号的单片机片内ROM已经达到64KB甚至更大,且具备在系统编程(ISP)功能,进一步推动了C语言在单片机应用系统开发中的应用。 在学习C语言之前,了解汇编语言,能读懂汇编语言程序,并且会编中、小规模的汇编语言程序是十分必要的。,03:14,5,4.1 80C51单片机的指令系统,4.1.1 指令格式 一条汇编语言指令中最多包含4个字段,其格式为: 标号: 操作码 目的操作数,源操作数;注释 例: LOOP: ADD A, 10H ; A(A)+10H,根据设计使某台计算机具有的指令的集合便构成了这一计算机的指令系统。 80C51系列单片机的指令系统共有111条指令。,03:14,6,1. 标号 标号是用户定义的一个符号,表示指令或数据的存储单元地址。 标号由以英文字母开始的18个字母或数字串组成,以冒号“:” 结尾。不能用指令助记符、伪指令或寄存器名来做标号。一旦 使用了某标号定义一地址单元,在程序的其它地方就不能随意 修改这个定义,也不能重复定义。 一条指令中的标号代表该指令所存放的第一个字节存储单元的 地址,故标号又称为符号地址,在汇编时,把该地址赋值给该

      3、标号。,03:14,7,2. 操作码 操作码是用英文缩写的指令或伪指令功能助记符,用来表示指 令的性质或功能。如MOV表示传送操作,ADD表示加法操作。,03:14,8,3. 操作数 操作数字段给出参与操作的数据或数据所在单元的地址。 操作数字段的内容复杂多样,它可能为以下几种情况之一: (1) 工作寄存器名 (2) 特殊功能寄存器名 (3) 标号名 (4) 常数 (5) $ (6) 表达式,03:14,9,(1) 工作寄存器名 由PSW.3和PSW.4规定的当前工作寄存器区中的R0R7都可以 出现在操作数字段中。 (2) 特殊功能寄存器名 8051中的21个特殊功能寄存器的名字都可以作为操作数使用。 (3) 标号名 可以在操作数字段中引用的标号包括: 赋值标号:由汇编伪指令EQU等赋值的标号可以作为操作数。 指令标号:指令标号虽未被赋值,但这条指令的第一字节地址 就是这个标号的值,在以后指令操作数字段中可以引用。,03:14,10,(4) 常数 为了方便用户,汇编语言指令允许以各种数制表示常数,即常 数可以写成二进制、十进制或十六进制等形式。 (5) $ 操作数字段中还可以使用一个专

      4、门符号“$”,用来表示程序计数 器的当前值。这个符号最常出现在转移指令中,如“SJMP $”, 该指令表示继续执行该指令,在原地循环。,03:14,11,(6) 表达式 汇编程序允许把表达式作为操作数使用。在汇编时,计算出表 达式的值,并把该值填入目标码中。例如:MOV A,SUM+l。,03:14,12,4. 注释 注释是对指令或程序段的简要功能说明,以方便阅读与调试程 序。,03:14,13,4.1.2 指令系统的寻址方式 寻找操作数所在单元的地址称为寻址;确定操作数所在单元 地址的方法称为寻址方式。 80C51单片机指令系统中的寻址方式共有七类,分别为 立即寻址、 寄存器寻址、 寄存器间接寻址、 直接寻址、 变址寻址、 相对寻址、 位寻址。,03:14,14,1.立即寻址 操作数就跟在操作码的后面,可以立即参与指令所规 定的操作,不须另去寄存器或存储器等处寻找和取数。 例:MOV A,#30H ;A30H MOV DPTR,#2000H ;DPTR2000H 书写单片机指令时,为了辨识是立即数,规定在它的 前面加一个“#”号作为前缀。,03:14,15,2. 寄存器寻址 寻址某工

      5、作寄存器,自该寄存器读取或存放操作数, 以完成指令所规定的操作。 例 MOV R3,A ;R3(A) ADD A,R2 ;A(A)+(R2) 可以寻址的寄存器种类有工作寄存器R0R7、累加器 A、寄存器B、数据指针DPTR、位累加器Cy。,03:14,16,3.寄存器间接寻址 寄存器中存放的是地址而不是操作数,寻找到该工作寄存器 后,以其内容为地址,去寻找所指的RAM单元以读取或存放 操作数,称为寄存器间接寻址。 例 设R1的内容为40H,则 MOV A,R1 ;A片内RAM(40H)的内容。,图4-1 MOV A,R1指令执行过程,A,1AH,03:14,17,说明: (1) 对于51子系列单片机来说,寄存器间接寻址可用于访问内部RAM的128个存储单元(00H7FH),对于52子系列单片机芯片则可以访问内部RAM的256个单元(00HFFH)。 (2) 只能用R0或R1间接寻址,对外部RAM,当地址值256B时,用DPTR间接寻址。 (3) 书写单片机指令时,为了辨识是间接地址,规定在寄存器的前面加一作为前缀。 (4) 此方式也可用于访问外部RAM的64KRAM。 (5) 此方式不

      6、可以用于访问特殊功能寄存器。,03:14,18,51子系列的RAM编址图,52子系列的RAM编址图,03:14,19,4. 直接寻址 直接给出操作数所在的存储单元地址,以供寻址取数 或存放的寻址方式称为直接寻址。 对于80C51系列单片机,直接寻址可用于访问程序存储 器,也可用于访问数据存储器。,03:14,20,(1) 访问程序存储器的转移类指令。 长转移 LJMP addrl6 绝对转移 AJMP addr11 长调用 LCALL addrl6 绝对调用 ACALL addrll 执行这些指令后,PC整16位或低11位地址将更换为指令直接给 出的地址,机器将改为访问以所给地址为起始地址的存储器区 间,取指令(或取数)依次执行。,03:14,21,(2) 访问数据存储器的含direct的各条指令。 例 MOV A ,direct MOV Rn,direct MOV direct1,direct2,03:14,22,说明:1) direct是一个8位地址,称为直接寻址字节。它的值如小于等于127,可用于访问片内RAM的低128个单元,它的值如大于127,专用于访问特殊功能寄存器。 2)

      7、 直接寻址是访问特殊功能寄存器的唯一方法。特殊功能寄存器占用的是片内RAM自80HFFH间的地址,对于51子系列,片内RAM只有128个单元,它与特殊功能寄存器没有地址重叠。对于52子系列,片内RAM有256个单元,其高128个单元与特殊功能寄存器间有重叠了。为了避免混乱,设计时规定了直接寻址指令不能访问片内RAM的高128个单元,要访问这些单元,只能用寄存器间址指令。,03:14,23,51子系列的RAM编址图,直接寻址方式,52子系列的RAM编址图,直接寻址方式,03:14,24,5.变址寻址(或称基址加变址寄存器间接寻址) 这种寻址方式只用于访问程序存储器,当然只能读 取,不能存放,它主要用于查表性质的访问。 以程序计数器PC或数据指针DPTR作为基址寄存器, 以累加器A作为变址寄存器,把它们的和作为程序存储 器的地址,再寻址该单元,读取数据。,指令 MOVC A,A+DPTR MOVC A,A+PC,03:14,25,例如:MOVC A,A+DPTR;A(A)+(DPTR) 设(A)=10H,(DPTR)=2000H,程序存储器的(2010H)=36H,则 上面语句的功能是将A

      8、的内容与DPTR的内容相加,形成操作数 的地址2010H,把该地址中的数据传送到累加器A。即 (DPTR)+(A)A。结果(A)=36H。,图4-2 MOVC A,A+DPTR的执行示意图,03:14,26,6.相对寻址 在相对转移指令中采用相对寻址方式,在指令的操作数部分给 出地址的相对偏移量。相对偏移量为一个带符号的8位二进制数。 将相对转移指令所在的地址称为源地址;转移后的地址称为目 的地址。 目的地址=源地址+转移指令字节数+相对偏移量。,03:14,27,例 SJMP 50H 设指令所在PC值为2000H,而指令的机器码为2字节80H、50H, 则转移去的地址=2000H+02H+50H =2052H,故指令执行后, PC的值变为2052H,程序下一次执行的地址为2052H。 在实际编程中,往往已知源地址和目的地址,从而计算偏移量。 在80C51中,常用“rel”表示为相对偏移量。 rel计算方法:rel=目的地址(源地址+转移指令字节数),03:14,28,7.位寻址 80C51单片机设有独立的位处理器(布尔处理器),位寻址时,可以 对内部RAM和特殊功能寄存器的某些位寻址

      9、单元进行寻址。 区分位地址与字节地址的方法:主要看是位操作指令还是其它指 令,若为位操作指令,则操作数中的地址一定是位地址,反之则 为字节地址。 例:SETB 30H;(30H)1,03:14,29,寻址方式总结:,MCS-51系统的各寻址方式对应不同的存储器空间,使用时要特别注意在各种不同的存储器中采用什么寻址方式。,03:14,30,片内数据存储器,1.直接寻址方式 2.间接寻址方式 3.位寻址,1.直接寻址方式 2.位寻址,间接寻址方式,03:14,31,4.1.3 指令系统 80C51系列单片机的指令系统包括 数据传送、 算术运算、 逻辑运算、 控制转移、 位操作五大类指令。 分类介绍指令之前,先介绍描述指令的一些符号的意义。 Rn:表示通用寄存器R0R7。 Ri:表示通用寄存器中可间接寻址(即用做8位地址指针)的寄 存器R0和R1。 #data8:表示8位立即数。 #data16:表示16位立即数。,03:14,32,direct:表示8位片内RAM或SFR区的直接地址。 addr16/addr11:表示外部程序寄存器的16位或11位地址。 rel:表示8位偏移量。 bit:表示直接位地址。 :间接寻址寄存器或基址寄存器的前缀,如Ri,DPTR /:位操作数的前缀,表示对该位取反。 (X):X中的内容。 (X):由X寻址的单元中的内容。 :指令操作流程,将箭头右边的内容送入箭头左边的单元,03:14,33,共29条,是使用最频繁的一类指令,通用格式如下: MOV 目的操作数,源操作数 ;目的操作数 源操作数 属“复制”性质,而不是“搬家” 数据传送类指令不影响标志位:Cy、Ac和OV,但影响奇偶标志位P。,1 数据传送类指令,03:14,34,1数据传送到累加器A的指令 MOV A,#data ;Adata MOV A,Rn ;A(Rn) MOV A,Ri ;A(Ri) MOV A,direct ;A(direct) 功能:把源操作数的内容送入累加器A。 例如:

      《单片机原理及应用 教学课件 ppt 作者 张兰红 第4章 80C51单片机的软件基础》由会员E****分享,可在线阅读,更多相关《单片机原理及应用 教学课件 ppt 作者 张兰红 第4章 80C51单片机的软件基础》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.