280 likes | 429 Views
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. 设计范例 —— 数码管显示. 范例分析: 硬件分析
E N D
7 指令功能及汇编语言程序设计(一)
本讲主要内容: 7-1. 设计范例——数码管显示 7-2. 51单片机的并行I/O接口的使用方法 7-3. 数码管的知识和使用方法 7-4. 传送类指令的功能 7-5. 汇编语言程序设计的一般步骤 SiChuan Engineering Technical College-1959
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
7-1. 设计范例——数码管显示 • 范例分析: • 硬件分析 电路中用到了单片机的并行I/O口和数码管 • 软件设计 由于硬件电路中数码管接在单片机的P0口上,故将显示内容送至单片机的P0口就可以在数码管上看到显示内容。 SiChuan Engineering Technical College-1959
7-2. 单片机的并行I/O接口 • 8051单片机的并口是几位的? • 在四个并口中,真正的双向口是哪一个?它的用法有多少种? • 四个并口中功能相对较为简单的是哪一个?在作为输入、输出口使用时有何不同? • 在实际应用中,并口的使用要考虑其负载能力,在四个并口中负载力相对较强的是哪一个? SiChuan Engineering Technical College-1959
7-2. 单片机的并行I/O接口 P0口 P1口 P2口 P3口 SiChuan Engineering Technical College-1959
7-2. 单片机的并行I/O接口 • 四个并口的比较 SiChuan Engineering Technical College-1959
7-2. 单片机的并行I/O接口 • 例1:电路如下图所示,试用二极管显示按键当前状态。 电路分析: 电路中P1口的低四位接按键,作输入口使用,高四位接发光二极管,作输出口使用。 SiChuan Engineering Technical College-1959
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
7-2. 单片机的并行I/O接口 • 从这一实例中我们可以看到: • 同一个并口的每一位可以单独使用,例如: SETB P1.0;将P1.0置1 • 也可以设置某些位为输入口,某些位为输出口。例如本例中P1口的低四位为输入口,高四位为输出口。 SiChuan Engineering Technical College-1959
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
7-3. 数码管基础知识——预备知识 共阳结构 共阴结构 • 七段显示器的原理 SiChuan Engineering Technical College-1959
7-3. 数码管基础知识——预备知识 • 数码管的显示代码表 • 共阴数码管段码 共阳数码管段码 SiChuan Engineering Technical College-1959
7-3. 数码管基础知识——预备知识 #89H #76H • 共阴、共阳数码管比较 例2:使下面两个数码管都显示H。 H的段码: H的段码: SiChuan Engineering Technical College-1959
7-3. 数码管基础知识 连接 关系 段码输入端 四位的位选端 • 本讲范例中使用的是4位动态数码管 SiChuan Engineering Technical College-1959
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
7-4. 数据传送类指令 外部RAM 外部I/O接 口芯片 内部RAM SWAP XCH XCHD MOV PUSH POP MOVX MOVC CPU MOVC 外部ROM 内部ROM SiChuan Engineering Technical College-1959
7-4. 数据传送类指令 A direct @Ri Rn #data • 内部RAM中的数据传送类指令 格式: MOV目的操作数, 源操作数 图中箭头为双向的表示数据可双向传递,例如direct(直接寻址单元,例如内部RAM的30H单元)与A之间,数据可由direct送给A,也可由A送给direct。 SiChuan Engineering Technical College-1959
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
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
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
7-4. 数据传送类指令 • 累加器A高低半字节交换指令SWAP(累加器A的高、低半字节互相交换) SWAP A (A)0~3 (A)4~7 例如:若(A)=45H,执行指令SWAP A后 (A)=54H 注:此条指令通常用于数据处理时,同逻辑与指令相配合,将数据的高、低四位拆分后分别存放。 SiChuan Engineering Technical College-1959
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
7-5. 程序设计一般步骤 • 分析课题,确定解决方案和算法; • 分配系统资源及存储单元; • 绘制程序流程图; • 设计程序,并反复调试和修改。 SiChuan Engineering Technical College-1959
7-5. 程序设计一般步骤 例3:彩灯循环设计。 SiChuan Engineering Technical College-1959
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
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
7-5. 程序设计一般步骤——流程图中各种符号的含义 终结符(用于程序段的开始、结束处) 进程(用于程序中顺序执行的部分) 箭头(用于表示程序的执行方向) 判断菱形(用于程序中出现分支的情况) 文字描述(用于描述程序的执行条件) SiChuan Engineering Technical College-1959