机电一体化《单片机原理及应用》山东大学网络教育考试模拟题及答(2)

2018-11-24 18:04

LJMP INTST

MAINT: MOV SCON,#90H ;置工作方式2,并允许接收 MOV TMOD,#20H ;置T1工作方式2 MOV TH1,#0FDH MOV TL1,#0FDH

MOV DPTR,#ADDR ;设置数据块首址ADDR的地址指针

MOV R0,#120 ;设置发送字节数 MOV R1,#00H ;设置校验和的初值

MOV R2,#NAME SETB TB8 ;置位TB8位,作为发送地址桢信息特征 SETB TR1

SETB EA ;CPU开中断

SETB ES ;允许串行口中断 MOV A,R2 ;发送地址桢信息 MOV SBUF,A SJMP $

;中断服务程序

INTST: MOV A,TB8 ;判断是发送地址还是数据,若为数据则转

LOOP0

CJNE A,01H,LOOP0

CLR TI ;地址桢信息发送完后清发送中断

LOOP0:JB RI,LOOP1 ;检查是否是接受中断?若RI=1则转

入接受乙机发送应答信息

CLR TI ;因RI=0,表明是甲机发送中断数据的中断请

求。CPU响应中断,在中断服务程序中应清中断标志

MOV A,TB8; CJNE A,#01H,LOO3 ;若为发送数据中断则转LOOP3

继续发送数据 LJMP ENDT ;甲机发送一数据完毕跳至中断返回程序

LOOP1:CLR RI ;清接受中断标志 MOV A,TB8 ;判断是发送地址还是数据,若为数据则转

LOOP2

CJNE A,#01H,LOOP4;若TB8为0则接受的为乙机数

据校验应答 MOV A,SBUF ;取乙机的应答数据

CJNE A,@R2,LOOP2 ;若乙机应答信息不是从机地

址,则地址传送不正确,则转LOOP2程序重新发送地址信息,

否则清TB8,发送数据

CLR TB8

LOOP3:MOVX A,@DPTR ;取下一个数 MOV SBUF,A ;启动串行口,发送新的数据

XRL A,@R1 MOV @R1,A INC DPTR ;修改地址指针 DEC R0 ;修改发送字节数记数值

CJNE R0,#00H,ENDT ;判别120个字节数据都发送

完没有。如果没有发送完则跳至中断返回程序。继续发送

MOV A,@R1 MOV SBUF,A ;数据全部发送完毕则发送校验和 LJMP ENDT LOOP4:MOV A,SBUF ;取乙机的应答数据 CJNE A,#00H,LOOP5 ;若数据发送不正确,则

转LOOP5重新发送

CLR ES ;全部发送完毕,禁止串行口中断 LOOP5:MOV DPTR,#ADDR ;设置数据块首址ADDR的地址指针

MOV R0,#120 ;设置发送字节数 MOV R1,#00H ;设置校验和的初值 LJMP LOOP2 LOOP2:MOV A,R2 ;发送地址桢信息 MOV SBUF,A RETI ENDT: RETI

END

从机程序如下:

ORG 0000H

LJMP MAINR ;跳至主程序入口地址 ORG 0023H ;串行口中断服务程序入口 LJMP INTSR

MAINR:MOV SCON,#0B0H ;置工作方式2,并允许接收 MOV TMOD,#20H ;置T1工作方式2 MOV TH1,#0FDH MOV TL1,#0FDH

MOV DPTR,#ADDR ;设置数据块接收首址为ADDR

MOV R0,#120 ;设置接收字节数

MOV R2,#NAME MOV R1,#00H ;设置校验和的初值 SETB RB8 ;置位RB8位,作为接受地址信息特征 SETB TR1

SETB EA ;CPU开中断

SETB ES ;允许串行口中断 SJMP $

;中断服务程序

INTSR: MOV A, RB8 ;判断是接收地址还是数据,若为数据则转

LOOP0

CJNE A,01H,LOOP0

CLR RI ;地址桢信息接受完后清接收中断 MOV A,SBUF XRL A,@R2 JZ LOOP ;若地址相符则转LOOP,否则中断返回 LJMP ENDR

LOOP: CLR SM2 CLR RB8 MOV A,@R2 MOV SBUF,A ;想主机发送从机地址

LJMP ENDR

LOOP0:JB RI,LOOP1 ;检查是否是接受中断?若RI=1则转

入接受甲机发送的数据

CLR TI ;因RI=0,表明是乙机发送中断数据的中断请

求。CPU响应中断,在中断服务程序中应清中断标志

LJMP ENDR ;甲机发送一数据完毕跳至中断返回程序 LOOP1:CLR RI ;清接受中断标志 DEC @R0 JZ LOOP2 ;数据未接收完则中断返回,若接收完则转

LOOP2,校验 MOV A,SBUF ;取甲机发送的数据

MOVX @DPTR,A XRL A,@R1 MOV @R1,A LOOP2:MOV A,SBUF :取甲机发送的校验和 XRL A,@R1 JZ RIGHT LJMP WRONG

RIGHT:MOV MOV LJMP WRONG:MOV MOV

MOV

MOV LJMP ENDR: RETI END

A,#00H

SBUF,A ENDR A,#0FFH SBUF,A

DPTR,#ADDR ;设置数据块接收首址为ADDR R0,#120 ;设置接收字节数 ENDR

《单片机原理及应用》

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= 1E 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中。 MAIN: MOV R0,#50H MOV R2,#6

MOV DPTR, #2800H

HASC:

MOV A,@R0 ANL A,#0FH ;屏蔽高四位 ADD A,#0DH

MOVC A,@A+PC ;查表低四位转换为ASCII码 MOVX @DPTR,A ;送如外部RAM INC DPTR MOV A,@R0 ANL A,#0F0H SWAP A ADD A,#6

MOVC,@A+PC ;高四位转换为ASCII码 MOVX @DPTR,A INC R0 INC DPTR

DJNZ R2,HASC END

ASCTAB:DB 30H 31H 32H 33H 34 H 35H 36H 37H 38H 39H DB41H 42H 43H 44H 45H 46H

3、 编制四个十六进制单字节数相加后求平均的程序。

假设4个16进制的单字节分别为a,b,c,d,计算结果方到e中 #include

#define uchar unsigned char void main(void) {

uchar a,b,c,d,e; e=(a+b+c+d)/4; while(1); }

4、 用8031的T0定时/计数器,设计程序,实现在P1.0输出50ms的方波,

输出100个方波后停止输出。 #include

#define uchar unsigned char


机电一体化《单片机原理及应用》山东大学网络教育考试模拟题及答(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:幼儿园卫生保健工作规范化管理要求

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: