单片机试题集K.docx
- 文档编号:30612280
- 上传时间:2023-08-18
- 格式:DOCX
- 页数:28
- 大小:272.36KB
单片机试题集K.docx
《单片机试题集K.docx》由会员分享,可在线阅读,更多相关《单片机试题集K.docx(28页珍藏版)》请在冰豆网上搜索。
单片机试题集K
一、选择题。
从A,B,C,D四个选项中选择一个正确答案填入括号内。
陈朝霞
1、定时器/计数器工作方式0是(A)
A、13位定时器/计数器
B、16位定时器/计数器
C、8位初值自动重装定时器/计数器
D、仅适用于T0,分成两个8位计数器,T1停止计数
2、输入变量查看数值是以什么方式查看(D)
A、十六进制 B、十进制
C、二进制和十进制 D、十进制和十六进制
陈攀
1、串行通信的错误校验不包括(B)
A、奇偶校验 B、个数校验 C、代码和校验 D、循环冗余校验
2、ADC0804为什么类型的A/D转换器(C)
A、并行比较型 B、计数型
C、集成逐次比较型 D、V-T变换型
冯彪
1、AT89C52中哪个端口内部没有上拉电阻(A)
A、P0 B、P1 C、P2 D、P3
2、定时器/计数器有多少种工作方式(D)
A、1B、2C、3D、4
付举众
1、51单片机一共有几个中断源(B)
A4B5C6D7
2、定时器0和定时器1的中断序号是(A)
A1,3B1,2C2,3D0,2
贺雨言
1.7段共阴数码管(带点)要显示1,那么应该送编码(D)
A、0xfeB、0x3fC、0x6dD、0x06
2.串行通信的制式有单工、半双工、全双工,下列电器工作方式属于半双工的是(B)
A、手机B、对讲机C、电视机D、收音机
黄玉碧
1.单片机能直接运行的程序叫(C)
A.源程序B.汇编程序C.目标程序D.编译程序
2.在中断服务程序中,至少应有一条(D)
A.传送指令B.转移指令C.加法指令D.中断返回指令
胡小青
1、在进行串行通信时,若两机的发送与接收可以同时进行,则称为(D)
A.半双工传送B.单工传送C.双工传送D.全双工传送
2、以下中断中,中断级别最高的是(C)
A.T0B.TIC.INT0D.T1
姜维
1、单片机的晶振频率为f=12MHZ,则一个机器周期等于多少us(C)
A.1/12B.1/2C.1D.2
2、51单片机有多少个引脚(A)
A.40B.30C.20D.10
李少书
1、STC89C51的8指的是(A)
A内核芯片B内部储存空间的大小C无意义D内部储存器
2、单片机的头文件是(C)
Areg51.hBreg52.hCabsacc.hDmath.h
李双凤
1、串行口通信有4种工作方式,以下工作方式中波特率固定的是(B)
A.方式0和方式1B.方式0和方式2
C.方式1和方式3D方式1和方式2.
2、1602液晶只能显示的码是(D)
A.二进制码B.十六进制码C.十进制码D.ASCII码
二、填空题。
李志平
1.对于12MHZ的晶振,它的机器周期是_____。
(1us)
2.液晶有功耗低、体积小、显示操作简单的有点,但它也有一个致命的弱点,其使用的_____很窄。
(温度范围)
林姗
1.在反馈比较型A/D转换器中经常采用的有_____和_____两种方案。
(计数型、逐次比较型)
2.MCU-51单片机外部中断请求有_____和_____,在电平方式下,当采集到INT0,INT1的有效信号为_____时,激活外部中断。
(电平方式、脉冲方式、低电平)
刘敏
1.通用型1602液晶中,“16”指的是每行16个_____。
(字符)
2.52单片机一共有_____个16位可编程的定时器/计数器。
(3)
刘盼
1.波特率定义为_____。
(每秒传输二进制代码的位数)
2.MAX232是把TTL电平从_____转换到_____之间。
(0V和5V、3V~15V或-3V~-15V)
刘水英
1.单步执行代码,会进入子函数内部,可直接跳过函数的快捷键是_____。
(F10)
2.8位A/D转换器的分辨率为_____。
(1/28)
刘涛
1.Keil软件中全速运行的快捷键是_____。
(F5)
2.定时器方式1是_____位定时器。
(16)
宁泽
1.A/D转换器的三个重要指标是:
_____、_____和______。
(转换时间、分辨率、转换误差)
2.单片机89C51的5个中断源分别是_____、_____、_____、_____以及_TI/RI____。
(INT0、INT1、T0、T1、TXD/RXD)
钱超
1.STC89C51的8指_____。
(内核芯片)
2.C51单片机的3个常用头文件是_____、_____、_____。
(reg51.h、reg52.h、math.h)
屈彪
1.单片机型号为STC89C52RC中的"2"是表示该芯片_____。
(存储空间的大小为8KB)
2.C51单片机中的循环左移函数_crol_包含在_____头文件中。
(intrins.h)
舒靓
1._____用来控制定时器的启、停,标志定时器溢出和中断情况。
(TCON寄存器)
2._nop_()这个函数是延时_____的意思,它包含在intrins.h文件中,当程序中用到_nop_()时,需在最开始处包含头文件intrins.h中。
(一个时钟周期)
腾泽
1.在输入源代码时务必将输入法切换成_____什么状态。
(英文半角)
2.TCON是_____寄存器。
(控制)
三、画图题(流程图)
童飞尔
1、画出for(i=8;i>0i--;)的流程图。
文秒
1.利用定时器0工作方式,实现第一个发光管以1s亮灭闪烁。
肖双丽
1.用定时器1的方式1实现数码管前两位59s循环计时。
(1)。
主程序
(2)定时器中断
肖威
1.请画出按键检测流程图。
谢文宾
1.让实验板上6个数码管同时点亮,依次显示0到F,时间间隔为0.5秒,循环下去。
谢小文
1、时钟显示程序,按下K1键一次,定时器停止,再按下K2键,小时自动加一,按下K3键小时自动减一,当加到24时,自动回复到0,当减到0时,自动变为24.按下K1的次数为二时,再按下K2键,分钟自动加一,按下K3键小时分钟自动减一,当加到60时,自动回复到0,当减到0时,变为60.按下K1键的次数为三时,定时器重
新启动,正常计时。
谢亚香
1、利用C51自带的库函数_crol_(),以间隔500ms,实现流水灯的程序流程图。
4、简答题
颜皋朋
1、说出左移与循环左移的区别。
答:
左移:
每执行一次左移指令,被操作的数将最高位移入单片机PSW寄存器的CY位,CY位中原来的数丢弃,最低位补0,其他位依次向左移动一位。
循环左移:
最高位移入最低位,其他位依次向左移一位。
杨红彬
1、51系列单片机具有几个中断源,分别是如何定义的?
其中哪些中断源可以被定义为高优先级中断,如何定义?
答:
具有5个中断源,分别是外部中断INT0和外部中断INT1、定时器溢出中断0和定时器溢出中断1以及串行中断。
通过对中断优先级寄存器IP的设置,每个中断源都可以被定义为高优先级中断。
余丹
1、简述子程序调用和执行中断服务程序的异同点。
答:
相同点:
均能中断主程序执行本程序,然后再返回断点地址继续执行程序。
不同点:
(1)中断服务程序入口地址是固定的,子程序调用入口地址是用户自己设定的。
(2)中断服务子程序返回指令除具有子程序返回指令所具有的全部功能之外,还具有清除中断响应时被置位的优先级状态、开放较低级中断和恢复中断逻辑等功能。
(3)中断服务子程序是在满足中断申请的条件下,随机发生的;而子程序调用是用户程序事先安排好的。
曾星源
加1计数器输入脉冲有几个来源,分别是什么?
答:
有2个来源。
一个是由系统的时钟振荡器输出脉冲经12分频后送来。
另一个是T0或T1引脚输入的外部脉冲源。
张琛卿
写出五种A/D转换器的类型。
答:
1、并行比较型A/D转换器
2、计数型A/D转换器
3、逐次比较型A/D转换器
4、V/T变换型A/D转换器
5、V/F变换型A/D转换器
邹超
什么是单片机?
答:
单片机就是在一块硅片上集成了微处理器、存储器及各种输入/输出接口的芯片,这样一块芯片就具有了计算机的属性,因而被称为单片微型计算机,简称单片机。
左修涵
简述单片机STC89C51其标识。
答:
STC:
前缀,表示芯片为STC公司生产的产品。
8:
表示该芯片为8051内核芯片。
9:
表示内部含FlashE(平方)PROM存储器。
C:
表示该器件为CMOS产品。
5:
固定不变。
1:
表示该芯片内部程序储存空间大小,1为4KB。
五、编程题
陈纪友
1、LCD显示第一行从第二个开始显示英文字母的前13个,第二行从第三个开始显示英文字母的后面13个。
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitlcdrs=P3^5;
sbitlcden=P3^4;
sbitdula=P2^6;
sbitwela=P2^7;
uchartable1[]="ABCDEFGHIJKLM";
uchartable2[]="NOPQRSTUVWXYZ";
voiddelay(uintx)
{
uinta,b;
for(a=x;a>0;a--)
for(b=110;b>0;b--);
}
voidwrite_com(ucharcom)
{
lcdrs=1;
P0=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
voidwrite_date(uchardate)
{
lcdrs=1;
P0=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
voidinit()
{
dula=0;
wela=0;
lcden=0;
write_com(0x38);
write_com(0x0C);
write_com(0x06);
write_com(0x01);
}
voidmain()
{
uchara;
init();
write_com(0x80+0X02);
for(a=0;a<13;a++)
{
write_date(table1[a]);
delay(5);
}
write_com(0xc0+0X43);
for(a=0;a<13;a++)
{
write_date(table2[a]);
delay(5);
}
while
(1);
}
陈建
1、使用独立按键S2-S5控制LED1-LED3的亮与灭。
当按下S2时,LED1亮,其它两个灯灭;当按下S3时,LED2亮,其它两个灯灭;当按下S4时,LED3亮,其它两个灯灭;当按下S5时,三个灯全灭。
#include
#defineuintunsignedint
sbitkey1=P3^4;
sbitkey2=P3^5;
sbitkey3=P3^6;
sbitkey4=P3^7;
sbitLED1=P1^0;
sbitLED2=P1^1;
sbitLED3=P1^2;
voiddelayms(uintxms)
{
uinti,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
voidkeyscan()
{
if(key1==0)
{
delayms(10);
if(key1==0)
{
LED1=0;
LED2=1;
LED3=1;
while(!
key1);
}
}
if(key2==0)
{
delayms(10);
if(key2==0)
{
LED1=1;
LED2=0;
LED3=1;
while(!
key2);
}
}
if(key3==0)
{
delayms(10);
if(key3==0)
{
LED1=1;
LED2=1;
LED3=0;
while(!
key3);
}
}
if(key4==0)
{
delayms(10);
if(key4==0)
{
while(!
key4);
LED1=1;
LED2=1;
LED3=1;
}
}
}
voidmain()
{
while
(1)
{
keyscan();
}
}
胡壮
1、用单片机控制ADC0804进行模数转换,当拧动实验板上A/D旁边的电位器Re2时,在数码管的前三位以十进制方式动态显示A/D转换的数字量(8位A/D转换后数值在0·255变化)。
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitdula=P2^6;//申明U1锁存器的锁存端
sbitwela=P2^7;//申明U2锁存器的锁存端
sbitadwr=P3^6;//定义AD的WR端口
sbitadrd=P3^7;//定义AD的RD端口
ucharcodetable[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
voiddelayms(uintxms)
{
uinti,j;
for(i=xms;i>0;i--)//i=xms即延时约xms毫秒
for(j=110;j>0;j--);
}
voiddisplay(ucharbai,ucharshi,ucharge)//显示子函数
{
dula=1;
P0=table[bai];//送段选数据
dula=0;
P0=0xff;//送位选数据前关闭所有显示,防止打开位选锁存时
wela=1;//原来段选数据通过位选锁存器造成混乱
P0=0x7e;//送位选数据
wela=0;
delayms(5);//延时
dula=1;
P0=table[shi];
dula=0;
P0=0xff;
wela=1;
P0=0x7d;
wela=0;
delayms(5);
dula=1;
P0=table[ge];
dula=0;
P0=0xff;
wela=1;
P0=0x7b;
wela=0;
delayms(5);
}
voidmain()//主程序
{
uchara,A1,A2,A3,adval;
wela=1;
P0=0x7f;//置CSAD为0,选通ADCS以后不必再管ADCS
wela=0;
while
(1)
{
adwr=1;
_nop_();
adwr=0;//启动AD转换
_nop_();
adwr=1;
for(a=10;a>0;a--)//TX-1C实验板AD工作频率较低,所以启动转换后要多留点时间用来转换
{//这里把显示部分放这里的原因也是为了延长转换时间
display(A1,A2,A3);
}
P1=0xff;//读取P1口之前先给其写全1
adrd=1;//选通ADCS
_nop_();
adrd=0;//AD读使能
_nop_();
adval=P1;//AD数据读取赋给P1口
adrd=1;
A1=adval/100;//分出百,十,和个位
A2=adval%100/10;
A3=adval%10;
}
}
唐小方
1、结合延时程序,同时点亮6个数码管,依次显示0到F,时间间隔为0.5s,循环下去。
#include
#defineuintunsignedint
#defineucharunsignedchar
sbitdula=P2^6;//申明U1锁存器的锁存端
sbitwela=P2^7;
ucharnum;
ucharcodetable[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
voiddelayms(uint);
voidmain()
{
wela=1
P0=0xc0;
wela=0;
while
(1)
{
for(num=0;num<16;num++)
{
dula=1;
P0=table[num];
dula=0;
delayms(500);
}
}
}
voiddelayms(uintxms)
{
uinti,j;
for(i=xms;i>0;i++)//i=xms即延时约为xms毫秒
for(j=110;j>0;j--);
}
滕志伟
1、TX-1C上四个独立按键任用两个独立按键,分别实现下面的功能
(上电时,8个LED灯全灭)
按键1:
8个LED灯以500ms间隔依次循环点亮(流水灯1-2-3-4-5-6-7-8-1-2-3-4-5-6-7-8-1…);
(每次按下此键,都从第一个灯开始)
按键2:
灭掉所有的8个LED灯!
方法一
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitkey_on=P3^7;//S5键:
开流水灯
sbitkey_off=P3^6;//S4键:
关流水灯
ucharled,T0Count;//led:
8个LED的预状态
//T0Count:
定时器0中断计数
//=======================================================
voidDelayms(uintxms)
{
uinti,j;
for(i=0;i for(j=0;j<110;j++); } voidInitial() { P1=0xff;//P1=11111111关闭所有LED led=0xff;//8个LED的预状态为11111111全灭 T0Count=0;//定时器0计数为0 TMOD=0x01;//定时器0采用方式1 TH0=0x4c;//TH0=(65536-46080)/256 TL0=0x00;//TL0=(65536-46080)%256 EA=1;//开总中断 ET0=1;//开定时器0中断 } //========================= voidmain() { Initial();//初始化 while (1) { if(key_on==0)//S5按下 { Delayms(10);//消抖 if(key_on==0)//确实按下,开流水灯 { if(led==0xff)//如果没开流水灯 { T0Count=0;//定时器0计数归0 TR0=1;//开定时器0 led=0xfe;//led预状态为11111110 P1=led;//将led预状态送给P1口,亮第一个LED } } while(! key_on);//松手检测 } if(key_off==0)//S4键按下 { Delayms(10);//消抖 if(key_off==0)//确实按下,关LED { led=0xff;//led预状态11111111 P1=led;//将led预状态送给P1口,全灭 TR0=0;//关定时器0 } while(! key_off);//松手检测 } } } voidTimer_T0()interrupt1 { TH0=0x4c;//TH0=(65536-46080)/256 TL0=0x00;//TL0=(65536-46080)%256 T0Count++;//定时器0加1 if(T0Count==10)//500ms到 { T0Count=0;//定时器0归0; led=_crol_(led,1);//led预状态左循环; P1=led;//将led预状态送给P1口; } } 方法二 #include #include #defineucharunsignedchar #defineuintunsignedint sbitkey_on=P3^7;//S5键: 开流水灯 sbitkey_off=P3^6;//S4键: 关流水灯 ucharled;//led: 8个LED的预状态 uintCount1ms;//Count1ms: 毫秒计数 //======================================================= voidDelay1ms() { uintj; for(j=0;j<110;j++); } //========================= voidmain() { P1=0xff;//P1=11111111关闭所有LED led=0xff;//8个LED的预状态为11111111全灭 Count1ms=0;//毫秒计数次数预设为0 while (1) { Delay1ms(); Count1ms++; if(Count1ms==500)//0.5秒到 { Count1ms=0;//重新计数 led=_crol_(led,1);//8个LED的预状态左循环 P1=led;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 试题
![提示](https://static.bdocx.com/images/bang_tan.gif)