您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 杭州电子科技大学单片机试卷2009下A答案
第1页共5页杭州电子科技大学学生考试卷(A)卷[免费]考试课程单片机考试日期2010年1月12日成绩课程号教师号任课教师姓名高惠芳、崔佳冬、洪明考生姓名学号(8位)年级专业一、选择填空题(每小题2分,共30分)1.单片机上电复位后,PC的内容和SP的内容为B。A.0000H,00HB.0000H,07HC.0003H,07HD.0800H,08H2.访问外部存贮器时,作数据线和低8位地址线的是A。A.P0口B.P1口C.P2口D.P0口和P2口3.下列指令判断若定时器T0未计满数就原地等待的是B。A.JBT0,$B.JNBTF0,$C.JNBTR0,$D.JBTF0,$4.寻址方式就是C的方式。A.查找指令操作码B.查找指令C.查找指令操作数D.查找指令操作码和操作数5.MCS-51的片内外的ROM是统一编址的,如果EA保持高电平,8051的程序计数器PC在B地址范围内。A.1000H—FFFFHB.0000H—FFFFHC.0001H—0FFFHD.0000H—0FFFH6.MCS-51的串行口工作方式中适合多机通信的是B、D。A.方式0B.方式3C.方式1D.方式27.MCS-51的串行数据缓冲器SBUF用于B。A.存放运算中间结果B.存放待发送或已接收到的数据C.暂存数据和地址D.存放待调试的程序8.当程序状态字寄存器PSW状态字中RS1和RS0分别为0和1时,系统选用的工作寄存器组为B。A.组0B.组1C.组2D.组39.8051单片机中,唯一一个用户可使用的16位寄存器是D。A.PSWB.ACCC.SPD.DPTR10.MCS-51单片机定时器T1的溢出标志TF1,若计满数产生溢出时,如不用中断方式而用查询方式,则应B。A.由硬件清零B.由软件清零C.由软件置位D.可不处理11.将十进制数98转换成对应的二进制数是A。A.1100010B.11100010C.10101010D.100011012.用定时器T1方式2计数,要求每计满100次,向CPU发出中断请求,TH1、TL1的初始值是9C。A.9CHB.20HC.64HD.A0H13.对程序存储器的操作,只能使用(B):AMOV指令BMOVC指令CMOVX指令DPUSH指令14.8031单片机的机器周期为2µs,则其晶振频率fosc为CMHz.A.1B.2C.6D.1215.MCS—51单片机在同一级别里除串行口外,级别最低的中断源是C。A.外部中断1B.定时器T0C.定时器T1D.串行口二、简答题:(每小题4分,共16分)1.80C51系列单片机具有几个中断源?并指出各中断源对应的中断服务程序的入口地址?2.什么叫堆栈?复位后SP的值为多少?在程序设计时,为什么常常需要对SP重新赋值?3.某8255A工作在B口选通输入、A口输出、C口高4位输出,试确定8255A的方式控制字。4.简述行列式键盘处理的流程。第2页共5页解1、有5个中断源。特殊地址功能0000H主程序入口0003H外部中断0入口地址000BH定时器计数器0溢出中断入口地址0013H外部中断1入口地址001BH定时器计数器1溢出中断入口地址0023H串行口中断入口地址2、堆栈是一种数据结构,只允许数据在其一端进出的一段存储空间。复位后SP=07H,由于片内RAM07H单元的后继区域分别为工作寄存器和位寻址区。通常这两个区域在程序中有重要用途,所以用户在设计程序时,一般都将堆栈设在内部RAM的30H~7FH地址空间的高端,而不设在工作寄存器区和位寻址区。3、8255A的方式控制字:10000110=86H4、行列式键盘按键识别有两种方法:行扫描法和线反转法。以行扫描法进行说明:一般先快速检查键盘中是否有某个键已被按下,然后,再确定具体按下了哪个键。为此,可以使所有各行同时为低电平,再检查是否有列线也处于低电平。这时,如果列线上有一位为0,则说明必有键被按下,然后再用扫描法来确定具体位置。先使第1行输出“0”,其余行输出“1”,然后检查列线信号。如果某列有低电平信号,则表明第1行和该列相交位置上的键被按下,否则说明没有键被按下。此后,再将第2行输出“0”,其余行为“1”,检查列线中是否有变为低电平的线。如此往下逐行扫描,直到最后一行。在扫描过程中,当发现某一行有键闭合时,就中断扫描,根据行线位置和列线位置(4行,4列,0~F16个按键),识别此刻被按下的是哪一个键。三、程序分析题(共30分)1.阅读以下程序(3分)MOVR0,#30HMOVDPTR,#1000HMOVR7,#31HLOOP:MOVXA,@DPTRMOV@R0,ACLRAMOVX@DPTR,AINCR0INCDPTRDJNZR7,LOOPSJMP$该程序的功能是:_把1000H-1030H的数据搬迁到30H-60H中,并将原数据块清零2.以下程序要实现的功能为:将外部数据存储器首地址为TABLE的10字节数据的每个字节最高位置1,并送回原来的单元。试完成程序中空格部分(4分)MOVDPTR,#TABLEMOVR7,#10LOOP:MOVXA,@DPTR_SETBACC.7_MOVX@DPTR,AINCDPTR__DJNZR7LOOPHERE:SJMPHERE3.设R0的内容为56H,A的内容为61H,而片内RAM的56H单元的内容为30H,40H单元的内容为08H。指出在执行下列程序段后,上述各单元的内容变化。(6分)MOVA,@R0SWAPAMOV@R0,40HINCR0MOV40H,AMOVR0,#35结果:(1)R0=35,A=03;(2)内部RAM32H单元的内容为不变;(3)40H单元的内容为03。4.一个8路模拟量输入的巡回检测系统,选取芯片ADC0809,8个通道的A/D转换值,分别存储在外部RAM的8个单元中。(6分)ORG0013HAJMPAD_INTRORG0100HMOVR0,#0A0H第3页共5页MOVR2,#08HSETBIT1SETBEASETBEX1MOVXDPTR,#0FEF8HMOVX@DPTR,AHERE:SJMPHEREAD_INTR:DJNZR2,LOOPSJMPAD_ENDLOOP:MOVXA,@DPTRMOVX@R0,AINCDPTRINCR0AD_END:RETI(1)以上程序中,斜体部分语句的用途是:启动AD转换。(2)AD采样通道IN0~IN7的地址为:FEF8到FEFF。(3)8个AD采样数据存放在A0到A7中。5.已知有C51程序如下。阅读程序段,并回答问题(5分):#includereg51.hsfrsum=0xf0;main(){unsignedcharbdatai;sum=0;for(i=1;i=100;i++)sum=sum+i;}(1)#includereg51.h的作用是定义特殊功能寄存器库。(2)变量sum的数据类型为特殊功能寄存器型;(3)变量i显示声明的存储类型为无符号字符型,i将存放在片内RAM位寻址区20H~2FH单元存储区。6.串行口通讯程序如下所示,设fosc=11.0592MHz:(6分)#include“reg51.h”#include“string.h”chars[]=“SerialCommunicationBus”;main(){chara,b=0;TMOD=0x20;SCON=0x50;/*SM0=SM2=0,SM1=1,REN=1*/TH1=0xF4;TL1=0xF4;a=strlen(s);for(;ba:b++){SBUF=s[b];while(!TI);TI=0;}}(1)串行口的工作方式是:工作方式1;(2)程序中TI=0语句是清除发送中断标志。(3)对方得到的数据是:SerialCommunicationBus。五、编程题:(24分)1.设外部存储器单元(地址为2000H)中有一无符号字节变量X,请编写计算下述函数式的程序,结果存入外部存储器单元(地址为2001H)。(8分))15(86)10(2)1015(522XXXXXY解:ORG0000HAJMPMAINORG0100HMAIN:MOVDPTR,#2000HMOVXA,@DPTRMOVR7,ACLRCSUBBA,#10第4页共5页JCLE10MOVA,R7CLRCSUBBA,#15JNCLA15MOVA,R7MOVB,R7MULABADDA,5AJMPJSLE10:MOVA,R7MOVB,R7MULABCLRCSUBBA,#2AJMPJSLA15:MOVA,#86JS:INCDPTRMOVXA,@DPTRAJMP$END2.已知单片机的晶振频率为12MHZ,用T1定时,要求从P1.7口输出周期为0.5秒,占空比为40%的脉冲波形,试编程实现。(8分)解:采用方式1编程,最长定时时间为:65.5ms设T1定时时间为50ms,一个周期需要中断10次,高电平需要中断4次故TMOD=10H,T1初值为X=216-12/12×50×103=15536=3CB0H#includereg51.h#defineucharunsignedcharuchartime=0;ucharperiod=10;ucharhigh=4sbitP1_7=P1^7main(){TMOD=0x20;TH1=0x3c;TL1=0xb0;EA=1;ET1=1;TR1=1;P1_7=1;while(1);}timer1()interrupt3{if(++time==high)P1_0=0;elseif(time==period){time=0;P1_0=1;}}3.51单片机连接DAC0832构成一个三角波形发生器,如下图,请编程实现。(8分)解:C语言程序为:#includeabsacc.h//定义绝对地址访问#defineucharunsignedchar第5页共5页voidmain(){P1=0;While(1){While(1){If(P1!=0xFF)P1++;//这里假设P1口接数据输入ElseBreak;}While(1){If(P1!=0x00)P1--;//这里假设P1口接数据输入ElseBreak;}}
本文标题:杭州电子科技大学单片机试卷2009下A答案
链接地址:https://www.777doc.com/doc-2383979 .html