手机版

单片机复习材料(17)

发布时间:2021-06-05   来源:未知    
字号:

3.11将内部RAM的20H单元中的十六进制数变换成ASCII码存入22H,21H单元中,高位存入22H单元中,要求用子程序编写转换部分。 答:

ORG 0000H

MOV A,20H ASCII:CJNE A,# 0AH,NE ANL A,# 0F0H NE:JC A30

SWAP A ADD A,#37H ACALL ASCII RET

MOV 22H,A A30:ADD A,30H MOV A,20H RET ANL A,#0FH END ACALL ASCII MOV 21H,A SJMP $

3.12 编写一段程序,以实现图3-8中硬件的逻辑运算功能。

答:

ORG 0000H MOV C,20H ANL C,2FH ORL C,/2FH CPL C

ANL C,53H MOV P1.0,C SJMP $ END

3.13 用位操作指令实现下面的逻辑方程(×表示逻辑乘,+表示逻辑加) 答:

ORG 0000H MOV C,ACC.3 ANL C,P1.4 ANL C,/ACC.5 MOV 20H,C MOV C,B.4

CPL C

ANL C,/P1.5 ORL C,20H MOV P1.2,C SJMP $ END

3.14 试编写一个3字节无符号数乘1字节的乘法程序。 答:

ORG 0000H MOV R7,#03H MOV R0,#data MOV R2,#0

NEXT:MOV A,@R0 MOV B,R1

MUL AB ADD A,R2 MOV @R0,A MOV A,#0 ADDC A,B MOV R2,A

INC R0

DJNZ R7,NEXT MOV @R0,B SJMP $ END

4.4 编程将8XX51的内部数据存储器20H单元和35H单元的数据相乘,结果存到外部数据存储器中(位置不固定)。 答:

main() p2=0x35; {char data *p1,*p2; a=*p1*(*p2); xdata int a; }

p1=0x20;

4.5 讲将如下汇编程序译成C程序(等效即可)ORG 0000H SJMP $ CLR P1.0 MOV P1,#04H TLC:MOV A,#0 DJNZ R5,LOOP MOV R6,#0AH MOV @R0,A CLR P1.3 MOV R0,#30H MOV R5,#08 INC R0

LOOP:MOV C,P1.2 DJNZ R6,TLC2543 CLR P1.0

SETB P1.3 RLC A RET ACALL TLC SETB P1.0 END 答:

#include﹤reg51.h﹥ P1=0x04; For(i=0;i<8;i++) #define uchar unsigned char P=0x30; {P1_1=msb; sbit P1_0=P1^0; P1_0=0; y=ACC<<1; sbit P1_1=P1^1; P1_3=1; 1sb=P1_2; sbit P1_2=P1^2; for(i=0;i<10;i++) P1_0=1; sbit P1_3=P1^3; {*P=tlc(); P1_0=0; sbit msb=ACC^7; P++;} } sbit 1sb=ACC^0; } return y; uchar tlc(void); uchar tlc(void) } main() {uchar i,y; {uchar*P; ACC=0;P1_3=0;

4.6 8051的片内数据存储器25H单元中放有一个0~10的整数,编程求其平方根(精确到5位有效数字),将平方根放到30H单元为首址的内存。 答:

#include<math.h> P1=0x25; Main() *P2=sqrt(*P1); {float*P2; } Char*P1;

单片机复习材料(17).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
×
二维码
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)