单片机编程题(经典).doc

上传人:s9****2 文档编号:543524734 上传时间:2023-02-13 格式:DOC 页数:6 大小:24.54KB
返回 下载 相关 举报
单片机编程题(经典).doc_第1页
第1页 / 共6页
单片机编程题(经典).doc_第2页
第2页 / 共6页
单片机编程题(经典).doc_第3页
第3页 / 共6页
单片机编程题(经典).doc_第4页
第4页 / 共6页
单片机编程题(经典).doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《单片机编程题(经典).doc》由会员分享,可在线阅读,更多相关《单片机编程题(经典).doc(6页珍藏版)》请在金锄头文库上搜索。

1、单片机编程题(经典)一、编程题(每小题4分,共20分)1。已知在累加器A中存放一个BCD数(9),请编程实现一个查平方表的子程序。2。请使用位操作指令实现下列逻辑操作: BIT=(P1。0)(11HCY)3。已知变量X存于VAR单元,函数值Y存于FUNC单元,按下式编程求Y值。Y=4。已知在R2中存放一个压缩的BCD码,请将它拆成二个BCD字节,结果存于SUM开始的单元中(低位在前).5。将存于外部RAM 8000H开始的50H数据传送0010H的区域,请编程实现.编程题(每小题4分,共20分) 1。SQR:1NC A MOVC A,A+PC RET TAB:DB 0,1,4,9,16 DB

2、25,36,49,64,81 2。ORL C,11H MOV 12H,C MOV C,P1.0 ORL C,/10H ANL C,12H MOV BIT,C RET 3. MOV A,VAR CJNE A,#0,COMP SJMP RES ;x=0,Y=0 COMP:JNC POSI ;x0,Y=1 MOV A,#0FFH ;x0,Y=1 SJMP RES POSI:MOV A,#01H RES:MOV FUNC,A RET 4。MOV R0,SUM MOV A,R2 ANL A,#OFH MOV R0,A ;存低字节BCD MOV A,R2 ANL A,#0F0H SWAP A 1NC R0

3、 MOV R0,A ;存高字节BCD RET 5。 MOV DPTR,8000H MOV R0,10H MOV R2,#50H LOOP:MOVX A,DPTR ;取数 MOVX R0,A ;存数 1NC DPTR 1NC R0 DJNZ R2,LOOP RET二、编程题(10分) 将内部RAM20H为首的16个单元的8位无符号数排序写出程序,并作适当注释 SORT: MOV R0, 20H MOV R7,07H CLR TR0 ;交换标志位复位 LOOP: MOV A,R0 MOV 2BH, A INC R0 MOV 2AH, R0 CLR C SUBB A, R0;比较前后两个数 JC N

4、EXT ; MOV R0, 2BH DEC R0 MOV R0, 2AH INC R0 SETB TR0 ;置交换标志位有效 NEXT: DJNZ R7, LOOP JB TR0, SORT;若交换标志位有效,继续进行 HERE: SJMP $三、编程序*1.请使用位操作指令,实现下列逻辑操作: P1.5=ACC。2P2。7ACC。1P2。02。在外部RAM首地址为TABLE的数据表中有10个字节数据,请编程将每个字节的最高位无条件地置1.3。已知内部RAM 30H单元开始存放20H个数据,将其传送到外部RAM的0000H单元开始的存储区,请编程实现。4。已知8个无符号数之和存于R3R4,求其

5、平均值,结果仍存于R3R4中,请编程实现(R3为高字节).5。两个字符串分别存放在首地址为42H和52H的内部RAM中,字符串长度放在41H单元,请编程比较两个字符串。若相等,则把数字00H送40H单元,否则把0FFH送40H单元。6。请编一能求20H和21H单元内两数差的绝对值,并把它保留在内部RAM的30H单元的程序。编程题参考答案 1。先进行与操作,再进行或操作程序如下: MOV C,ACC.1 ANL C,P2,0 MOV 12H,C MOV,C,A CC.2 ANL C,P2.7 ORL C,12H MOV P1.5,C RET 2。 MOV R2,10 MOV DPRT,TABLE

6、 LOOP: MOVX A,DPRT;取一数 ORL A,80H;最高位置1 MOVX DPTR,A;写回原地址 1NC DPTR;处理下一单元 DJNZ R2,LOOP RET3。 MOV R0,30H MOV R1,#00H MOV R2,#20H LOOP: MOV A,R0;取数 MOVX R1,A;存数 1NC R0 1NC R1 DJNZ R2,LOOP RET 4.利用移位指令作除8操作,程序如下: MOV R2,#3 LOOP:CLR C MOV A,R3 RRC A ;高字节除以2,末位移入C,高位补0 MOV R3,A ;暂存高字节 MOV A,R4 RRC A ;低字节除

7、以2,高字节末位移入低字节高位 MOV R3,A DJNZ R2,LOOP RET 5。有一个字节不等,整个字符串不相等,所有字节相等,两字串才相等 MOV R0,42H MOV R1,52H LOOP:MOV A,R0 CLR C ;不相等,FFH40H SUBB A,R1 JNZ LOOP1 ;相等时,比较下一字节 INC R0 INC R1 DJNZ 41H,LOOP MOV 40H,#0 ;所有字符均相等,则两字串相等。 RET LOOP1:MOV 40H,#0FFH RET6ORG 1200H CLR C ;Cy清零MOV A,20H SUBB A,21H ;两数差送AJNBACC.7,NEXT;若正,则NEXTCPLA;若负,则求补INCANEXT:MOV30H,A;送回绝对值SJMP END

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号