1.在片内RAM 30H单元有-个8位二进制数,将其转换成压缩BCD码,存于片内RAM 41H(高位)40H(低位)中。方法:2^8=256,所以8位二进制A<=256,A/100商是百位数,存放到41h单元,余数再除以10,再得商是10位数,高低位互换,)
ORG 0100H
START:
MOV A,30H ;取来8位二进制数
MOV B,#100
DIV AB ;除以100
MOV 41H,A ;商是百位数,存放到41h单元
MOV A,B ;取回余数
MOV B,#10
DIV AB ;再除以10
SWAP A ;商是10位数,高低位互换
ORL A,B
MOV 40H,A ;将十位数与个位位数存入40h
SJMP $
END
2.一个字节(8位)BCD码转换为二进制数(方法:先将高半字节乘以10,再加上低半字节)设待转换的ascii是几位二进制编码BCD码存放于R2中
DTOB:MOV A,R2
ANL A,#0F0H
SWAP A
MOV B,#0AH
MUL AB
MOV R3,A
MOV A,R2
ANL A,#0FH
ADD A,R3
RET
3.二进制数转换为ASCII码
设(30H)=4BH,将高4位的ASCII码放在31H单元,低4位的ASCII码放在32H单元,程序具有通用性,向入口参数30H存入任何数,都能将其变成相应的ISCII码.
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:MOV SP,#60H
MOV 30H,#4BH
MOV R2,30H
MOV A,R2
ANL A,#0FH
CJNE A,#0AH,NEQ
NEQ: JC LOOP
ADD A,#37H
JMP LOOP3
LOOP:ADD A,#30H
LOOP3:MOV 31H,A
MOV A,R2
SWAP A
ANL A,#0FH
CJNE A,#0AH,NE1
NE1: JC LOOP1
ADD A,#37H
JMP LOOP4
LOOP1:ADD A,#30H
LOOP4:MOV 32H,A
A1: SJMP A1
END
4.已知R0的低半个字节为一个四位的二进制数,要求将其转换为ASCAII码后送回R0中。
二进制数与ASCII码的对应关系:
四位二进制 ASCII
0000 (0) 30H
0001 (1) 31H
1001 (9) 39H
1010 (A) 41H
1111 (F) 46H
ORG 1000
BTOASC: PUSH ACC
PUSH PSW
OV A , R0
ANL A , #0FH ;取四位二进制数
MOV R0 , A 暂存
CLR C
SUBB A , #0AH ;与10比较
MOV A , R0 ;恢复四位二进制数
JC LOOP ;小于10转LOOP
ADD A , #07H ;大于10先加07H
LOOP: ADD A , #30H ;加30H
MOV R0 , A ;存结果
POP PSW
POP ACC
RET
5.一位十六进制数转换成ASCII码
(方法:将十六进制数减10,余数为负数时进位C=1,判断数值在0—9之间,直接加30H;余数为正数时进位C=0,判断数值在A—F之间,先加上07H,再直接加30H)
ORG 0000H
MOV R2,#0CH
MOV A,R2
CLR C
SUBB A,#0AH ; 余数为负数时进位C=1, 判断数值在0—9之间;余数为正数时进位C=0,判断数值在A—F之间
MOV A,R2
JC ADD30
ADD A,#07H
ADD30:ADD A,#30H
MOV R2,A
NOP
END
6.将多位数十六进制数转换成ACAII码 (方法:查表法)设地址指针R0指向十六进制数低字节,R2存放字节数n,转换后地址指针R0指向十六进制数高字节,R1指向要存放的ASCII码的高位地址
ORG 0021H
TAB2:DB 01H,03H,04H,06H,09H,0AH,0CH,08H,0EH,02H
MOV R0,#30H
MOV R2,#10
HTASC:MOV A,@R0
ANL A,#0FH
ADD A,#15H
MOVC A,@A+PC
MOV @R1,A
INC R1
MOV A,@R0
SWAP A
ANL A,#0FH
ADD A,#06H
MOVC A,@A+PC
MOV @R1,A
INC R0
INC R1
DJNZ R2 ,HTASC
ASCTAB:DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H
DB 41H,42H,43H,44H,45H,46H
7.BCD码换为ACAII码
1.源程序
RESULT EQU 30H ;等值伪指令
ORG 0
LJMP START
ASCIIT:
DB ‘0123456789ABCDEF';定义数字对应的ASCII表
BINTOHEX:
MOV DPTR,#ASCIIT
MOV B, A ;暂存A
SWAP A
ANL A,#0FH ;取高四位
MOVC A,@A+DPTR ;查ASCII表
MOV RESULT, A
MOV A,B ;恢复A
ANL A,#0FH ;取低四位
MOVC A,@A+DPTR ;查ASCII表
MOV RESULT+1,A
RET
START: MOV SP,#40H
MOV A,#12H
CALL BINTOHEX
LJMP $
END
一、选择题。
1. 十进制0.625转换成二进制数是( A )
A 0.101 B 0.111 C 0.110 D 0.100
2.控制串行口工作方式的寄存器是( C )
(A) TCON (B) PCON (C) SCON (D)TMOD
3.MCS-51的中断允许触发器内容为83H,CPU将响应的中断请求是( B )
(A) T1, (B)T0,T1 (C)T1,串行接口 (D) T0
4.执行MOVX A,@DPTR指令时,MCS-51产生的控制信号是(C)
(A)/PSEN (B)ALE (C)/RD (D)/WR
5. ORG 000BH
LJMP 3000H
ORG 0003H
LJMP 2000H
当CPU响应外部中断0后,PC的值是( B )
(A)0003H (B)2000H (C)000BH (D)3000H
6.MCS-51有中断源( A )
(A)5个 (B)2个 (C)3个 (D)6个
7.MCS-51上电复位后,SP的内容是:(B)
(A)00H (B)07H (C)60H (D)30H
8.能够用紫外光擦除ROM中程序的只读存储器称为( C )。
A.掩膜ROM B.PROM C.EPROM D.EEPROM
9.定时器/计数器工作方式1是( C )。
A.8位计数器结构 B.2个8位计数器结构
C.13位计数结构 D.16位计数结构
A.掩膜ROM B.PROM C.EPROM D.EEPROM
9.定时器/计数器工作方式1是( C )。
A.8位计数器结构 B.2个8位计数器结构
C.13位计数结构 D.16位计数结构
10.MCS-51单片机的位寻址区位于内部RAM的( D )单元。
A. 00H—7FH B. 20H—7FH C. 00H—1FH D. 20H—2FH
二、填空题。
1.微处理器有 运算器 、 控制器 和若干寄存器组成。
2.MCS-51中凡是字节地址能够被 8 整除的SFR均能位寻址。
3.计算机的系统总线有地址总线、 控制总线 和数据总线。
4.MCS-51有 5 个中断源,有 2 个中断优先级,优先级由软件填写特殊功能寄存器 IP 加以选择.
5.微机与外设间交换信息方式有程序控制方式(无条件传送方式和 查询传送方式 )、中断传送方式、 直接数据通道传送DMA 。
6.当使用慢速外设时,最佳的传输方式是 中 断
7.MCS-51单片机中,内部RAM有4组工作寄存器,它们由PWS特殊功能寄存器中的 RS0、RS1 位来选择用哪一组。
8、8031的异步通信口为 全双工 (单工/半双工/全双工)
9、如果(A)=34H,(R7)=0ABH,执行XCH A, R7;结果(A)= 0ABH ,
(R7)= 34H 。
10.访问片外程序存储器MOVC指令采用的是 变址 寻址方式。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论