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

2018-11-24 18:04

3、 MOV A,#0B2H

MOV R1,#055H ANL A,R1 ;(A= 10H ) ORL A,R1 ;(A= 55H ) XRL A,R1 ;(A= 00H ) SWAP A ;(A= 00H )

4、 设内存20H的内容为30H,30H的内容为46H,46H的内容为57H

MOV R0,#30H

MOV A,@R0 ;(PSW中P的内容= 1 ) XCH A,R0 ADD A,#0DBH SUBB A,#74H ;(A= 96H ) ;(PSW中P的内容= 0 ) ;( PSW中C的内容= 0 ) 5、 MOV 25H,#39H CLR 2AH ;(25H)=( 00111001 B) CPL 2CH ;(25H)=( 00101001 B) SETB 2EH ;(25H)=( 01101001 B) MOV C,28H ;( PSW中C的内容= 1 ) 二、 程序设计

1、MCS51内部RAM 40H~60H单元存放着有符号16进制数,将其中能被2整除的数,存放到0090H单元开始的外部RAM中。[使用汇编语言编写] 解: ORG 0000H JMP START START: MOV SP,#60H MOV DPTR,#0090H MOV R0,#40H MOV R1, #21

LOOP0: MOV A,@R0 MOV B, #2 DIV AB MOV R2, B

CJNZ R2, #0, LOOP1 ;余数为0则继续,不为0则转移 MOV A,@R0 MOV @DPTR,A INC DPTR LOOP1: INC R0

DJNZ R1, LOOP0 END 2、用MSC1211的T1定时/计数器,定时0.1S中断,使P1口的8个发光二极管每隔1S 循环点亮。设系统主频为6MHZ。

解:ORG

0000H

;转主程序

;T1中断服务程序入口地址

LJMP MAIN ORG 001BH LJMP T1-ISR ORG 0100H

MAIN:MOV SP,#60H MOV P1,#01H MOV TMOD,#10H MOV TL1,#B0H MOV TH1,#3CH SETB TR1 SETB ET1 SETB EA SJMP $ T1_ISR:MOV TL1,#B0H MOV TH1,#3CH MOV A,P1 RL A MOV P1,A EXIT: RETI END

;设置堆栈指针

;设置P1.1发光 ;T1初始化

;启动T0计数 ;允许T0中断 ;CPU开中断 ;等待

;P1口循环左移

3、设有甲、乙两台单片机,以工作方式3进行串行通讯,设晶振为

11.0592MHz,波特率为9600,甲机将内存单元中的120个数据作补偶校验后发送给乙机,乙机对接收到的数据进行奇偶校验,若校验正确,则从机发送00H给甲机,甲机继续发送数据,校验不正确,则发送0FFH给甲机,甲机重新发送原数据,编写乙机的接收程序。(应在适当的地方加程序注释)

解:ORG 0000H AJMP MAIN ORG 0023H LJMP SE2_INT MAIN:

MOV SP,#60H MOV TMOD #20H

MOV TH1,#0FDH ;设置波特率为9600bps MOV TL1,#0FDH

MOV SCON,#90H ;串行口工作方式3,允许接收 MOV DPTR,#2000H;接收数据区 MOV R1,#120 SETB TR1 SETB EA SETB ES

SJMP $ ;等待接收中断 SE2_INT:

JB RI,LOOPA CLR T1 LJMP ENDR

LOOPA:CLR RI

MOV A,SBUF MOV C,P ;奇偶校验

JC LOOP1 ;如8位数是奇,则转LOOP1再检测RB8位 ORL C,RB8 ; 如8位数为偶,再检测RB8位,RB8=1,则9位数据为奇,补偶

JC LOOP2 ;错,转LOOP2

LJMP LOOP3 ;补偶正确,转LOOP3

LOOP1: ANL C, RB8 ;8位数为奇,再检测RB8位

JC LOOP3 ;RB8=1,补偶正确,转LOOP3

LOOP2: MOV A ,#0FFH ;检测不正确发送FF给甲机

MOV SBUF,A JMP ENDR

LOOP3: MOVX @DPTR ,A MOV A,#00H MOV SBUF,A INC DPTR DJNZ R1, ENDR

CLR ES ;停止接收

ENDR: RETI

2、某一故障检测系统,当出现故障时,线路出现下降沿;没有故障时,线路为高电平。出现故障时,相应的指示灯变亮。故障消失后,指示灯熄灭。试用MSC1211为单片机实现该故障检测功能,画出电路原理图,并写出相应程序。

4、 变量k从20变到200,变化步长为20。对于每一个值,使用整形数算

术运算计算8*k,k*k*k和(40*k/150)^3。这三个值通过MSC1211的D/A转换后同步输出(均使用电压输出模式)。试编写程序实现。 解: #include 〈Reg1211.h〉 data unsigned int i , j ; void main (void) {

PDCON &=0x37 ; //同时开启ADC和DAC模块 ADCON0 =0x30 ; //内部参考电压2.5V DACSEL =6; //选择将要访问DAC加载寄存器LOADCON

DACL = 0XFC ; //设置DAC1、2、3通道同步更新模式 DACSEL = 4; //选择DAC0、1控制寄存器 DACL =0x24; //DAC IDAC 关闭,内部参考电压 DACH =0x24; //DAC1 IDAC 关闭,内部参考电压 DACSEL=5; //选择 DAC2、3控制寄存器 DACL =0x24 ; //DAC2 IDAC 关闭,内部参考电压 DACH=0x24; //DAC3 IDAC 关闭,内部参考电压 while (1) {

DACSEL = 0; //选择DAC1数据寄存器 DAC = 0x8000 ;//送DAC1要转换的数据 for (j=0 ; j <100 ; j++ ) ;// 延时 DAC =0 ;

for (i=20 ; i<200 ; i+=20 ) ;

{

DACSEL = 1; DAC = 8*k ; DACSEL =2 ;

DAC = k*k*k ; DECSEL = 3; j = 40*k/150 ; j = j^3 ;

DACSEL = 6 ; DACL = 0XFC ; } }

}


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

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

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

马上注册会员

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