《单片机原理及应用 试卷及答案 A卷.docx》由会员分享,可在线阅读,更多相关《单片机原理及应用 试卷及答案 A卷.docx(8页珍藏版)》请在第壹文秘上搜索。
1、题号二三四五六七九十满分满分201020301010100实得分满分:20一、选择题(每题1分,共20分)实得分:题号12345678910答案题号11121314151617181920答案1、若AT89C51中断源都编程为同级,当它们同时申请中断时,CPU首先响应()。A、INTlB、INTOC、TlD、TO2、使用定时器TI时,有几种工作模式()。A、1种B、2种C、3种D、4利3 .全双工通信的特点是,收发双方()。A.角色固定不能互换B.角色可换但需切换C.互不影响双向通信D.相互影响互相制约4 .十进制数-36在8位微机中的反码和补码是()。A、OolOolOOB、11011100
2、BB、00100100BU0110UBC、IOloolO0B、11011011BD、11011011BsHOlIlOOB5 .十进制数29的842IBCD压缩码是()。a、OOiOi(X)IBb、Ioio100ibc、ii100ooibd、100ihoob6 .单片机上电复位后,PC的内容和SP的内容为:A、0000H,00HB、0000H,07HC、0003H,07HD、0800H,08H7 .五四运动发生在()年A、1937年B、1921年C、1919年D、1949年8 .中国共产党成立于()A、1937年B、1921年C、1919年D、1949年9 .日本于()年发动了九一八事变A、19
3、37年B、1921年C、1919年D、1931年10 .下面()标志着日本全面侵华战争的开始A、九一八事变B、七七卢沟桥事变C、南京大屠杀D、第一次世界大战11 .一二九运动发生在()年A、1937年B、1921年C、1935年D、1931年12 .直插式LED发光二极管较长的脚是()A、阴极B、阳极C、基极D、集电极13 .LCD1602进行双行显示,5*7点阵,8位数据线的初始化命令为()A、0X10B、0X06C、0X38D、OxOC14 .表达式:10!=9的值是()A、tureB、非OC、OD115.51单片机特殊功能寄存器包含在下面哪个头文件中()A、intrins.hB、absa
4、cc.hC、reg51.hD、math.h16 .设a=82H,则执行a=_CrOL(a);语句后a的值是()A、84HB、04HC、03HD、05H1617 .AT89S51单片机的CPU主要的组成部分为()A、运算器、控制器B、加法器、寄存器C、运算器、加法器D、运算器、译码器18 .单片机AT89S51的XTALl和XTAL2引脚是()A、外接定时器引脚B、外接串行口引脚C、外接中断引脚D、外接晶振引脚19 .PSW中的RSl和RSO用来(A、选择工作寄存器区号B、指示复位C、选择定时器D、选择中断方式20 .单片机中的程序计数器PC用来()oA、存放指令B、存放正在执行的指令地址C、存
5、放下一条指令地址D、存放上一条指令地址二、填空题(每空1分,共10分)满分:10 实得分: 址1 .当TMOD寄存器中的门控位GATE=I时,定时器/计数器的启动和停止由和共同控制2 .MCS-51系列单片机指令系统的寻址方式有立即寻址、直接寻址、寄存器寻、变址寻址、寻址。3 .当满量程电压为5V,采用10位A/D转换器的量化间隔是、绝对量化误差是、相对量化误差分别是O4 .数码管的连接方式分为连接和连接。三、简答题(共20分)满分:20L89C51单片机的控制总线信号有哪些?各信号的作用如何?(5分)实得分:2 .AT89C1数据存储器只要分为几个区,分别为什么?并叙述其存储地址范围。(5分
6、)3 .简述89C51汇编指令格式。(5分)4 .简述89C51串口通信的方式O及其特点。(5分)四、编程题(30分)1.将片外RAM6000H开始的连续10个单元清零。(5分)满分:30实得分:2.查找片外2000H20FFH单元“5”的个数,并将结果存放在210OH单元。(5分)3、电路图如下,编程实现P2口LED灯从上到下依次循环点亮。(8分)4.设AT89C51单片机的晶振频率为12MHz,请编程使PLO端输出频率为20kHz的方波。(12分)五、完善程序(共10分)满分:10 实得分:#include 用单片机的PLO引脚接发光二极管,请使用外部中断0并采用边沿触发方式实现每按一次键
7、,触发一次中断,使发光二极管亮灭改变一次。sbitP1-0=PI0;voiddelay(void)inta=5000;while(a-)_nop_();)delay();P1_O=!P1_O;voidmain()while(l);满分:10 实得分:-L.?六、设计题(10分)1、根据要求设计硬件电路,并编写程序:数码管的段码连接在P2口,位码连接P3.0和P3.1,让两位数码管动态加一显示0()99,共阳极显示数码管的断码表如下:seg=OxcO,0xf9,0xa4,OxbO,0x99,0x92,0x82,0xf8,0x80,0x90;一、选二择题(句E题I分,共20分)题号12345678
8、910答案BCCDABCBDB题号11121314151617181920答案CBCDCDADAC二、填空题(每空1分,共10分)1 .外部引脚INTo(INTl上的高电平)、TRl(TRO)2 .寄存器间接、相对寻址、位3 .4.88mV2.44MV、0.049%4.共阳极、共阴极三、简答题(共20分)1. 80C51单片机的控制总线信号有哪些?各信号的作用如何?(5分)RST:复位信号输入引脚;ALE:地址锁存允许信号输出引脚;EA:内外存储器选择引脚;PSEN:外部程序存储器选通信号输出引脚;RD:读线;WR:写线。2. AT89C1数据存储器只要分为几个区,分别为什么?并叙述其存储地址
9、范围。(5分)分为四个区,工作寄存器区(OOH1FH)、位寻址区(20H2FH)、用户RAM区(30H7FH)、特殊功能寄存器区(80H-FFH)3 .简述MCS-51汇编指令格式。(5分)标号:操作码助记符目的操作数,源操作数;注释在指令的一般格式中使用了可选择符号其包含的内容因指令的不同可有可无。号:程序员根据编程需要给指令设定的符号地址,可有可无;通常在子程序入口或转移指令的目标地址处才赋予标号。标号由18个字符组成,第一个字符必须是英文字母,不能是数字或其他符号,标号后必须用冒号。操作码助记符:指令的核心部分,用于指示机器执行何种操作,如加、减、乘、除、传送等。操作数是表示指令操作的对
10、象,操作数可以是一个具体的数据,也可以是参加运算的数据所4 .简述89C51串口通信的方式O及其特点。(5分)方式0:同步移位寄存器输入/输出方式,常用于扩展DO口。波特率固定为振荡频率的1/12,并不受PCON寄存器中SMOD位的影响。四、编程题(30分)1、将片外RAM6000H开始的连续10个单元清零(答案不唯一)#include#includevabsacc.h绝对地址包含文件unsignedcharxdatanum10_at_6000;voidmain(void)(unsignedchari;for(i=0;i10;i+)(numi=0;)2、查找片外2000H20FFH单元“5”的
11、个数,并将结果存放在210OH单元(答案不唯一)#includemain()unsignedcharxdata*p=0x2000;/*指针P指向2000H单元*/*若该单元内容为零,则n+l*/*指针指向下一单元*/*指针P指向210OH单元*/intn=0,i;for(i=0;i16;i+)if(*p=5)n+;p+;)p=0x2100;*p=n;)3、电路图如下,编程实现P2口LED灯从上到下依次循环点亮。(答案不唯一)#include#includemain()(unsignedcharcnt=O,temp;unsignedinti=O,j;while(l)(temp=0xfe;for(
12、i=0;i8;i+)P2=temp;for(j=0;j=20000;j+);temp=_crol_(temp,l);)4设AT89C51单片机的晶振频率为12MHz,请编程使Pl.0端输出频率为20kHz的方波。采用定时/计数器TO对外部脉冲进行计数,每计数100个脉冲,TO切换为定时工作方式。定时ImS后,又转为计数方式,如此循环不止。假定MCS-51单片机的晶体振荡器的频率为6MHz,要求TO工作在方式1状态,请编写出相应程序。(答案不唯一)解:晶体振荡器的频率为6MHz,则机器周期为12l(6*106)=2us,要定时1ms,需计数次数为1000/2=500次#includesbitPl
13、-O=PlO;voidmain()while(l)TMoD=OXO5;To计数,方式一TH0=(65536-100)/256;/计数100次TL0=(65536-100)%256;TRO=I;While(JTFO);/等待计数100次的溢出TFO=O;/溢出标志复位TMoD=OXO1;To定时,方式一TH0=(65536-500)256;/计数100次TL0=(65536-500)%256;TRO=I;/启动TOwhile(!TF0);/等待定时时间到ImS的溢出TFO=O;/溢出标志复位)五、完善程序(共10分)答:voidINT0_service(void)interrupt0Pl_0=0
14、;EXO=1;EA=IITO=O;六、设计题(10分)(答案不唯一)答案:#include#defineucharunsignedchar#defineuintunsignedintucharseg=0xc0,0xf19,0xa4,OxbO,0x99,0x92,0x82,0xf8,0x80,0x90);ucharcounter=0,counter_1=0,counter_0=0;voiddelay(uinlm)unt,j;for(i=0;im;i+)for(j=0;j10;j+);)voiddisplay(void)(P2=segcounter-I;显示十位P3=0x01;delay(20);P3=0x00;P2=s