第1页四川理工学院试卷(2011至2012学年第1学期)课程名称:微控制器原理与应用(考试,A卷参考答案及评分标准)命题教师:适用班级:自动化2009级1、2、3、4班考试年月日共7页注意事项:1、满分100分。要求卷面整洁、字迹工整、无错别字。2、考生必须将姓名、班级、学号完整、准确、清楚地填写在试卷规定的地方,否则视为废卷。3、考生必须在签到单上签到,若出现遗漏,后果自负。4、如有答题纸,答案请全部写在答题纸上,否则不给分;考完请将试卷和答题卷分别一同交回,否则不给分。试题一、填空题(每空1分,共10分)1.“单片机”的英文缩写是SCM,“微控制器”的英文缩写是MCU。2.MCS-51单片机引脚信号中,信号名称带上划线表示该信号下降沿有效或低电平有效。3.MCS-51单片机内部RAM的寄存器区共有32个单元,分为4组寄存器,每组8个单元,以R0~R7作为寄存器名称。4.10根地址线可寻址1024个存储单元,32KB的存储单元需要15根地址线来寻址,每个存储单元存储1字节。5.计算机之间的数据通信有两种方式,即串行方式和并行方式,其中具有成本低特点的是串行数据通信。二、选择题,请将答案填入下面的表格内,否则不得分(每小题2分,共20分)题号12345678910答案DADBBCACBC题号一二三四五总分评阅(统分)教师得分得分评阅教师得分评阅教师学院专业级班学号姓名密封线密封线内不要答题第2页1.-3的补码是:A.10000011BB.11111100BC.11111110BD.11111101B2.在单片机中,用作标志寄存器的一个特殊功能寄存器是:A.PSWB.DPTRC.PCD.B3.对8051程序存储器的读操作,只能使用:A.MOV指令B.PUSH指令C.MOVX指令D.MOVC指令4.“MOVXA,@DPTR”指令中源操作数的寻址方式是:A.寄存器寻址B.寄存器间接寻址C.直接寻址D.立即寻址5.单片机的堆栈指针SP始终是:A.指示堆栈底B.指示堆栈顶C.指示堆栈地址D.指示堆栈长度6.单片机中PUSH和POP指令通常用来:A.保护断点B.保护现场C.保护现场、恢复现场D.保护寄存器的值7.8051单片机定时器T0的溢出标志TF0,若计满数在CPU响应中断后:A.由硬件清零B.由软件清零C.A和B都可以D.随机状态8.8051单片机定时器外部中断1和外部中断0的触发方式选择位是:A.TR1和TR0B.IE1和IE0C.IT1和IT0D.TF1和TF09.8051单片机的定时器T1用作定时方式时是:A.由内部时钟频率定时,一个时钟周期加1B.由内部时钟频率定时,一个机器周期加1C.由外部计数脉冲计数,下降沿加1D.由外部计数脉冲计数,一个机器周期加110.单片机8051的ALE引脚是:A.输出高电平B.输出低电平输C.输出矩形脉冲,频率为fosc的1/6D.输出矩形脉冲,频率为fosc的1/2第3页三、判断题(正确的划“√”,错误的划“×”)(每小题1分,共10分)1.汇编语言源程序是单片机可以直接执行的程序。(×)2.单片机的CPU从功能上可分为运算器和存贮器。(×)3.8051与8031的区别有:8051片内无ROM。(×)4.单片机系统扩展时使用的锁存器,通常是用于锁存高8位地址。(×)5.执行ACALL指令时,栈指针SP的内容会发生变化。(√)6.“MOVA,@R2”是正确的指令(×)7.CPU在响应INT0中断时,INT0的中断申请标志IE0要用软件清除。(×)8.中断允许寄存器IE的作用是用来对各中断源进行开放或屏蔽的控制。(√)9.程序状态寄存器PSW用于存放运算结果。(×)10.将37H单元的内容传送至A的指令是:MOVA,#37H。(×)四、分析简答题(每题10分,共30分)1.读下列程序,回答问题。voidmain(void){unsignedcharxdatavar1;unsignedcharpdata*dp1;unsignedintxdata*dp2;unsignedcharxdata*dp3;var1=XBYTE[0x0005];dp1=0x30;dp2=0x1000;*dp1=0xff;*dp2=0x1234;dp3=&var1;*dp3=0x20;while(1);}“pdata”的含义是指:以Ri间接访问的片外RAM低256Byte(2分);“xdata”的含义是指:以DPTR间接访问的片外RAM,可访问64KB范围(2分);得分评阅教师得分评阅教师学院专业级班学号姓名密封线密封线内不要答题第4页执行完上述程序后:var1的值是0x20(2分);dp3的值是0x0005(2分);片外RAM区0x1001单元的内容是0x34(2分)。2.读下列程序,回答问题。MOVR0,#dataMOVA,@R0RLAMOVR1,ARLARLAADDA,R1MOV@R0,AEND上述程序段实现的功能是:把data单元的内容乘以10放回原单元(2分);若程序执行前data=20H,(20H)=10H,执行上述程序段后:(A)=0A0H(2分),(20H)=0A0H(2分),(R0)=20H(2分),(R1)=20H(2分)。3.下图为8031扩展3片2764,图中硬件电路已经连接了一部分,请用线选法将剩下的相关硬件电路连接完成,并写出每一片2764的地址范围。2764的用途是用作程序(1分)存储器,单片2764容量是:8K字节(1分);第(1)片2764的地址范围是:C000H~DFFFH(2分);第(2)片2764的地址范围是:A000H~BFFFH(2分);第(3)片2764的地址范围是:6000H~7FFFH(2分)。5855588绘图2分第5页五、编程题,可用汇编或C51语言,程序应有适当注释(每题10分,共30分)1.8051系统中,已知振荡器频率为12MHz,用定时/计数器T1,实现从P1.1产生高电平宽度为10ms,低电平宽度为20ms的矩形波(要求用中断实现)。得分评阅教师符号地址D7D6D5D4D3D2D1D0TCON88HTF1TR1TF0TR0IE1IT1IE0IT0TMOD89HGATEC/TM1M0GATEC/TM1M0IEA8HEAET2ESET1EX1ET0EX0SCON98HSM0SM1SM2RENTB8RB8TIRIPCON87HSMOD学院专业级班学号姓名密封线密封线内不要答题答:#includereg52.hsbitP1_1=P1^1;voidtimer1()interrupt3{EA=0;if(P1_1){P1_1=!P1_1;//低电平宽度20msTH1=0xB1;TL1=0XE0;}(3分)else{P1_1=!P1_1;//高电平宽度10msTH1=0xD8;TL1=0XF0;}EA=1;}(3分)voidmain(){P1_1=1;TH1=0xD8;TL1=0XF0;TMOD=0x10;//方式1:16位定时计数方式ET1=1;TR1=1;EA=1;while(1);(4分)}第6页2.设置串行口工作于方式3,波特率为9600bps,系统主频为11.0592MHz,允许接收数据,串行口开中断,编写初始化程序,实现上述要求。若将串口改为方式1,应如何修改初始化程序?答:BRfCountSMODosc32122256SMOD取0,Count=253=(FD)H(2分)设置串行口工作于方式3:voidinitUart(void)/*初始化串口波特率,使用定时器1*/{SCON=0xd0;//串口工作在方式3,此处SM0SM1=03(1分)TMOD=0x20;PCON=0x0;TH1=0xfd;TCON=0x40;IE=0x90;(4分)}设置串行口工作于方式1:voidinitUart(void)/*初始化串口波特率,使用定时器1*/{SCON=0x50;//串口工作在方式1,此处SM0SM1=01(1分)TMOD=0x20;PCON=0x0;TH1=0xfd;TCON=0x40;IE=0x90;}第7页3.下图是ADC0809与8051的接口电路图,读图完成下列问题。1)A/D转换通道端口地址分别是多少?(未连接地址引脚取“0”)2)根据图形编写对第0路通道进行模数转换的程序,并将结果存入内部RAM20H地址中。P0.0~P0.7ALEP2.0WRRD0INTEOCABCCLKD0~D7STARTALEOEADC0809VREF+VREF-IN0~IN7模拟量输入+5v89C5174LS373D0~D7Q0Q1Q2GOE答:(1)A/D转换通道端口地址范围是:0000H~0007H(2分)(2)程序如下:汇编:ORG0003HLJMPINT0ORG0100H;主程序MAIN:MOVR0,#20H;设立数据存储区指针SETBIT0;设置外部中断0为边沿触发方式SETBEA;CPU开放中断SETBEX0;允许外部中断0中断MOVDPTR,#0000H;送入口地址并指向IN0LOOP:MOVX@DPTR,A;启动A/D转换,A的值无意义(4分)HERE:SJMPHERE;等待中断ORG0200H;中断服务程序INT0:MOVXA,@DPTR;读取转换后的数字量MOV@R0,A;存入片内RAM单元CLREA;已转换完,则关中断CLREX0;禁止外部中断0中断RETI;中断返回(4分)学院专业级班学号姓名密封线密封线内不要答题