单片机原理与应用试题及答案.docx

上传人:b****5 文档编号:3526377 上传时间:2022-11-23 格式:DOCX 页数:7 大小:37.22KB
下载 相关 举报
单片机原理与应用试题及答案.docx_第1页
第1页 / 共7页
单片机原理与应用试题及答案.docx_第2页
第2页 / 共7页
单片机原理与应用试题及答案.docx_第3页
第3页 / 共7页
单片机原理与应用试题及答案.docx_第4页
第4页 / 共7页
单片机原理与应用试题及答案.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

单片机原理与应用试题及答案.docx

《单片机原理与应用试题及答案.docx》由会员分享,可在线阅读,更多相关《单片机原理与应用试题及答案.docx(7页珍藏版)》请在冰豆网上搜索。

单片机原理与应用试题及答案.docx

单片机原理与应用试题及答案

单片机原理与应用试卷及答案

-、填空题

1、B作为无字符数时,十进制数值为182;作为补码时,十进制数值

为一74.

2、原码01101011B的反码为01101011B补码为01101011B

3、由8051的最小系统电路除芯片外,外部只需要复位电路和时钟(晶振)电路,如果由8031的最小系统,还需要扩展外部ROM电路。

4、若已知8051RAM勺某位地址为09H,则该位所处的单元地址为

5、C51语言中,指令#defineADCXBYTEQXFFEO能够正确编译的前

提是包含头文件,该指令的作用是定义一个外部地址单元为OXFFEO

二、选择题

1、程序和常数都是以(二进制)的形式存放在单片机程序的存储器中。

2、下列哪一个选项的指令语句不是任何时候都可以被C51正确编译

(uchar;k=ox20)

3、当PSW勺RS0和RS1位分别为1和0时,系统选用的寄存器组为(1组)

4、若某存储器芯片地址线为12根,那么它的存储容量为(4KB

5、已知Tosc=12MHZTH1=177TL1=224,TMOD=ox1,则从定时器启动

到正常溢出的时间间隔为(20mS

简答题

1、请简述TTL电平和CMO电平的区别

TTL电平临界值

CMO电平临界值(没有电源电

压为+5v)

VOHn

VOLax

VIHmin

VILmax

CMO电平能驱动TTL电平,但TTL电平不能驱动CMO电平,需要上拉电阻。

2、请简述利用keil开发程序的操作步骤

答:

①新建工程项目②配置工程项目属性③创建源文件④将源文件加

入项目⑤保存项目

3、PSW寄存器有何作用其各位是如何定义的

答:

标志寄存器PSW是一个8位的寄存器,它用于保存指令执行结果

的状态,以供工程查询和判别。

PSW

C

AC

FO

RS

RS0

OV

P

1

F0():

用户标志位

RS1RSO(、):

寄存器组选择位0V():

溢出标志位

P():

奇偶标志位

4、为什么MC55单片机的并行口用作输入端时先要给引脚置1

答:

并行口输入端接下拉电阻,将场效应管截止,防止输出端接地

四、编程题

1请用C51编写一段程序,利用定时中断法使P1口外接的8盏LED小灯实现亮灯状态间隔为2秒的流水灯效果。

答:

#include<>

#include<>//中定义了空指令、位测试指令及环移、

出入栈等51汇编中有而标准c中没有的指令

#defineuintunsigned

int;//简化无符号变量的声明关键字

#defineucharunsignedchar;

ucharsec_counter,led_statue;//定义两个变量,

一个用于秒计数,一个用于保存LED当前的亮灯状态

main()

SP=0x60;

TH0=0x3C;

〃12MHz的50ms初值,6MHz的

//转移堆栈区

100ms初值

TL0=0xB0;

TMOD=0x01;

//设置TMOD,使T0为定时方式1

led_statue=0x0fe;

//初始化共阳极亮灯状态,如果外

部LED小灯接法为共阴极,这里值为0x01

 

sec_counter=40;

//秒计数(12MHz时,

40*50=2000ms)

 

ET0=1;

//T0中断

允许

 

EA=1;

//总中断

允许

 

TR0=1;

//启动T0开始计

 

while

(1);

//等待中断

}

voidintt0()interrupt1{

TH0=0x3C;

//恢复T0初值

TL0=0xB0;

if(sec_counter--<=0){//如果没到1s,则返回,

到了1s,则循环移位亮灯状态

P1=led_statue;

led_statue=_crol_(led_statue,1);

sec_counter=40;//恢复2s初值

}

}

2、某系统需要扩展—3*3的键盘陈列,当9个按键依次按下时可分别在7位LED数码管输出AbCdEFLHO,试设计硬件电路图,并用C51编写程序实现上述功能。

答:

#include<>

#include<>#defineucharunsignedchar

#defineuintunsignedint

sbitdula二P2八6;

sbitwela=P2A7;

//共阴极数码管AbCdEFLH(编码ucharcodeNumTab[]={0x88,0x83,0xc6,

0xa1,0x86,0x8e,0xc7,0x89,0xa3};

 

*********

毫秒延时函数********/

 

voiddelayms(uinttms)

{

uinti,j;

for(i=tms;i>0;i--)

for(j=110;j>0;j--);

voiddisplay(ucharnum)

{

P0=NumTab[num];

dula=1;

dula=0;

}

/*******

键反转法扫描子函数**********

voidkey_CV_Scan()

//键反转法,先获取低

{

uchari,j,temp,key;

3位信息

,再获取高3位信息

 

while

(1)

//然后将高低3位组合

成一个完整的8位键码

{

P3=0x0F;

temp=P3;

if((temp&0x0F)!

=0x0F)

{

switch(temp)//判断按下的键在哪一行,得到行号

{

case0x0b:

i=2;break;

case0x0d:

i=1;break;

case0x0e:

i=0;break;

default:

break;

 

P3=0xF0;//平

temp=P3;

if((temp&0xF0)!

=0xF0)

列,得到列号

{

switch(temp)

{

case0xb0:

j=2;break;

case0xd0:

j=1;break;

case0xe0:

j=0;break;

default:

break;

}

key=3*i+j;

反转行和列上的电

//判断按下的键在哪一

//

通过行列号来计

算键值

 

display(key);

//显示键值

 

}

/**********

主函数**************

voidmain()

{

P0=0x3f;

wela=1;

wela=0;

P0=0xff;

dula=1;

dula=0;

while

(1){key_CV_Scan();}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1