第4章_80C51单片微机的程序设计.ppt

  1. 1、本文档共75页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章_80C51单片微机的程序设计

实验一 清零、移数、判断 将片内30H~40H及片外0010H~0100H清零,然后将片内41H~47H的内容移到片外0041H~0047H,判断: 若(0041H)<15,则求平方存到0050H中,并将位00H置1。 若(0041H)=15, 则加15存到0050H中,并将位01H置1。 若(0041H)>15, 则减15存到0050H中,并将位02H置1。 实验报告要求: 1.写明实验日期、桌号 2.写明实验要求; 3.编程,加标注 4.写出调试过程,遇到的问题及解决方法 5.总结实验目的,写出收获体会 实验二 排序、加法 有两个长度为10H的数,分别放在30H和40H为首地址的存储器中(低字节),求其对应之和,放在50H为首地址的存储器中(处理进位位),然后按升序排列,放在70H为首地址的存储器中。 实验三 查表、多分支 设一表格,表中数为:00H、11H、22H……FFH,将片内00H单元中的低4位放到片外0000H中(0000H中的高4位为0),高4位放到片外0001H中(0001H中的高4位为0),根据0000H中的数取出表中相应的值存到片内30H中;根据0001H中的数跳到相应的处理程序中,在处理程序中,把相应的位地址置1。 第四章 80C51单片微机的程序设计 4.1概述 4.1.1 汇编语言格式 ⒉ 汇编语言 ⑴ 汇编语言语句的种类和格式 ① 汇编语言语句的种类 指令语句 MOV A,#0 伪指令语句 ONE EQU 1 宏指令语句 例:把片外存储器2200H单元中的数送入片内70H单元中。 标号域 操作码域 操作数域 注释域 BEGIN:MOV DPTR,#2200H ;(DPTR)=2200H MOV R0,#70H ;(R0)=70H MOVX A,@DPTR ;(A)=((DPTR)) MOV @R0,A ;((R0))=(A) ⒈ ORG 汇编起始地址伪指令 向汇编程序说明,下述程序段的起始地址由表达式指明。表达式通常为16进制地址码。 一般规定,在由ORG伪指令定位时,其地址应当由小到大,不能重叠。它的有效范围一直到下一条ORG伪指令出现为止。 ORG 1000H START:MOV A,#12H? ⒉ END 汇编结束伪指令 表示源程序结束 ?一个源程序只能有一个END指令,放在程序的末尾。 ???? 汇编语言程序设计步骤 分析问题,确定算法 根据算法,画出程序框图 分配内存工作区及有关端口地址 编写程序 上机调试 4.2 80C51汇编语言程序设计 例2:将内部RAM30H单元的高4位和31H单元的低4位拼成一个数,存入32H单元。 ORG 0030H MOV A ,30H ANL A ,#0F0H MOV 32H ,A MOV A ,31H ANL A ,#0FH ORL A ,32H MOV 32H ,A SJMP $ END 例 将ASCII码转换为十六进制数。设ASCII码放在累加器A中,转换结果放到B中。 解:由ASCII码表(附录D)可知,30H~39H为0~9的ASCII码,41H~46H为A~F的ASCII码。将ASCII码减30H(0~9)或37H(A~F)就可获得对应的十六进制数。 程序如下: ASCⅡ: CLR C SUBB A, #30H ;A-30H CJNE A, #0AH, ASCO ;差值与10比较,在C中产 ;生<10或≥10标志 ASC0: JC ASC1 ; <10,已变为ASCⅡ码 SUBB A, #07H ; ≥10,再减7 ASC1: MOV B, A ;存转换结果

文档评论(0)

ligennv1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档