单片机题目 求详解!!

2024-12-28 13:17:12
推荐回答(4个)
回答1:

题目可能主要考2分方面:1. 16进制数转ascii码; 2. 指定地址读写操作;
对于1,主要是定义一个字符数组,存放0~9A~F的字符,然后根据你取出来的16进制分高地位索引这个数组,得到对应的字符,然后保存的就是这个字符对应的ascii码了.
对于2.有_at_关键字,绝对宏,连接定位和数组指针等方法,这里应该是考数据指针的用法.

大概写了下,没有调试过
char asc[] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}
char* rp=0x20;
char* wpl=0x21;

char* wph=0x22;

char index;
index = (*rp)&0x0f;//读低4位
*wpl = asc[index]; //低位转换asc码并写入
index = ( (*rp)&0xf0)>>4;
*wph = asc[index];

应该就是这样的了.

回答2:

MOV A, 20H
ANL A, #15
CALL TOASC
MOV 21H, A

MOV A, 20H
SWAP A
ANL A, #15
CALL TOASC
MOV 22H, A

SJMP $

TOASC:
转换程序,请楼主自己写一个原创的。

RET

END

回答3:

sss

回答4:

yhju