1 / 28

指令功能及汇编语言程序设计(一)

7. 指令功能及汇编语言程序设计(一). 本讲主要内容:. 7-1. 设计范例 —— 数码管显示 7-2. 51 单片机的并行 I/O 接口的使用方法 7-3. 数码管的知识和使用方法 7-4. 传送类指令的功能 7-5. 汇编语言程序设计的一般步骤. 7-1. 设计范例 —— 数码管显示. P3.5. P3.4. P3.3. P3.2. P1.0. P1.1. P1.3. P1.2. P0 口. 要求在最左侧的数码管上显示数字 1 。. 7-1. 设计范例 —— 数码管显示. 范例分析: 硬件分析

eshe
Download Presentation

指令功能及汇编语言程序设计(一)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 7 指令功能及汇编语言程序设计(一)

  2. 本讲主要内容: 7-1. 设计范例——数码管显示 7-2. 51单片机的并行I/O接口的使用方法 7-3. 数码管的知识和使用方法 7-4. 传送类指令的功能 7-5. 汇编语言程序设计的一般步骤 SiChuan Engineering Technical College-1959

  3. 7-1. 设计范例——数码管显示 P3.5 P3.4 P3.3 P3.2 P1.0 P1.1 P1.3 P1.2 P0口 • 要求在最左侧的数码管上显示数字1。 SiChuan Engineering Technical College-1959

  4. 7-1. 设计范例——数码管显示 • 范例分析: • 硬件分析 电路中用到了单片机的并行I/O口和数码管 • 软件设计 由于硬件电路中数码管接在单片机的P0口上,故将显示内容送至单片机的P0口就可以在数码管上看到显示内容。 SiChuan Engineering Technical College-1959

  5. 7-2. 单片机的并行I/O接口 • 8051单片机的并口是几位的? • 在四个并口中,真正的双向口是哪一个?它的用法有多少种? • 四个并口中功能相对较为简单的是哪一个?在作为输入、输出口使用时有何不同? • 在实际应用中,并口的使用要考虑其负载能力,在四个并口中负载力相对较强的是哪一个? SiChuan Engineering Technical College-1959

  6. 7-2. 单片机的并行I/O接口 P0口 P1口 P2口 P3口 SiChuan Engineering Technical College-1959

  7. 7-2. 单片机的并行I/O接口 • 四个并口的比较 SiChuan Engineering Technical College-1959

  8. 7-2. 单片机的并行I/O接口 • 例1:电路如下图所示,试用二极管显示按键当前状态。 电路分析: 电路中P1口的低四位接按键,作输入口使用,高四位接发光二极管,作输出口使用。 SiChuan Engineering Technical College-1959

  9. 7-2. 单片机的并行I/O接口 这是流程图,在设计程序之前应首先绘制流程图,流程图是编写和修改程序的依据。 • 软件设计: ……… L:MOV P1,#0FH MOV A,P1 ANL A,#0FH SWAP A MOV P1,A SJMP L ;将P1口低四位置为输入口 ;将按键状态读回单片机 ;将读回数据的高四位清零 ; 将状态值交换到A的高四位 ;将状态值送至P1口的高四位 ;返回起始点 SiChuan Engineering Technical College-1959

  10. 7-2. 单片机的并行I/O接口 • 从这一实例中我们可以看到: • 同一个并口的每一位可以单独使用,例如: SETB P1.0;将P1.0置1 • 也可以设置某些位为输入口,某些位为输出口。例如本例中P1口的低四位为输入口,高四位为输出口。 SiChuan Engineering Technical College-1959

  11. 7-3. 数码管基础知识 P3.5 P3.4 P3.3 P3.2 P1.0 P1.1 P1.3 P1.2 P0口 • 与单片机接口的常用显示器件有LED(Light Emiting Diode)和LCD(Liquid Crystal Display),这里主要介绍LED数码管的相关知识。 SiChuan Engineering Technical College-1959

  12. 7-3. 数码管基础知识——预备知识 共阳结构 共阴结构 • 七段显示器的原理 SiChuan Engineering Technical College-1959

  13. 7-3. 数码管基础知识——预备知识 • 数码管的显示代码表 • 共阴数码管段码 共阳数码管段码 SiChuan Engineering Technical College-1959

  14. 7-3. 数码管基础知识——预备知识 #89H #76H • 共阴、共阳数码管比较 例2:使下面两个数码管都显示H。 H的段码: H的段码: SiChuan Engineering Technical College-1959

  15. 7-3. 数码管基础知识 连接 关系 段码输入端 四位的位选端 • 本讲范例中使用的是4位动态数码管 SiChuan Engineering Technical College-1959

  16. 7-3. 数码管基础知识 P3.5 P3.4 P3.3 P3.2 P1.0 P1.1 P1.3 P1.2 选中最左侧的: CLR P3.5 SETB P3.4 SETB P3.3 SETB P3.2 P0口 • 怎样才能只让最左侧的数码管显示,其他的3个熄灭呢?(图中为共阳数码管)? 1 1 1 0 1 SiChuan Engineering Technical College-1959

  17. 7-4. 数据传送类指令 外部RAM 外部I/O接 口芯片 内部RAM SWAP XCH XCHD MOV PUSH POP MOVX MOVC CPU MOVC 外部ROM 内部ROM SiChuan Engineering Technical College-1959

  18. 7-4. 数据传送类指令 A direct @Ri Rn #data • 内部RAM中的数据传送类指令 格式: MOV目的操作数, 源操作数 图中箭头为双向的表示数据可双向传递,例如direct(直接寻址单元,例如内部RAM的30H单元)与A之间,数据可由direct送给A,也可由A送给direct。 SiChuan Engineering Technical College-1959

  19. 7-4. 数据传送类指令 • 数据指针赋值指令(16bit数据传送指令) 当要对片外RAM、I/O接口进行访问,一般要先给数据指针DPTR赋值,此时应用该条指令: MOV DPTR,#data16;将16bit二进制立即数赋给数据指针DPTR 比如:将数据指针指向片外RAM的2000H单元。 MOV DPTR,#2000H • 片外数据传送指令(4条) 当你想把一个数送到单片机外部扩展RAM的某个单元或外部扩展I/O口某个端口,或者你想从该单元、端口将数据取回到单片机内部的时候,就要用到片外数据传送指令。 MOVX A,@Ri ;A← ((Ri)) 片外 MOVX A,@DPTR ;A← ((DPTR)) 片外 MOVX @Ri,A ; (Ri) 片外←A MOVX @DPTR, A ; (DPTR) 片外←A 如果以Ri作指针,只能访问00~FFH地址段的外部RAM或I/O端口。如果以DPTR 作指针,则能访问0000~FFFFH地址段的任何外部RAM单元或I/O端口。 SiChuan Engineering Technical College-1959

  20. 7-4. 数据传送类指令 Rn Direct @Ri A 79H 35H • 数据交换类指令 • 整字节交换指令XCH(字节单元与累加器A进行8位数据交换) XCH A,Rn XCH A,direct XCH A,@Ri 例如:若(A)=35H,(R1)=79H,执行指令XCH A,R1后 (A)= (R1)= A: R1: SiChuan Engineering Technical College-1959

  21. 7-4. 数据传送类指令 (A)0~3 ((Ri))0~3 • 低半字节交换指令XCHD(字节单元与累加器A进行低4位数据交换) XCHD A,@Ri 例如:若(A)=45H,(R1)=30H,(30H)=89H,执行指令 XCHD A,@R1后 (A)= (R1)= (30H)= 49H 30H 85H A: R1: 30H: SiChuan Engineering Technical College-1959

  22. 7-4. 数据传送类指令 • 累加器A高低半字节交换指令SWAP(累加器A的高、低半字节互相交换) SWAP A (A)0~3 (A)4~7 例如:若(A)=45H,执行指令SWAP A后 (A)=54H 注:此条指令通常用于数据处理时,同逻辑与指令相配合,将数据的高、低四位拆分后分别存放。 SiChuan Engineering Technical College-1959

  23. 7-1. 设计范例——数码管显示 P3.2 P3.3 P3.4 P3.5 P1.0 P1.1 P1.3 P1.2 P0口 此时对P0口操作,应使用MOV指令。 MOV P0,#0C0H SiChuan Engineering Technical College-1959

  24. 7-5. 程序设计一般步骤 • 分析课题,确定解决方案和算法; • 分配系统资源及存储单元; • 绘制程序流程图; • 设计程序,并反复调试和修改。 SiChuan Engineering Technical College-1959

  25. 7-5. 程序设计一般步骤 例3:彩灯循环设计。 SiChuan Engineering Technical College-1959

  26. 7-5. 程序设计一般步骤——彩灯循环程序设计实例 ORG 0000H MAIN: MOV P1, #80H ;D7发光 MOV P1, #40H ;D6发光 MOV P1, #20H ;D5发光 MOV P1, #10H ;D4发光 MOV P1, #08H ;D3发光 MOV P1, #04H ;D2发光 MOV P1, #02H ;D1发光 MOV P1, #01H ;D0发光 SJMP MAIN ;循环 SiChuan Engineering Technical College-1959

  27. 7-5. 程序设计一般步骤——彩灯循环程序设计实例 • 彩灯循环另一种程序结构: ORG 0000H MAIN: MOV A, #01H ;初始状态 MOV R0, #08 ;共8位 L1: MOV P1, A ;D1发光 LCALL DEL ;延时子程序 RL A ;状态上移1位 DJNZ R0,L1; 循环判断 SJMP MAIN ;循环 SiChuan Engineering Technical College-1959

  28. 7-5. 程序设计一般步骤——流程图中各种符号的含义 终结符(用于程序段的开始、结束处) 进程(用于程序中顺序执行的部分) 箭头(用于表示程序的执行方向) 判断菱形(用于程序中出现分支的情况) 文字描述(用于描述程序的执行条件) SiChuan Engineering Technical College-1959

More Related