好文档 - 专业文书写作范文服务资料分享网站

单片机原理及应用B答案 

天下 分享 时间: 加入收藏 我要投稿 点赞

《单片机原理及应用》模拟卷2

1、分析程序的执行结果,将结果填写到空格中。

ORG 0000H

MOV 30H,#50H MOV R0,#30H MOV A,@R0 ;(A= 50H ) MOV A,#79H

MOV B,#20H ;(A= 79H B= 20H ) DIV AB ;(A= 03H B= 19H ) PUSH B MOV B,#0AH MUL AB ;(A= 1EH B= 00H ) POP B ADD A,B ;(A= 37H B= 19H ) MOV 30H,A ;(30H单元的内容= 37H ) LOOP: AJMP LOOP

2、将MCS51内部RAM50H~55H单元存放的12个16进制数变为ASCII码,放到2800H单元开始的外部RAM中。 解:ORG

0000H

LJMP MAIN

MAIN: MOV DPTR,#70H MOV @R1,#1120H MOV R0,#06 TOP: MOV A,@DPTR PUSH ACC ANL A,#0FH ;取出四位二进制数 PUSH ACC

CLR C

SUBB A,#0AH POP ACC ;弹回A中 JC LOOP ;该数〈10去LOOP ADD A,#07H ;否则加07H LOOP: ADD A,#30H ;加30H MOV R2,A

POP ACC

ANL #0F0H ;取出下一个四位二进制数 PUSH ACC CLR C

SUBB A,#0AH POP ACC ;弹回A中 JC LOOP ;该数〈10去LOOP1 ADD A,#07H ;否则加07H LOOP1: ADD A,#30H ;加30H SWAP A ORL A,R2 MOVX @R1,A ;将结果存到RAM中 INC DPTR INC R1 DEC R0 JNZ TOP ;判断转换完没有,未转换完则转TOP

3、用8031的T0定时/计数器,设计程序,实现在P1.0输出50ms的方波,输出100个方波后停止输出。 #include

#define uchar unsigned char uchar a;

void main(void) {

TMOD=0X01; TL0=0XB0; TH0=0X3C; EA=1; ET0=1; TR0=1; while(1) {

if(a==100) { EA=0;

TR0=0; } } }

void timer0(void) interrupt 1 {

TL0=0XB0; TH0=0X3C; cpl p1.0; a++; }

4、甲单片机利用方式1将内部RAM30H~37H单元的ASCII码发送到乙机。编制甲机发送和乙机接收的程序(加奇校验)。 A机发送程序设计 ST:

MOV TMOD,#20H MOV TL1,#0E8H MOV TH1,#0E8H SETB TR1

MOV SCON ,#50H MOV R0,#30H MOV R1,#08H LOOP: MOV A,@R0

CALL FS INC R0 DJNZ R1,LOOP RET FS: MOV C,P CPL C

MOV ACC.7,C MOV SBUF A WAIT:

JNB TI,WAIT CLR TI RET

B机的接受程序设计

接受串口发来的程序,假设存放在30H—37H中

ST:

MOV TMOD,#20H MOV TL1,#0E8H MOV TH1,#0E8H SETB TR1

MOV SCON ,#50H MOV R0,#30H MOV R1,#08H LOOP: CALL JS JNC ERROR MOV @R0,A INC R0

DJNZ R1,LOOP

RET ERROR:………;出错处理,如返回出错信息等 RET JS:

JNB RI JS CLR RI

MOV A, SBUF MOV P C ANL A,#7FH RET

5、利用8031和8位A/D(ADC0809)构成数据采集系统。每隔20ms采集通道0的一次数据,将采集的数据存放在30H的内部RAM中。画出原理示意图,写出较完整的程序清单。(提示:需要用定时器和外部中断)。 MAIN:MOV TMOD,#01H //定时器0 初始化 MOV TL0,#10H MOV TH0,#27H MOV R0,#30H SETB TR0 SETB ET0 SETB EX0 SETB EA SJMP $

定时器0 中断服务子程序: ORG 000BH

MOV DPTR,#7EF8H //启动ADC,对IN0 通

//道进行AD 转换 CLR TR0

MOV TL0,#10H MOV TH0,#27H SETB TR0 RETI

外部中断(INT0)子程序: ORG 0003H MOVX A,@DPTR MOV @R0,A INC R0 RETI

键盘扫描子程序: KEY1: ACALL KS1 ;调用判断有无键按下子程序 JNZ LK1 AJMP KEY1

LK1: ACALL TM12s ;调用12ms 延时子程序 ACALL KS1 JNZ LK2 AJMP KEY1

LK2: MOV R2,#0FEH ;首列扫描字入R2 MOV R4,#00H ;首列号入R4

LK4: MOV DPTR,#0FD01H ;列扫描字送8155PA 口 MOV A,R2 MOVX @DPTR,A

INC DPTR ;指向8155PC 口 INC DPTR

MOVX A,@DPTR

JB ACC.0,LONE;第0 行无键按下,查第1 行 MOV A,#00H ;有键按下,该行首键号送A AJMP LKP

LONE: JB ACC.1,NEXT MOV A,#08H

LKP: ADD A,R4 ;键号=行键号+列号 PUSH ACC

LK3: ACALL KS1 ;等待键释放

JNZ LK3 POP ACC ;键释放,键号放入A RET

NEXT: INC R4 ;指向下一列,列号加1

单片机原理及应用B答案 

《单片机原理及应用》模拟卷21、分析程序的执行结果,将结果填写到空格中。ORG0000HMOV30H,#50HMOVR0,#30HMOVA,@R0;(A=50H)MOVA,#79HMOVB,#20H;(A=79HB
推荐度:
点击下载文档文档为doc格式
5rgz87r0g06i8ss1c8w102tjb2iy3i014o7
领取福利

微信扫码领取福利

微信扫码分享