《2022年嵌入式考试复习资料final》由会员分享,可在线阅读,更多相关《2022年嵌入式考试复习资料final(7页珍藏版)》请在金锄头文库上搜索。
1、嵌入式软件考试复习资料一、填空题1、MCS-51系列单片机为8 位单片机2、8051 的异步通信口为全双工(单工 /单双工 /全双工)3、8051 有2 级中断,5个中断源4、8051 内部数据存储地址范围是64KB 5、MCS-51单片机中,在IP=0X00 时,优先级最高的中断是外部中断0,最低的是 串行口中断6、要使 MCS-51单片机从片内的地址0000H 开始执行程序,那么EA应接高电平从片外的地址开始执行,那么EA应接低电平8、 设 fosc=12Mhz, 则 8051 的定时器 /计数器 0 接方式 0时, 其最大的定时时间是8.192ms (213-0)*1us=8192us=
2、8.192ms (1us=12/(12MHZ) ms,若按方式2 计数,要求计数达到10 个输入脉冲就引发中断,则写入TH0和 TLO的初值是0xF6H(十进制为246) (28-10=246) 9、单片机89C51具有并行通信和串行通信两种通信方式10、单片机89C51的时钟频率为6Mhz,若要求定时1ms,定时计数器工作于模式1,其定时 /计数器初值为初值为FE0CH (216-6*106*1*10(-3)/12)=65036 11、在异步通信中,数据的帧格式定义一个字符由4 部分组成,即 起始位 、数据位 、校验位 、停止位12、在系统处于正常工作状态,且振荡稳定后,在RST引脚加一个高
3、电平且维持两个机器周期,可将系统复位计数器 /定时器的有关计算计数器初值的计算1)计数器方式时的计数初值TC2MN (M 为计数器位数,N 为要求的计数值)方式 0:M13,计数器的最大计数值2138192。方式 1:M 16,计数器的最大计数值21665536;方式 2:M8,计数器的最大计数值28256;方式 3:同方式 2。例如,设T0 工作在计数器方式2,求计数10 个脉冲的计数初值,TC2810246 2)定时器方式时的计数初值在定时器方式下,定时器T0(或 T1)是对机器周期进行计数的。机器周期= 12/fosc; 定时时间为:t(2M计数初值 ) 机器周期( 12MHZ 对应的机
4、器周期是1us)则计数初值 = 2M-t* f12 二、选择题1、计算机能直接识别的语言是(C )A、汇编语言B、自然语言C、机器语言D、硬件和软件2、开机复位后,CPU使用的是寄存器第一组,地址范围(B )A、00H10H B、00H-07H C、10H-1FH D、 08H-0FH 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 7 页注:若是第二组则应该是10H1FH 则选 C(每组 8 字节)3 单片机中,(C )是数据存储器, (ABD )是程序存储器A、 ROM B、EPROM C、RAM D、 EEPROM 4、单片机在与
5、外部I/O 口进行数据传送时,将使用(C )线A、ALE INTO B、PSEN ALE C、WR RD ALE D、ALE INT1 5、区分片外程序存储器和数据存储器的最可靠方法是(D )A、看其芯片型号是RAM 还是 ROM B、看其位于地址范围的低端还是高端C、看其离MCS-51芯片的远近D、看其是被RD还是被 PSEN信号连接6、当 MCS-51复位时,下列说法正确的是(D)A、PC=000H B、 SF=00H C、SBUF=00H D、(30H)=00H 7、若某寄存器芯片的地址是12 根,那么它的存储容量是(C )A、1KB B、2KB C、4KB D、5KB 8、MCS-51
6、有中断源(A )A、5 个B、2 个C、3 个D、6 个注具体为: T0 中断、 T1 中断、串口中断、定时器0 中断、定时器1 中断9、MCS-51 单片机片内集成了定时器计数器,用作定时器时,对(B )计数,用作计数时,是对(D )计数A、振荡周期B、机器周期C、指令周期D、外部输入脉冲10、单片机8051 的 XTAL1或者 XTAL2引脚(D )引脚A、外接定时器B、外接串行口C、外接中断D、外接晶振11、8051 单片机的 VSS(20) 引脚是( B)引脚A、主电源 +5V B、接地C、备用电源D、访问片外存贮器三、判断题1、当 89C51 的 EA引脚接低电平时,CPU只能访问片
7、外ROM,而不管片内是否有程序存储器2、当 89C51的 EA引脚接高电平时,CPU只能访问片内的4KB空间。 X 3、 当 CPU访问片外的存储器时,其低八位地址由PO 口提供,高八位地址由P2口提供 ,8位的数据由P0口提供4、在 89C51 中,片内RAM 分为地址为00H-07H 的直正RAM 区和地址为08H-FFH的特殊功能寄存器(SFR )区两个部分5、在 89C51中,通用寄存器区分为4 组,每组 8 个工作寄存器,当CPU复位时,第0组寄存器为当前的工作寄存器6、特殊功能寄存器可以当作普通RAM 单元来使用7、访问 128 个位地址用位寻址方式,访问低128 字节单元用直接或
8、间接寻址方式。8、在 89C51 中,一个机器周期包括12 个振荡周期,而每条指令都由一个或者几个机器周期组成,分别是单周期、双周期和4 周期指令9、单片机 89C51复位后, 其 PC指针初始化为0000H,使单片机从该地址单元开始执行10、单片机系统上电后,其内部RAM 的值是不确定的11、单片机是将微处理器、一定容量的RAM 和 ROM 以及 I/o 口,定时器等电路集成在一块芯片上面构成的微型计算机12、在 89C51 中,当 CPU访问片内、外ROM 区,片外 RAM 区和片内 RAM 区是靠使用精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - -
9、-第 2 页,共 7 页不同的指令来区分的13、定时 / 计数器在工作时,需要消耗CUP的时间14、定时 / 计数器工作于计数方式时,是通过89C51 的 T0和 T1 对外部脉冲进行计数,当遇到脉冲下降沿时计数一次15、串行通信的优点是只需一对传送线,成本低,适于远距离通信,缺点是传送速度较低17、同步通信方式中,发送端的发送速率和接收端的接收速率必须完全一致18、异步通信方式中,发送端的发送速率和接收端的接收速率必须完全一致19、在单片机89C51中,读和写的SBUF在物理上是独立的,但地址是相同的20、单片机89C51和 PC机的通信中,使用芯片MAX232 是为了进行电平转换四、简答题
10、1、请说明MCS-51的外部引脚EA的作用答:当 EA*为高电平时, 访问内部程序存储器,但当地址大于0FFF时, 自动转到外部程序存储器;当EA*为低电平时,只读取外部程序存储器。2、请简述89C51单片机中断的概念当 CPU正在处理某件事情的时候,外部发生的某一事件请求CPU迅速去处理, 于是,CPU暂时中止当前的工作,转去处理所发生的时间。中断服务处理完该事件以后,再回到原来被中止的地方,继续原来的工作,这样的过程成为中断。3、请简述单片机89C51中断的自然优先级顺序,如何提高某一中断源的优先级别中断源(控制位)自然优先级外部中断 0(PX0 ) 最 高定时器 / 计数器 0 溢出中断
11、( PT0 )外部中断 1(PX1 )定时器 / 计数器 1 溢出中断( PT1 )串行口中断(PS) 最 低若某几个控制位为1,则相应的中断源就规定为高级中断;反之,若某几个控制位为0,则相应的中断源就规定为低级中断。当同时接收到几个同一优先级的中断请求时,响应哪个中断源则取决于内部硬件查询顺序(即自然优先级)。4、请简述51 系列单片机中断响应的条件有中断源发出中断请求;中断总允许位EA=1,即 CPU开中断;申请中断的中断源的中断允许位为1,即中断没有屏蔽;无同级或更高级中断正在被服务;当前的指令周期已经结束;若现在指令为RETI或者是访问IE或 IP指令,则该指令以及紧接着的另一条指令
12、已执行完。5、请简述定时/ 计数器 4 种工作模式特点模式 1:是 16 位的定时器 /计数器;模式 2:把 TL0(或 TL1)配置成一个可以自动重装载的8 位定时器 /计数器;模式 3:对 T0 和 T1 大不相同。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 7 页若将 T0 设置为模式3,则 TL0 和 TH0 被分为两个相互独立的8 位计数器。 定时器 T1 无工作模式 3 状态。模式 0:与模式 1 几乎完全相同,唯一的差别是模式0 中,寄存器TL0用 5 位, TH0 用8 位 。6、请简述看门狗的基本原理看门狗是通过软
13、件和硬件的方式在一定的周期内监控弹片机的运行状况,如果在规定时间内没有收到来自单片机的清除信号,也就是我们通常说的没有及时喂狗,则系统会强制复位,以保证系统在受干扰时仍然能够维持正常的工作状态7、能否把继电器直接接在89C51的某一接线上来用,为什么?不能。因为89C51的 I/O 所提供的电压不足于驱动继电器,必须加一个三极管。8、请简述IED数据管动态扫描的原理及其实现方式动态扫描的原理是利用人的视觉暂留,让人觉得各位LED同时点亮一样。 逐位轮流点亮各个 LED ,每一位保持1ms,在 1020ms 之内再一次点亮,重复不止,就可以实现动态扫描。9、请简述89C51串口通信的四种方式及其
14、特点方式 0:同步移位寄存器输入/输出方式, 常用于扩展I/O 口。波特率固定为振荡频率的1/12,并不受 PCON寄存器中 SMOD 位的影响。方式 1:用于串行发送或接收,为10 位通用异步接口。TXD与 RXD分别用于发送与接收数据。收发一帧数据的格式为1 位起始位、 8 位数据位(低位在前) 、1 位停止位,共10 位。波特率由定时器T1的溢出率与SMOD 值同时决定。方式 2:用于串行发送或接收,为11 位通用异步接口。TXD与 RXD分别用于发送与接收数据。 收发一帧数据的格式为1 位起始位、 8 位数据位 (低位在前)、1 位可编程的第9 数据位和1 位停止位,共11 位。波特率
15、取决于PCON中 SMOD 位的值:当SMOD0时,波特率为的 1/64;当 SMOD1 时,波特率为的 1/32。方式 3:用于串行发送或接收,为11 位通用异步接口。TXD与 RXD分别用于发送与接收数据。帧格式与方式2 相同,波特率与方式1 相同。10、请说明为什么使用LED 需要接限流电阻,当高电平为+5V 时,正常点亮一个LED需要多大的限值电阻(该LED的正常工作电流为10mA,导通压降为0.6V),为什么?解: 因为 LED导通时,电压降是固定的 ( 0.6V) 。 为了使 LED既能正常工作 (电流为 10mA) ,又不至于被过大的电流损坏,所以必须加一个限流电阻。R=4.4v
16、/1010-3A=440五、综合题1、如下图所示,P1 口所接的是一个八段LED数码管(1)这个 LED数码管是共阴极还是共阳极的?答:共阳极(2)读给定程序,写出每个语句的作用注释,并说明该程序的功能(3)当开关K3K2K1K0状态分别为“断通通通”时,执行程序后LED 数码管的显示结果如何?断通通通 :输出 8 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 7 页通断通断:输出5 断通断通:“全黑”,不显示#include #define uchar usigned char void main() uchar kbstatus;
17、 / 定义字符型变量kbstatus uchar zxb=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x88,0xff/ 前十个数组元素显示0-9 十个数字,最后一个代表“全黑”,即不显示while(1)/ 不断循环P0=0xff;/ 将 0xff 作为 p0 的初始值kbstatus=P0&0x0f; / 进行与运算,将p0 高四位清零,低四位不变,获得kbstatus的值if(kbstatus0x0a)/ 如果 kbstatus的值小于是10 则显示数字,否则不显示P1=zxbkbstatus;/ 显示对应的数字else P1=zxb10;/
18、 “全黑”,即什么都不显示 P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 +5V h g f e d c b a com 2、已知 focs=12Mhz,如何利用定时器T1使图中发光二极管进行秒闪烁,即1S亮-暗,亮 500ms,暗 500ms,用 C51 写出程序2解: T0 方式 1 最大定时只能65ms 余,取 50ms,计数 10 次,即可实现500ms 定时。/ 解释使用方式1 使用 16 位,最大能计数216 Fosc=12MHZ 所以机器周期 =1us 所以最大计时=216*1us = 216us 精选学习资料 - - - - - - - - -
19、 名师归纳总结 - - - - - - -第 5 页,共 7 页所以 500ms 过大,所以定时取50ms 中断 10 次T0 初值 =216-12 50 103/12=15536=3CB0H TH0=3CHTL0=B0H TMOD=00000001B=01H / 代码如下 : #include char count = 0; void main(void) TMOD = 0x01; /采用方式1 TH0 = 0x3c; / 设置定时为50ms TL0 = 0xb0; TR0 = 1; /启动定时器ET0 = 1; /启动定时器0 中断EA = 1; /打开总中断 P0 = 0x00; /初始
20、灯为亮while(1) timer0() interrupt 1 TH0 = 0x3c; TL0 = 0x0b; count+; if( count=10 ) /计数到 10 时, 总时间为50ms*10 = 500ms; P0 = P0; /P0变暗count = 0; /恢复计数值再次计数到10 3、写出 C51单片机与PC机 RS232通信的单片机程序,设晶体振荡器为11.0592Mhz, 波特率为 9600,采用偶校验,8 位数据位 (包括 1 位停止位 ) /* 波特率 =2SMOD/32*T1溢出率 ; SMOD 一般取 1; T1 溢出率 =fosc/(12*(256-TH1);
21、 TH1 = 256-2SMOD*fosc/(波特率 *12*32); 此题中 fosc=11.0592MHZ,波特率 =9600 (SMOD一般都取1, 不用管 ) 所以 TH1 = 256-21*11.0592*106/(9600*12*32) = 250 */ #include void main(void) / 接收精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 7 页char c; /数据TH1 = 250;/250用算出来的值替换PCON = 0x80; /PCON是一个 8 位寄存器 ,SMOD 是第一位 ( 从左往右 ) SMOD/D7 D6 D5 D4 D3 D2 D1 /D0 所以 SMOD=1时 PCON = 0x80 SM0 = 1; SM1 = 1; REN = 1; while(!RI); c = SBUF; RI =0 ; TB8 = P; SBUF = c; while(!TI); TI = 0; 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 7 页