电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > PPT文档下载
分享到微信 分享到微博 分享到QQ空间

单片机幻灯片51

  • 资源ID:88136953       资源大小:347.50KB        全文页数:46页
  • 资源格式: PPT        下载积分:25金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要25金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

单片机幻灯片51

第4章 汇编语言程序设计,80C51汇编语言语句结构的基本格式 伪指令的功能和应用 汇编的概念 程序设计的步骤和基本方法 顺序程序 分支程序 循环程序 查表程序 散转程序,本章要点,标号:操作码 目的操作数,源操作数;注释,§4-1 汇编语言程序设计基本概念,4.1.1 汇编语言及其语句结构,汇编语言程序设计中的数,计算机只能识别二进制数机器指令,它原本是不认识常用的十六进制数和十进制数的。,机器指令/目标代码: 由0/1代码组成的操作码与操作数。,BCD码:用二进制数表达的十进制数。 (09表示为:00001001B 后缀:B/b,H/h),二进制数:由0/1组成、“逢2进1”的数制。 如:01011110B (01 后缀:B/b),十六进制数:便于读写记忆的二进制数的简写形式。 (09,AF 后缀:H/h),汇编语言编程基本规则,汇编语言:用助记符描述的指令的集合。,指令中以 AF 开头的十六进制数前必须添一个 “0”。,二进制数必须带后缀“B”或“b”;十六进制数必须带后缀“H”或“h”;十进制数的后缀是“D”或“d”或无.,标号:操作码 目的操作数,源操作数;注释,汇编程序:汇编语言编写的程序借助编译工具 编译成为目标代码,计算机才能识别。这个编译工具称为汇编程序。,4.1.2 伪指令,在汇编时起控制作用,自身并不产生机器码,而仅是为汇编服务的一些指令,称为伪指令。伪指令不属于80C51指令系统。 常用的伪指令有以下几种:, 起始伪指令 ORG(Origin),功能:规定ORG下面目标程序的起始地址。,格式:ORG 16位地址,ORG 0100H START:MOV A,#05H ADD A,#08H MOV 20H,A ORG 0100H表示该伪指令下面第一条指令的起始地址是0100H,即MOV A,#05H指令的第一个字节地址为0100H,或标号START代表的地址为0100H。,功能:将一个数据或特定的汇编符号赋予规定 的字符名称。, 结束伪指令 END,功能:汇编语言源程序的结束标志。 在END后面的指令,汇编程序不再处理。,格式:END, 等值伪指令 EQU(Equate),格式:字符名称 EQU 数据或汇编符号,例如: PP EQU R0 ;PP=R0 MOV A,PP ;A R0 这里将PP等值为汇编符号R0,在指令中PP就可以代替R0来使用。, 数据地址赋值伪指令 DATA,格式:字符名称 DATA 表达式,功能:将数据地址或代码地址赋予规定的 字符名称。, 定义字节伪指令DB(Define Byte),格式:DB 8位二进制数表,功能:从指定的地址单元开始,定义若干 个8位内存单元的数据。 数据与数据之间用“,”分割。,例如: ORG 4000H TAB: DB 73H,45,“A”,“2” TAB1:DB 101B 以上指令经汇编后,将对4000H开始的若干内存单元赋值。 (4000H)=73H,(4001H):2DH(注:45的16进制数),,格式:字符名称 BIT 位地址, 定义字伪指令DW(Define Word),格式:DW 16位二进制数表,功能:从指定的地址单元开始,定义 若干个16位数据。, 定义位地址伪指令BIT,功能:将位地址赋予所规定的字符名称。,AQ BIT P0.0 DEF BIT 30H 把P00的位地址赋给字符AQ,把位地址30H赋给字符DEF。在其后的编程中,AQ可作P0.0使用,DEF可作位地址30H使用。,三.汇编,将汇编语言源程序转换为计算机所能识别的机器语言代码程序的过程称为汇编。 汇编可分为: 手工汇编 计算机汇编,【例4-1】对下段程序进行手工汇编。, 汇编和调试,四. 程序设计的基本方法,编写程序要求: 不仅要完成规定的功能任务,而且还要求: 执行速度快、占用内存少、条理清晰、 阅读方便、便于移植、巧妙而实用。 一般应按以下几个步骤进行:, 分析问题,确定算法或解题思路, 画流程图, 编写源程序,流程图符号和说明:,顺序程序是指按顺序依次执行的程序,也称为简单程序或直线程序。 顺序程序结构虽然比较简单,但也能完成一定的功能任务,是构成复杂程序的基础。,第二节 汇编语言程序设计举例,一. 顺序程序,CONT: MOV A,R0 ;读低8位 CPL A ;取反 ADD A,#1 ;加1 MOV R2,A ;存低8位 MOV A,R1 ;读高8位 CPL A ;取反 ADDC A,#80H ;加进位及符号位 MOV R3,A ;存高8位 RET ;,【例4-2】 已知16位二进制负数存放在R1R0中, 试求其补码,并将结果存在R3R2中。,解:二进制负数的求补方法可归结为“求反加1”,符号位不变。利用CPL指令实现求反;加1时,则应低8位先加1,高8位再加上低位的进位。注意这里不能用INC指令,因为INC指令不影响标志位。,程序如下:,ORG 2000H BCD2B:MOV A, R2 ;取入口数据 ANL A, #0F0H ;取出十位 SWAP A ;高4位 低4位 MOV B, #0AH MUL AB ;十位乘10 MOV R3,A ;积暂存进R3 MOV A, R2 ;再取入口数据 ANL A, #0FH ;取出个位 ADD A, R3 MOV R2,A ;结果 R2 RET ;若不是子程序可用END,例:将R2中BCD码数转为二进制数存进R2。 (此子程序在下一例中还要用到),根据不同条件转向不同的处理程序,这种结构的程序称为分支程序。 80C51指令系统中的条件转移指令、比较转移指令和位转移指令,可以实现分支程序。,二.分支程序,【例45】 已知X、Y均为8位二进制有符号数,分别存在30H31H中,试编制能实现下列符号函数的程序:,实现程序如下:,【例46】将ASCII码转换为十六进制数。设ASCII码放在累加器A中,转换结果放到B中。 解:由ASCII码表(表1-4)可知,30H39H为09的ASCII码,41H46H为AF的ASCII码。将ASCII码减30H(09)或37H(AF)就可获得对应的十六进制数。程序如下:, S0单独按下, 红灯亮,其余灯灭; S1单独按下, 绿灯亮,其余灯灭; 其余情况, 黄灯亮。,【例4.8】已知电路如图4-5所示,要求实现:,解:程序如下 SGNL:ANL P1,#11100011B;红绿黄灯灭 ORL P1,#00000011B;置P1.0、P1.1输入态, P1.5P1.7状态不变 SL0: JNB P1.0,SL1 ;P1.0=0,S0未按下,转判S1 JNB P1.1,RED ;P1.0=1,S0按下;且P1.1=0,S1未按下,转红灯亮 YELW:SETB P1.4 ;黄灯亮 CLR P1.2 ;红灯灭 CLR P1.3 ;绿灯灭 SJMP SL0 ;转循环 SL1: JNB P1.1,YELW ;P1.0=0,S0未按下;P1.1=0,S1未按下,转黄灯亮 GREN:SETB P1.3 ;绿灯亮 CLR P1.2 ;红灯灭 CLR P1.4 ;黄灯灭 SJMP SL0 ;转循环 RED: SETB P1.2 ;红灯亮 CLR P1.3 ;绿灯灭 CLR P1.4 ;黄灯灭 SJMP SL0 ;转循环,课堂练习题: 电路及灯亮灭要求同上述【例】题,其中第3、4两条指令JNB P1.0和JNB P1.1按下列要求修改,试重新编程。 JB P1.0, JB P1.1, JB P1.0, JNB P1.1, JNB P1.0, JB P1.1,,循环程序一般包括以下几个部分: 循环初值; 循环体; 循环修改; 循环控制; 以上四部分可以有两种组织形式,其结构如图4-6所示。,三. 循环程序,【例4.10】设Xi均为单字节数,并按顺序存放在以50H为首地址的内RAM存储单元中,数据长度(个数)N存在R2中,试编程求和S=X1+X2+XN,并将S(双字节)存放在R3R4中,(设S65536)。,解:程序如下: SXN: MOV R2,#N ;置数据长度(循环次数) MOV R3,#00H ;和单元(高8位)清0 MOV R4,#00H ;和单元(低8位)清0 MOV R0,#50H ;求和数据区首址 LOOP:MOV A,R4 ;读前次低8位和 ADD A,R0 ;低8位累加 MOV R4,A ;存低8位和 CLR A ; ADDC A,R3 ;高8位加进位 MOV R3,A ;存高8位和 INC R0 ;指向下一数据 循环修改 DJNZ R2,LOOP ;判N个数据累加完否? 循环控制 RET ;退出循环 退出循环,置循环初值,循环体,【例411】 设在内RAM 40H开始的存储区有若干个字符和数字,已知最后一个为字符“$”(并且只有惟一一个),试统计这些字符和数字的个数,统计结果存人30H单元。 解:程序如下:,【例412】 内部RAM 20H单元开始存有8个数,试找出其中最大的数,送入MAX单元。 解:程序如下:,ORG 1000H DELAY:MOV R6,#200 ; 1Tm LOOP1: MOV R7,#248 ; 1Tm NOP ; 1Tm LOOP2: DJNZ R7,LOOP2 ; 2Tm DJNZ R6,LOOP1 ; 2Tm RET ; 1Tm,补充例:软件循环延时100mS(晶振12MHz), 1Tm =1uS 100mS = 100000 uS MOV Rn #data 和 NOP 是单机器周期指令 DJNZ Rn,rel 是双机器周期指令 200 = 0C8H ; 248 = 0F8H,1+1+ 248x2 =498,(498+2)x200,ORG 1000H DL1S:MOV R7,#10 DL1: MOV R6,#200 DL2: MOV R5, #250 DL3: DJNZ R5, DL3 DJNZ R6,DL2 DJNZ R7,DL1 RET,补充例:软件循环延时1S(晶振12MHz), 1Tm =1uS 1S = 1000000 uS MOV Rn #data 是单机器周期指令 DJNZ Rn,rel 是双机器周期指令,1+ 250x2,1+ (1+250x2) +2)x200,1+ (1+250x2+2) x200+2x10=,【例4-13(2)】编写延时10ms子程序,fosc=12MHz。 解:fosc=12MHz,一个机器周期为1s。 DY10ms:MOV R6,#20 ; 置外循环次数 DLP1: MOV R7,#250 ; 置内循环次数 DLP2: DJNZ R7,DLP2 ; 2机周×250 =500机周 DJNZ R6,DLP1 ; 500机周×20= 10000机周 RET ; 说明:MOV Rn指令为1个机器周期; DJNZ指令为2个机器周期; RET指令为2个机器周期; (2机周×250)+1+2×20+1+2×1s/机周=10063s10ms 【课堂练习题】 按下列要求编写延时子程序: 延时2ms,fosc=6MHz; 延时5ms,fosc=12MHz; 延时10s,fosc=12MHz;,设80C51单片机的P1口作为输出口,经驱动电路74LS240(8反

注意事项

本文(单片机幻灯片51)为本站会员(F****n)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.