《2022年机电一体化《单片机原理及应用》山东大学网络教育考试模拟题及问题详解.pdf》由会员分享,可在线阅读,更多相关《2022年机电一体化《单片机原理及应用》山东大学网络教育考试模拟题及问题详解.pdf(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、单片机原理及应用除非特别声明,编程题可以使用汇编语言编写,也可以使用C 语言编写1、 分析程序的执行结果, 将结果填写到空格中 。ORG 0000HMOV 30H,#50HMOV R0,#30HMOV A,R0 ;(A= 50H )MOV A,#79HMOV B,#20H ;(A= 79H B= 20H )DIV AB ;(A= 03H B= 19H )PUSH BMOV B,#0AHMUL AB ;(A= 1EH B= 00H )POP BADD A,B ;(A= 37H B= 19H )MOV 30H,A ;(30H单元的内容 = 37H )MOV 20H,30HCLR 01H ;(20H
2、 单元的内容 = 37H )MOV A,20H ;(PSW中 P 的内容 = 1 )CPL ARR A ;( PSW中 C的内容 = 0 )SWAP A ;(A= 46H )ADDC A,#0F0H ;(A= 36H );(PSW中 P 的内容 = 0 );( PSW中 C的内容 = 1 )RL A ;(A= 6CH );(PSW中 P 的内容 = 0 );( PSW中 C的内容 = 0 )LOOP: AJMP LOOP2、 将 MCS51内部 RAM60H 65H单元存放的 12 个 16 进制数变为 ASCII码, 放到 0090H 单元开始的外部 RAM中。使用汇编语言编写 MAIN:M
3、OV R0,#60HMOV R2,#6MOV DPTR, #0090HHASC:精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 9 页 - - - - - - - - - - MOV A,R0ANL A,#0FH ;屏蔽高四位ADD A,#0DH MOVC A,A+PC ;查表低四位转换为ASCII码MOVX DPTR,A ;送如外部 RAMINC DPTRMOV A,R0ANL A,#0F0HSWAP AADD A,#6MOVC,A+PC ;高四位转换为 ASCII码MOVX DPTR,AI
4、NC R0INC DPTRDJNZ R2,HASCENDASCTAB:DB 30H 31H 32H 33H 34 H 35H 36H 37H 38H 39HDB41H 42H 43H 44H 45H 46H3、 某一故障检测系统,当出现故障1 时,线路 1 上出现上升沿;当出现故障2 时,线路 2 上出现下降沿。没有故障时,线路1 为低电平,线路 2 为高电平。 出现故障时,相应的指示灯变亮。故障消失后,指示灯熄灭。试用 MSC1211为单片机实现该故障检测功能,画出电路原理图,并写出相应程序。4、 用 MSC1211的 T0定时/计数器,设计程序,实现在输出周期为200ms的占空比为 1:1
5、 的方波,输出 500 个方波后停止输出。解:ORG 0000HLJMP MAINORG 000BH ;T0 口中断服务程序入口地址LJMP INT_T0MAIN:MOV TMOD,#00H ;T0 工作于方式0 定时MOV TL0,#0CHMOV TH0,#1EH ;设定秒中断周期为1msMOV A,200 ;设定输出周期为200 msMOV R2,1000 ;输出 500 个方波SETB TR0精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 9 页 - - - - - - - - - -
6、SETB ET0SETB EASETB SJMP $INT_T0:MOV TL0, #0CHMOV TH0,#1EH ;T0 重装时间常数CPL 位取反DEC R2JZ ENDP ;若 R2 为 0,则结束程序,否则返主程序继续输出RETI ;返主程序ENDP:END5、 利用 MSC1211的 A/D 构成数据采集系统。 使用模拟通道 0 进行连续数据采集,采集 8 次后取得平均值,存放到预先分配好的100 个内存单元中,这100 个单元存满后,再从第一个单元进行覆盖保存。 写出完整的程序清单 (应在适当的地方加程序注释) 。解:#include#includeextern void aut
7、obaud(void);/ 按键扫描处理程序LED动态扫描子程序假设各端口都已初始化#include Unsigned char duanx=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 xbdUnsigned char weix=0 x80,0 x40,0 x20,0 x10,0 x80,0 x40Void main(void)Init();/ 初始化各端口P1=0While(1)Unsigned char ;For (i=0;i6,i+)P0=duanxi;P1+精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - -
8、 - - - - - -第 3 页,共 9 页 - - - - - - - - - - P0=weixi;Delay();P1=0;P0=0;i=0;p1=05、利用 8031 和 8 位 A/D(ADC0809 )构成数据采集系统。每隔20ms采集通道0 的一次数据, 将采集的数据存放在30H的内部 RAM 中。画出原理示意图, 写出较完整的程序清单。(提示:需要用定时器和外部中断) 。单片机原理及应用一、分析程序的执行结果,将结果填写到空格中 。1、MOV 40H,#80HMOV R0,#40HMOV A,R0 ;(A= 80H )MOV B,#20H DIV AB ;(A= 04H B=
9、 00H )MOV R0,A ;最终结果存于内存单元40H 中。2、MOV A,#2AHRR AMOV B,AMUL AB ;(A= B9H B= 01H )(OV= 1 CY= 0 )3、MOV A,#0B2H MOV R1,#055H ANL A,R1 ; (A= 10H )ORL A,R1 ; (A= 55H )XRL A,R1 ; (A= 00H )精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 9 页 - - - - - - - - - - SWAP A ; (A= 00H )4、
10、设内存 20H的内容为 30H,30H 的内容为 46H,46H的内容为 57HMOV R0,#30HMOV 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,#39HCLR 2AH ; (25H)=(00111001 B)CPL 2CH ; (25H)=(00101001 B )SETB 2EH ; (25H)=(01101001 B )MOV C,28H ;( PSW中 C的内容 = 1 )二、程序设计1、MCS51内部
11、RAM 40H 60H单元存放着有符号16 进制数,将其中能被2 整除的数,存放到 0090H单元开始的外部 RAM中。使用汇编语言编写 解:ORG 0000HJMP STARTSTART :MOV SP ,#60HMOV DPTR ,#0090HMOV R0,#40HMOV R1, #21LOOP0 :MOV A,R0MOV B, #2DIV AB MOV R2, BCJNZ R2, #0, LOOP1 ; 余数为 0 则继续 ,不为 0 则转移MOV A,R0MOV DPTR,A精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - -
12、- - - - - -第 5 页,共 9 页 - - - - - - - - - - INC DPTRLOOP1: INC R0DJNZ R1, LOOP0END2、用 MSC1211的 T1 定时/计数器,定时中断,使 P1口的 8 个发光二极管每隔1S 循环点亮。设系统主频为6MHZ。解:ORG 0000HLJMP MAIN ;转主程序ORG 001BH ;T1 中断服务程序入口地址LJMP T1-ISRORG 0100HMAIN:MOV SP ,#60H ;设置堆栈指针MOV P1,#01H ;设置发光MOV TMOD,#10H ;T1 初始化MOV TL1, #B0HMOV TH1,#
13、3CHSETB TR1 ;启动 T0 计数SETB ET1 ;允许 T0 中断SETB EA ;CPU开中断SJMP $ ;等待T1_ISR:MOV TL1,#B0HMOV TH1,#3CHMOV A,P1 ;P1 口循环左移RL AMOV P1,AEXIT: RETIEND3、设有甲、乙两台单片机,以工作方式3 进行串行通讯,设晶振为,波特率为 9600,甲机将内存单元中的120 个数据作补偶校验后发送给乙机,乙机对接收到的数据进行奇偶校验,若校验正确,则从机发送00H 给甲机,甲机继续发送数据,校验不正确,则发送0FFH 给甲机,甲机重新发送原数据,编写乙机精品资料 - - - 欢迎下载
14、- - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 6 页,共 9 页 - - - - - - - - - - 的接收程序。(应在适当的地方加程序注释)解:ORG 0000HAJMP MAINORG 0023HLJMP SE2_INTMAIN: 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
15、 SETB ESSJMP $ ;等待接收中断SE2_INT:JB RI,LOOPACLR T1LJMP ENDRLOOPA : 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 ; 补偶正确,转 LOOP3LOOP1: ANL C, RB8 ;8位数为奇,再检测RB8位 JC LOOP3 ;RB8=1,补偶正确,转 LOOP3LOOP2: MOV A ,#0
16、FFH ;检测不正确发送FF给甲机MOV SBUF,AJMP ENDRLOOP3 : MOVX DPTR ,AMOV A,#00HMOV SBUF,AINC DPTRDJNZ R1, ENDR精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 7 页,共 9 页 - - - - - - - - - - CLR ES ; 停止接收ENDR: RETI2、某一故障检测系统,当出现故障时,线路出现下降沿;没有故障时,线路为高电平。出现故障时,相应的指示灯变亮。故障消失后,指示灯熄灭。试用MSC1211为单片机实现该
17、故障检测功能,画出电路原理图,并写出相应程序。4、 变量 k 从 20 变到 200,变化步长为 20。对于每一个值,使用整形数算术运算计算 8*k,k*k*k 和(40*k/150)3。这三个值通过MSC1211的 D/A 转换后同步输出(均使用电压输出模式) 。试编写程序实现。解:#include data unsigned int i , j ;void main (void)PDCON &=0 x37 ; / 同时开启 ADC 和 DAC模块ADCON0 =0 x30 ; / 内部参考电压DACSEL =6; / 选择将要访问DAC加载寄存器LOADCONDACL = 0XFC ; /
18、 设置 DAC1、2、 3 通道同步更新模式DACSEL = 4; / 选择 DAC0、1 控制寄存器DACL =0 x24; /DAC IDAC 关闭,内部参考电压DACH =0 x24; /DAC1 IDAC 关闭,内部参考电压DACSEL=5; / 选择DAC2、3 控制寄存器DACL =0 x24 ; /DAC2 IDAC 关闭,内部参考电压DACH=0 x24; /DAC3 IDAC 关闭,内部参考电压while (1) DACSEL = 0; / 选择 DAC1数据寄存器DAC = 0 x8000 ;/ 送 DAC1要转换的数据for (j=0 ; j 100 ; j+ ) ;/
19、延时DAC =0 ;for (i=20 ; i200 ; i+=20 ) ; DACSEL = 1;DAC = 8*k ;精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 8 页,共 9 页 - - - - - - - - - - DACSEL =2 ;DAC = k*k*k ;DECSEL = 3;j = 40*k/150 ;j = j3 ;DACSEL = 6 ;DACL = 0XFC ; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 9 页,共 9 页 - - - - - - - - - -