总数:318 | 当前第25/32 首页 上一页 ... 23 24 25 26 27 28 29 30 31 32 下一页 尾页
第5章(1):八路彩灯控制程序
(1)D1~D8八个彩灯按规定顺序依次点亮(间隔1秒),最后全亮; (2)按规定顺序依次熄灭(间隔1秒),最后全灭; (3)八个灯同时点亮,保持1秒; (4)八个灯同时熄灭,保持0.5秒; 再将第3、4步重复4遍,最后整个程序再重复N遍 程序如下: ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV R7,#7 LOOP: MOV R6,#16 MOV R5,#4 MOV DPTR,#TABLE MOV R4,#0 LOOP1: MOV A,R4 MOVC A,@A+DPTR MOV P1,A INC R4 LCALL DELAY LCALL DELAY DJNZ R6,LOOP1 LOOP2: MOV P1,#0FFH LCALL DELAY LCALL DELAY MOV P1,#00H LCALL DELAY DJNZ R5,LOOP2 DJNZ R7,LOOP DELAY: MOV R1,#4 A1: MOV R2,#0FFH A2: MOV R3,#0FFH DJNZ R3,$ DJNZ R2,A2 DJNZ R1,A1 RET TABLE: DB 0FEH,0FCH,0F8H,0F0H,0E0H,0C0H,080H,000H ;逐个叠加 DB 080H,0C0H,0E0H,0F0H,0F8H,0FCH,0FEH,0FFH ;逐个递减 SJMP $ END
  1. 2010/5/18
  2. 人气(6873)
  3. 星级(10)
  4. 评论(1)
混合系统结构_气动技术基础
混合系统结构_气动技术基础
  1. 2010/5/17
  2. 人气(6646)
  3. 星级(10)
  4. 评论(0)
气动技术前言
气动技术前言
  1. 2010/5/17
  2. 人气(6031)
  3. 星级(10)
  4. 评论(0)
第4章(7):汇编语言程序设计
散转程序:散转程序是分支程序的一种,使用指令JMP @A+DPTR,可实现多分支转移。它是根据某种输入或运算的结果,分别转向各个处理程序段取执行程序。下面以根据R2的内容转向各处理程序为例介绍几种散转程序的设计方法。 (1)转移指令表法(在2KB范围内转移) 把转移指令AJMP(或LJMP)顺序写入转移表。根据累加器A中的分支序号,通过JMP指令转向表中的某一条JMP指令,然后再执行AJMP指令,把程序转移到指定的分支入口。这种分支方法实际上是通过两次转移实现的。
  1. 2010/5/7
  2. 人气(6183)
  3. 星级(10)
  4. 评论(3)
第4章(8):汇编语言程序设计
散转程序:散转程序是分支程序的一种,使用指令JMP @A+DPTR,可实现多分支转移。它是根据某种输入或运算的结果,分别转向各个处理程序段取执行程序。下面以根据R2的内容转向各处理程序为例介绍几种散转程序的设计方法。 (1)转移指令表法(在2KB范围内转移) 把转移指令AJMP(或LJMP)顺序写入转移表。根据累加器A中的分支序号,通过JMP指令转向表中的某一条JMP指令,然后再执行AJMP指令,把程序转移到指定的分支入口。这种分支方法实际上是通过两次转移实现的。
  1. 2010/5/7
  2. 人气(5562)
  3. 星级(10)
  4. 评论(0)
第3章(11):单片机硬件系统MCS51指令系统
寻址方式 寻找操作数存放单元的地址的方式,共6种方式。 1、立即数寻址 所要找的操作数是一二进制数或十进制数,出现在指令中,用“#”作前缀 MOV A,#20H 2、寄存器寻址 操作数存放在工作寄存器R0 ~ R7中,或寄存器B中。 MOV A,R2 3、直接寻址 指令中直接给出操作数的地址。 MOV A,30H MOV 30H,DPH 4、寄存器间接寻址 指令中寄存器的内容作为操作数存放的地址,指令中间接寻址寄存器前用 “@”表示前缀。 举“两个抽屉,两把钥匙”的例子。 MOV R0,#30H MOV A,@R0 MOV A,#20H MOV R1,#40H MOV @R1,A 5、变址寻址 操作数地址 = 变地址 + 基地址 基地址寄存器 DPTR 或 PC 变址寄存器 @A 该寻址方式常用于访问程序存储器,查表。 MOV A,@A + DPTR 6、相对寻址 把指令中给定的地址偏移量与本指令所在单元地址(PC内容)相加得到真正有效的操作数所存放的地址。 举“李同学20岁,张同学比李同学大3岁”的例子。 JC 60H ;设(PC) = 2000H, 则当C = 1时, 转移的目的地址 = (PC)+ 2 + 60H
  1. 2010/4/26
  2. 人气(7148)
  3. 星级(10)
  4. 评论(2)
第3章(12):单片机硬件系统MCS51指令系统
寻址方式 寻找操作数存放单元的地址的方式,共6种方式。 1、立即数寻址 所要找的操作数是一二进制数或十进制数,出现在指令中,用“#”作前缀 MOV A,#20H 2、寄存器寻址 操作数存放在工作寄存器R0 ~ R7中,或寄存器B中。 MOV A,R2 3、直接寻址 指令中直接给出操作数的地址。 MOV A,30H MOV 30H,DPH 4、寄存器间接寻址 指令中寄存器的内容作为操作数存放的地址,指令中间接寻址寄存器前用 “@”表示前缀。 举“两个抽屉,两把钥匙”的例子。 MOV R0,#30H MOV A,@R0 MOV A,#20H MOV R1,#40H MOV @R1,A 5、变址寻址 操作数地址 = 变地址 + 基地址 基地址寄存器 DPTR 或 PC 变址寄存器 @A 该寻址方式常用于访问程序存储器,查表。 MOV A,@A + DPTR 6、相对寻址 把指令中给定的地址偏移量与本指令所在单元地址(PC内容)相加得到真正有效的操作数所存放的地址。 举“李同学20岁,张同学比李同学大3岁”的例子。 JC 60H ;设(PC) = 2000H, 则当C = 1时, 转移的目的地址 = (PC)+ 2 + 60H
  1. 2010/4/26
  2. 人气(6760)
  3. 星级(10)
  4. 评论(1)
第3章(9):单片机硬件系统MCS51指令系统
MCS-51系列单片机的指令系统 111条指令,共分五大类: 数据传送类;(29条) 算术运算类;(24条) 逻辑运算类;(24条) 控制转移类;(17条) 位操作类。(17条) 指令中操作数的描述符号: Rn —— 工作寄存器R0 ~ R7 Ri —— 间接寻址寄存器R0、R1 Direct —— 直接地址,包括内部128B RAM单元地址、26个SFR地址。 #data —— 8位常数 #data 16 —— 16位常数 addr 16 —— 16位目的地址 addr 11 —— 11位目的地址 rel —— 8位带符号的偏移地址 DPTR —— 16位外部数据指针寄存器 bit —— 可直接位寻址的位 A —— 累加器 B —— 寄存器B C —— 进、借位标志位,或位累加器 @ —— 间接寄存器或基址寄存器的前缀 / —— 指定位求反 (x)—— x中的内容 ((x))—— x中的地址中的内容 $ —— 当前指令存放的地址
  1. 2010/4/23
  2. 人气(8179)
  3. 星级(10)
  4. 评论(3)
第3章(10):单片机硬件系统MCS51指令系统
MCS-51系列单片机的指令系统 111条指令,共分五大类: 数据传送类;(29条) 算术运算类;(24条) 逻辑运算类;(24条) 控制转移类;(17条) 位操作类。(17条) 指令中操作数的描述符号: Rn —— 工作寄存器R0 ~ R7 Ri —— 间接寻址寄存器R0、R1 Direct —— 直接地址,包括内部128B RAM单元地址、26个SFR地址。 #data —— 8位常数 #data 16 —— 16位常数 addr 16 —— 16位目的地址 addr 11 —— 11位目的地址 rel —— 8位带符号的偏移地址 DPTR —— 16位外部数据指针寄存器 bit —— 可直接位寻址的位 A —— 累加器 B —— 寄存器B C —— 进、借位标志位,或位累加器 @ —— 间接寄存器或基址寄存器的前缀 / —— 指定位求反 (x)—— x中的内容 ((x))—— x中的地址中的内容 $ —— 当前指令存放的地址
  1. 2010/4/23
  2. 人气(7059)
  3. 星级(10)
  4. 评论(3)
第3章(8):单片机硬件系统MCS51指令系统
7].堆栈操作类指令(2条) 这4类指令的作用是把直接寻址单元的内容传送到堆栈指针SP所指的单元中,以及把SP所指单元的内容送到直接寻址单元中。这类指令只有两条,下述的第一条常称为入栈操作指令,第二条称为出栈操作指令。需要指出的是,单片机开机复位后,(SP)默认为07H,但一般都需要重新赋值,设置新的SP首址。入栈的第一个数据必须存放于SP+1所指存储单元,故实际的堆栈底为SP+1所指的存储单元。 PUSH data ;(SP)+1→(SP),(data)→(SP)堆栈指针首先加1,直接寻址单元中的数据送到堆栈指针SP所指的单元中 POP data ;(SP)→(data)(SP)-1→(SP),堆栈指针SP所指的单元数据送到直接寻址单元中,堆栈指针SP再进行减1操作 [8].交换指令(5条) 这5条指令的功能是把累加器A中的内容与源操作数所指的数据相互交换。 XCH A,Rn ;(A)←→(Rn)累加器与工作寄存器Rn中的内容互换 XCH A,@Ri ;(A)←→((Ri))累加器与工作寄存器Ri所指的存储单元中的内容互换 XCH A,data ;(A)←→(data)累加器与直接地址单元中的内容互换 XCHD A,@Ri ;(A3-0)←→((Ri)3-0)累加器与工作寄存器Ri所指的存储单元中的内容低半字节互换 SWAP A ;(A3-0)←→(A7-4)累加器中的内容高低半字节互换 [9]. 16位数据传送指令(1条) 这条指令的功能是把16位常数送入数据指针寄存器。 MOV DPTR,#data16 ;#dataH→(DPH),#dataL→(DPL)16位常数的高8位送到DPH,低8位送到DPL算术运算指令共有24条,算术运算主要是执行加。减。乘。除法四则运算。另外MCS-51指令系统中有相当一部分是进行加。减1操作,BCD码的运算和调整,我们都归类为运算指令。虽然MCS-51单片机的算术逻辑单元ALU仅能对8位无符号整数进行运算,但利用进位标志C,则可进行多字节无符号整数的运算。同时利用溢出标志,还可以对带符号数进行补码运算。需要指出的是,除加。减1指令外,这类指令大多数都会对PSW(程序状态字)有影响。这在使用中应特别注意。
  1. 2010/4/21
  2. 人气(7251)
  3. 星级(10)
  4. 评论(1)
总数:318 | 当前第25/32 首页 上一页 ... 23 24 25 26 27 28 29 30 31 32 下一页 尾页