单片机复习材料
发布时间:2021-06-05
发布时间:2021-06-05
例3.1编程将外部数据存储器的000EH和000FH单元的内容相交换。
ORG 0000H MOV 20H , A MOVX @ R0 , A
MOV P2 , # 0H MOVX A , @ R1 SJMP $ MOV R0 , # 0EH XCH A ,20H END MOV R1 , # 0FH MOVX @ R1 , A MOVX A , @ R0 MOV A , 20H
例3.2将内部数据存储器的(31H)(30H)中的16位数求其补码后放回原单元。 ORG 0000H CPL A ADDC A, # 0 MOV A , 31H ADD A, # 1 ORL A, # 80H JB ACC. 7 ,CPLL MOV 30H , A MOV 31H , A SJM $ MOV A , 31H SJMP $ CPLL:MOV A , 30H CPL A END
例3.3设变量放在片内RAM的20H单元,取值范围为00H,01H,02H,03H,04H,05H,要求编查表程序,查出变量的平方值,并放入片内RAM的21H单元。
ORG 0000H MOV 21H , A MOV DPTR , # TAB2 SJMP $ MOV A , 20H TAB2:DB 00H,01H,04H,09H,16H,25H MOVC A , @ A+DPTR END
例3.4 设内部RAM的ONE地址单元存放着一个8位无符号二进制数,要求将其转化为压缩的BCD码,将百位放在HUND地址单元,十位和个位放在TEN地址单元。 解:
ORG 0000H XCH A, B ONE EQU 20H MOV A , ONE DIV A B HUND EQU 22H MOV B , # 64H SWAP A TEN EQU 23H DIV AB ADD A , B END MOV HUND , A MOV TEN , A MOV A , # 0AH SJMP $
例3.5在内部RAM的40H和41H地址单元中,有2个无符号数,试编程比较这两数的大小,将大数存于内部RAM的GR单元,小数存于LE单元,如两数相等,则分别送入GR和LE地址单元。
ORG 0000H NEQ: JC LESS SJMP $ MOV A , 40H MOV GR , A GR EQU 30H CJNE A , 41H ,NEQ MOV LE , 41H LE EQU 31H MOV GR , A SJMP $ END MOV LE , A LESS: MOV LE , A SJMP $ MOV GR , 41H
例3.6设变量X以补码形式放在片内RAM的30H单元,函数Y与X有如下关系式: X X>0 Y=
20H X=0
X+5
试编制程序,根据X的取值求出Y,并放回原单元。 解:
ORG 0000H JZ ED SJMP ED