2022年嵌入式考试复习资料final.docx
精选学习资料 - - - - - - - - - 嵌入式软件考试复习资料一、填空题0,最低的是 串行1、MCS-51 系列单片机为8 位单片机2、8051 的异步通信口为全双工(单工 /单双工 /全双工)3、8051 有2 级中断,5个中断源4、8051 内部数据储备地址范畴是64KB 5、MCS-51 单片机中,在IP=0X00 时,优先级最高的中断是外部中断口中断6、要使 MCS-51 单片机从片内的地址 0000H 开头执行程序,那么 EA 应接 高电平从片外的地址开头执行,那么 EA应接 低电平8、设 fosc=12Mhz,就 8051 的定时器 /计数器 0 接方式 0 时,其最大的定时时间是 8.192ms (213-0 )*1us=8192us=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引脚加一个高电平且维护两个机器周期,可将系统复位计数器 / 定时器的有关运算计数器初值的运算1)计数器方式时的计数初值TC2 MN (M 为计数器位数,N 为要求的计数值)方式 0:M13,计数器的最大计数值 2 138192;方式 1:M 16,计数器的最大计数值 2 1665536;方式 2:M8,计数器的最大计数值 2 8256;方式 3:同方式 2;2例如,设 T0 工作在计数器方式 TC2 8 10246 2,求计数10 个脉冲的计数初值,定时器方式时的计数初值在定时器方式下,定时器 机器周期 = 12/fosc; T0或 T1是对机器周期进行计数的;二、定时时间为: t2M计数初值 ×机器周期( 12MHZ 对应的机器周期是1us)就计数初值 = 2M-t* f12 挑选题名师归纳总结 1、运算机能直接识别的语言是(C )第 1 页,共 7 页A、汇编语言B、自然语言C、机器语言D、硬件和软件2、开机复位后,CPU使用的是寄存器第一组,地址范畴(B )A、00H10H B、00H-07H C、10H-1FH D、 08H-0FH - - - - - - -精选学习资料 - - - - - - - - - 注:如是其次组就应当是10H1FH 就选 C(每组 8 字节)3 单片机中,(C )是数据储备器, (ABD )是程序储备器A、 ROM B、EPROM C、RAM D、 EEPROM 4、单片机在与外部 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 有中断源(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 单片机的 VSS20引脚是( B)引脚A、主电源 +5V B、接地C、备用电源D、拜访片外存贮器三、判定题1、当 89C51 的 EA引脚接低电平常,CPU只能拜访片外 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、在 89C51 中,一个机器周期包括 12 个振荡周期,而每条指令都由一个或者几个机器周期组成,分别是单周期、双周期和 4 周期指令9、单片机 89C51 复位后, 其 PC指针初始化为0000H,使单片机从该地址单元开头执行10、单片机系统上电后,其内部 RAM 的值是不确定的11、单片机是将微处理器、肯定容量的 一块芯片上面构成的微型运算机12、在 89C51 中,当 CPU拜访片内、外RAM 和 ROM 以及 I/o 口,定时器等电路集成在ROM 区,片外 RAM 区和片内 RAM 区是靠使用名师归纳总结 - - - - - - -第 2 页,共 7 页精选学习资料 - - - - - - - - - 不同的指令来区分的13、定时 / 计数器在工作时,需要消耗 CUP的时间×14、定时 / 计数器工作于计数方式时,是通过 当遇到脉冲下降沿时计数一次89C51 的 T0 和 T1 对外部脉冲进行计数,15、串行通信的优点是只需一对传送线,成本低,适于远距离通信,缺点是传送速度较低17、同步通信方式中,发送端的发送速率和接收端的接收速率必需完全一样18、异步通信方式中,发送端的发送速率和接收端的接收速率必需完全一样19、在单片机89C51 中,读和写的SBUF在物理上是独立的,但地址是相同的20、单片机 89C51 和 PC机的通信中,使用芯片 四、简答题1、请说明 MCS-51 的外部引脚 EA的作用MAX232 是为了进行电平转换答:当 EA*为高电平常, 拜访内部程序储备器,但当地址大于 0FFF时, 自动转到外部程序储备器;当 EA*为低电平常,只读取外部程序储备器;2、请简述 89C51 单片机中断的概念当 CPU正在处理某件事情的时候,外部发生的某一大事恳求 CPU快速去处理, 于是,CPU临时中止当前的工作,转去处理所发生的时间;中断服务处理完该大事以后,再回到原来被中止的地方,连续原先的工作,这样的过程成为中断;3、请简述单片机 89C51 中断的自然优先级次序,如何提高某一中断源的优先级别中断源(掌握位)自然优先级外部中断 0 (PX0 ) 最 高定时器 / 计数器 0 溢出中断( PT0 )外部中断 1 (PX1 )定时器 / 计数器 1 溢出中断( PT1 )串行口中断( PS) 最 低如某几个掌握位为 1 ,就相应的中断源就规定为高级中断;反之,如某几个掌握位为 0 ,就相应的中断源就规定为低级中断;当同时接收到几个同一优先级的中断恳求时,响应哪个中断源就取决于内部硬件查询次序(即自然优先级);4、请简述 51 系列单片机中断响应的条件 有中断源发出中断恳求; 中断总答应位 EA=1,即 CPU开中断; 申请中断的中断源的中断答应位为 1,即中断没有屏蔽; 无同级或更高级中断正在被服务; 当前的指令周期已经终止; 如现在指令为RETI或者是拜访IE 或 IP 指令,就该指令以及紧接着的另一条指令已执行完;5、请简述定时 / 计数器 4 种工作模式特点模式 1:是 16 位的定时器 /计数器;模式 2:把 TL0(或 TL1)配置成一个可以自动重装载的 模式 3:对 T0 和 T1 大不相同;8 位定时器 /计数器;名师归纳总结 - - - - - - -第 3 页,共 7 页精选学习资料 - - - - - - - - - 如将 T0 设置为模式3,就 TL0 和 TH0 被分为两个相互独立的8 位计数器; 定时器 T1 无工作模式 3 状态;模式 0:与模式 1 几乎完全相同,唯独的差别是模式0 中,寄存器TL0用 5 位, TH0 用8 位 ;6、请简述看门狗的基本原理看门狗是通过软件和硬件的方式在肯定的周期内监控弹片机的运行状况,假如在规定时间内没有收到来自单片机的清除信号,也就是我们通常说的没有准时喂狗,就系统会强制复位,以保证系统在受干扰时仍旧能够维护正常的工作状态7、能否把继电器直接接在89C51 的某一接线上来用,为什么?不能;由于 89C51 的 I/O 所供应的电压不足于驱动继电器,必需加一个三极管;8、请简述 IED 数据管动态扫描的原理及其实现方式动态扫描的原理是利用人的视觉暂留,让人觉得各位 LED同时点亮一样; 逐位轮番点亮各个 LED,每一位保持 1ms,在 1020ms 之内再一次点亮,重复不止,就可以实现动态扫描;9、请简述 89C51 串口通信的四种方式及其特点方式 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 位;波特率取决于 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/10× 10-3A=440五、综合题1、如下图所示,P1 口所接的是一个八段LED数码管(1)这个 LED数码管是共阴极仍是共阳极的?答: 共阳极(2)读给定程序,写出每个语句的作用注释,并说明该程序的功能(3)当开关K3K2K1K0状态分别为“ 断通通通” 时,执行程序后LED 数码管的显示结果如何?断通通通 :输出 8 名师归纳总结 - - - - - - -第 4 页,共 7 页精选学习资料 - - - - - - - - - 通断通断:输出 5 断通断通:“ 全黑” ,不显示#include<reg51.h> #define uchar usigned char void main uchar kbstatus; / 定义字符型变量 kbstatus uchar zxb=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x88,0xff / 前十个数组元素显示0-9 十个数字,最终一个代表“ 全黑”,即不显示while1 / 不断循环 P0=0xff; / 将 0xff 作为 p0 的初始值kbstatus=P0&0x0f; / 进行与运算,将p0 高四位清零,低四位不变,获得kbstatus的值ifkbstatus<0x0a / 假如 kbstatus的值小于是 P1=zxbkbstatus;/ 显示对应的数字 else P1=zxb10;/ “ 全黑” ,即什么都不显示 10 就显示数字,否就不显示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 名师归纳总结 - - - - - - -第 5 页,共 7 页精选学习资料 - - - - - - - - - 所以 500ms 过大,所以定时取 50ms 中断 10 次 T0 初值 =216-12 × 50× 103 /12=15536=3CB0H TH0=3CH TL0=B0H TMOD=00000001B=01H / 代码如下 : #include <reg51.h> char count = 0; void mainvoid TMOD = 0x01; /采纳方式 1 50ms TH0 = 0x3c; / 设置定时为TL0 = 0xb0; TR0 = 1; / 启动定时器ET0 = 1; / 启动定时器 0 中断 EA = 1; / 打开总中断 P0 = 0x00; / 初始灯为亮 while1 timer0 interrupt 1 TH0 = 0x3c; TL0 = 0x0b; count+; if count=10 /计数到 10 时, 总时间为 50ms*10 = 500ms; P0 = P0; /P0变暗10 count = 0; /复原计数值再次计数到 3、写出 C51 单片机与 PC机 RS232通信的单片机程序,设晶体振荡器为 11.0592Mhz, 波/* */ 特率为 9600,采纳偶校验,8 位数据位 包括 1 位停止位 波特率 =2SMOD/32*T1 溢出率 ; SMOD 一般取 1; T1 溢出率 =fosc/12*256-TH1; TH1 = 256-2SMOD*fosc/波特率 *12*32; 一般都取 1, 不用管 此题中 fosc=11.0592MHZ,波特率 =9600 SMOD所以 TH1 = 256-21*11.0592*106/9600*12*32 = 250 #include <reg51.h> void mainvoid / 接收名师归纳总结 - - - - - - -第 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 页