[工学]单片机程序设计.ppt

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

第4章 单片机程序设计方法 常用伪指令 定位伪指令ORG 汇编结束伪指令END 符号定义伪指令EQU 定义字节数据伪指令DB 定义字数据伪指令DW 数据赋值伪指令DATA 位地址赋值伪指令BIT 定义空间伪指令DS 数据地址赋值伪指令XDATA 逻辑及移位类指令 ——逻辑与指令(6条) ——逻辑或指令(6条) ——逻辑异或指令(6条) ——累加器A清0和取反指令 ——循环移位指令 RL A RR A RLC A RRC A 循环左移指令 1.位传送指令 3.位运算指令 5.判CY标志指令 3.3.4 控制转移类指令 ——无条件转移指令(4条) 1) 长转移指令:LJMP AAAAH ; AAAAH?PC ——条件转移指令(8条) 1)累加器A判0指令(2条) 3)比较转移指令(4条) 条件转移类指令范例——方案一 条件转移类指令范例——方案二 条件转移类指令范例——方案三 条件转移类指令范例——方案四 ——调用和返回指令(8条) 1)绝对调用指令(1条) 3)返回指令 简单程序——结构特点: 按指令的先后顺序依次执行。 将20H单元的两个压缩BCD码拆开变成ASCII码,存入21H、22H单元。(假设20H中的BCD码 (1)单分支 单分支程序的基本结构: 例:如图所示,设计一段程序实现功能:如果(A)中1的个数为奇数,所有的二极管发光;如果全0,则只让VD0-VD3发光;否则全灭。 ORG 0000H JB P,JISH JZ QUAN MOV P2,#00H SJMP TOend JISHU:MOV P2,#0FFH SJMP TOend QUAN:MOV P2,#0FH TOend: SJMP $ END (2)双分支 双分支程序的基本结构: 两数比较流程图 (3)多分支 多分支程序的基本结构: 例:在某单片机系统中,按下一按键,键值(代表哪个键被按下)存放在内部RAM的40H单元内。设计一段程序实现功能: 如果(40H)=00H,调用子程序SUB1; 如果(40H)=01H,调用子程序SUB2; 如果(40H)=02H,调用子程序SUB3; 如果(40H)=03H,调用子程序SUB4; 如果(40H)=04H,调用子程序SUB5。 流程图 程序清单 …… MOV 40H,A MOV DPTR,#TAB RL A ADD A,40H JMP @A+DPTR …… TAB: LCALL SUB1 LCALL SUB2 LCALL SUB3 LCALL SUB4 LCALL SUB5 【例】在起始地址为M的内部数据存储器中放有100个数,其中有一个数的值等于a,试编一程序,求出这个数的地址,送N单元。若这个数不存在,则将00H送入N单元。 N EQU 08H M EQU 09H ORG 2040H START: MOV R0, #M MOV R1, #64H LOOP: CJNE @R0 , #a, W SJMP WW W: INC R0 DJNZ R1,LOOP MOV N, #00H SJMP WWW WW: MOV N, R0 WWW: SJMP $ 4、子程序设计 在实际问题中,常常会遇到在一个程序中多次用到相同的运算或操作,若每遇到这些运算或操作,都从头编起,将使程序繁琐、浪费内存。因此在实际中,经常把这种多次使用的程序段,按一定结构编好,存放在存储器中,当需要时,可以调用这些独立的程序段。通常将这种可以被调用的程序段称为子程序。 (1)运算类子程序设计 例:假如在MCS-51单片机内部RAM中30H~37H单元、

文档评论(0)

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

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

1亿VIP精品文档

相关文档