考试试题姓名 : 班级 : 分数 : 一 : 简述题 (1)MSP430F5xx 单片机的时钟系统中有哪几个时钟, 并分别讲述下它们的作用 (7) MSP430F5xx 单片机的时钟系统有 MCLK ACLK SMCLK MCLK 为主系统时钟, 主 要为 CPU 提供时钟 ACLK 为辅助系统时钟, 主要为低速的外围模块提供时钟 SMCLK 为子系统时钟, 主要为高速外围模块时钟 各种模块时钟的选择取决于系统对处理速度 的要求和对功耗的要求 (2) 何谓单工串行口, 半双工串行口, 全双工串行口?(8) 单工数据传输只支持数据在一个方向上传输 ; 半双工数据传输允许数据在两个方向上传输, 但是, 在某一时刻, 只允许数据在一个方向上传输, 它实际上是一种切换方向的单工通信 ; 全双工数据通信允许数据同时在两个方向上传输, 因此, 全双工通信是两个单工通信方式的结合, 它要求发送设备和接收设备都有独立的接收和发送能力 (3) 在单片机系统中,LED 显示接口一般采用静态驱动和动态扫描两种驱动方式, 请分别阐述这两种驱动方式的工作原理和优缺点 (8) LED 显示屏扫描方式 : 静态与动态的区别 从驱动 IC 的输出脚到像素点之间实行 点对点 的控制叫做静态驱动, 从驱动 IC 输出 脚到像素点之间实行 点对列 的控制叫做扫描驱动, 它需要行控制电路 : 从驱动板上 可以很清楚的看出 : 静态驱动不需要行控制电路, 成本较高 但显示效果好 稳定性好 亮度损失教小等 ; 扫描驱动它需要行控制电路, 但成本低, 显示效果差, 亮度损失大等 (4) 试说明阵列式键盘的工作原理, 以 4 4 矩阵键盘为例, 画出键盘连接示意图, 结合示意图并说明 (9) 各行线为 CPU 输出口线, 平时置为低电平, 各列线为 CPU 输入口线, 一端通过上拉电 阻连接到电源, 另一端输入到 CPU 供检测 当无按键按下时, 各列线均保持高电平 当有按键按下时, 按键对应的行列线导通, 由于各行线均为低电平, 则该键所在的列线 也会被拉低 从而软件可以判断出那列有键按下 通过程序, 使各行线依次置低, 并读 取列信息, 就可以得出哪行有键按下 这样软件就可以得出按键对应的行列扫描码了 公司地址 : 杭州市登云路 639 号电子市场四楼 C 区 Tel:0571-88800000 Fax:0571-89908080 第 1 页共 6 页
(5) 什么叫中断优先级? MSP430 单片机中断优先级是如何确立的? 为使系统能及时响应并处理发生的所有中断, 系统根据引起中断事件的重要性和紧迫程度, 硬件将中断源分为若干个级别, 称作中断优先级 MSP430 中的中断优先级只在同一个 MCLK 内发生两个中断触发事件, 单片机在选择先响应哪个中断时, 这种 优先 才有意义 MSP430 在响应一个中断服务时, 那么当前中断的优先级是最高的, 只有当该中断服务完成之后, 才会去响应别的中断, 这个和 51 单片机是不一样的 (6)MSP430 是低功耗单片机, 你是如何理解这个低功耗的?(6) MSP430 相比其他单片机的一大优势就是低功耗, 在睡眠模式下可以达到 0.1uA MSP430 能够实现低功耗一是归功于其良好的时钟系统,MSP430 有 MCLK SMCLK ACLK VLOCK 等时钟, 并有 5 种低功耗模式 (F5 系列甚至还有 LPM3.5 LPM4.5 模式 ), 这样使的单片机能在完成其基本任务的基础上尽可能的消耗最少的电流 二是归结于起高性能的外围功能模块, 在 MSP430 的 CPU 出于睡眠状态下仍能够完成一系列任务, 而无需每次都得唤醒 CPU 去处理相应的事件 单片机的电流消耗相当于一个方波,MSP430 良好的时钟系统能够使得方波的幅值尽可能的小, 高性能的外围模块能够使得方波的占空比尽可能的小, 这样才促成了最低的平均电流 (7) 简述下看门狗的作用,430 单片机上电复位后默认的喂狗时间是多少?(7) 看门狗是一个定时器, 而绝大多数任务都是一个循环任务体, 当 MCU 内的程序正常执 行的时候都,MCU 会去把该定时器复位清零一次 ( 俗称喂狗 ), 如果超过规定的时间不 喂狗,( 一般在程序跑飞时或卡住了 ),WDT 定时就会溢出, 给出一个复位信号到 MCU, 使 公司地址 : 杭州市登云路 639 号电子市场四楼 C 区 Tel:0571-88800000 Fax:0571-89908080 第 2 页共 6 页
得 MCU 复位. 防止 MCU 死机. 看门狗的作用就是防止程序 卡死, 或者程序跑飞 MSP430 单片机上电复位之后, 其看门狗的时钟源来自 ACLK 而 430 的 ACLK 大多为 32768Hz, 所以其默认喂狗时间是 32ms 左右 (8) 请画出独立式电容触摸按键的简图 对着简图说明下充放电以及检测按键按下的原理 (10) 现在很多平板电视以及笔记本上都有触摸按键, 其实触摸按键原理并不复杂, 它就是一 个 MCU 检测电容改变的过程, 当人的手指按到按键的 PAD 上之后, 会导致该 PAD 的 电容增大,MCU 需要做的就是检测这个电容的变化是否发生, 发生的剧烈程度进而来 判断是否有按键按下 举例说明 : PAD1 PAD2 就相当于一个电容,P1.0 通过 R 给 PAD2 充电, 当 PAD2 充满之后,P1.0 输出低, 让电容内的电荷通过 R 放电 ( 整个过程中 P1.1 必须为输入状态, 以保持其高 组态, 反之, 给 PAD1 充电 放电亦然 ) 如果人体手指没有接触这个 PAD, 那么 PAD 的等效电容是不会发生剧烈变化的 ( 湿度 温度等环境因素导致的变化是缓慢的, 所以 良好的触摸按键程序还必须有自适应环境变化的功能, 否则会造成误动作 ), 当人手指 按下将会导致 PAD 的充电和放电时间迅速变大 (ms 级的 ),MCU 感应出这种变化就认 为是有按键按下 (9) 本次实验中有 SPI 接口的 FLASH 型存储芯片,IIC 接口的 E2 存储芯片, 简述下你对这 2 种通讯方式的理解, 以及他们的相同点和不同点 (9) 两种通讯方式都属于串行移位通讯, 都必须有一个主机来提供时钟 I2C 属于半双工数 据传输, 在同一时刻数据流方向只能从主机到从机或者从机到主机, 但是 SPI 属于全双 工数据传输, 在同一时刻 ( 一般指的是同一个串行时钟内 ) 主机的数据可以传递给从机, 从机的数据也可以传递给主机 I2C 有严格的时序, 一般包括 START 位, 设备地址 数 据地址 数据 以及 ACK STOP 信号等 ( 具体可见 I2C 协议 ), 高速 I2C 速率一般可 达 400kbps 而 SPI 的数据流都是紧邻的, 每个字节的数据有什么意义需要由用户定义, 在传输过程中只要有一个数据位丢失或者错误会导致整个数据包无效, 但是其传输速率 比较快, 通常都是 M 级以上 公司地址 : 杭州市登云路 639 号电子市场四楼 C 区 Tel:0571-88800000 Fax:0571-89908080 第 3 页共 6 页
(10) 请画出普通单相直流电机驱动中常用的 H 桥电路的示意图, 标出正反转时电流的方向, 结合该图谈谈如何实现电机的调速 (7) 当 P1.0 输出高电平,P1.1 输出低电平时, 三极管 Q1 导通 Q2 截至, 电流流向是 A; 当 P1.0 输出低电平,P1.1 输出高电平时, 三极管 Q1 截止 Q2 导通, 电流流向是 B 电流流向不同, 电机的转动方向就不同 需要注意的是 Q1 Q2 不能同时导通, 这样电流就通过电阻 R1 R2 直接对地放电了 改变 P1.0 或者 P1.1 输出口的 PWM 的占空比就能控制流过电机的电流大小实现电机的速度控制 (11) 谈谈什么叫阻抗匹配 在一个模数转换电路中怎样实现阻抗匹配? 阻抗不匹配对 AD 采样会产生什么样的影响? 假如现在有一个工频信号需要被采样, 我们的采样频率至少为多少? 假如采样频率是 300Hz, 用的是 16 位 AD, 采样的数据要保存在 256K 的 FLASH 芯片中, 请问最多可以记录多长时间?(11) 阻抗匹配 : 负载阻抗等于信源内阻抗的共轭值, 即它们的模相等而辐角之和为零 这时 在负载阻抗上可以得到最大功率 这种匹配条件称为共轭匹配 如果信源内阻抗和负载 阻抗均为纯阻性, 则两种匹配条件是等同的 一般的 SAR 型 AD 芯片或者模块中, 都存在这样一个电路 : 其中 Rx 是外部阻抗,R0 是 AD 通道内部阻抗,C0 是采样电容, 当阻抗不匹配时, 将导致 Rx 非常大, 进而影响采样电容充电到 Vx 的时间, 如果要使得采样电压准确的等于待测电压 Vx 就会影响采样速率, 这就是采样电压准确性和速度的权衡取舍问题了 所以为了尽可能的缩短采样电容的充电时间, 既保证准确性又需要高速性, 就得降低 Rx 公司地址 : 杭州市登云路 639 号电子市场四楼 C 区 Tel:0571-88800000 Fax:0571-89908080 第 4 页共 6 页
的值, 而跟随器能有效降低模拟前端电路的输出阻抗, 所以一般都会增加一个跟随器 按照奈奎斯特准则, 一个信号需要被还原, 其采样频率必须是被采样信号的 2 倍以上, 所以 50Hz 的工频信号, 采样频率至少是 100Hz 假如采样频率是 300Hz, 且为 16 位的 AD, 那么 1 秒钟将产生 600 个字节的采样数据, 256K 的 FLASH, 可以存储记录的时间长度 t=256*1024/600=436.9 秒 二编程题 (10) 请用 MSP430 单片机的 TimerA 模块编写一个闪灯程序, 闪烁频率是 2Hz, 输出 IO 可自行选择 以下例子均以 MSPF5438 为运行载体 方法一 : #include "msp430x54x.h" void main(void) WDTCTL = WDTPW WDTHOLD; P7SEL = BIT0 BIT1; //LFXT1 的两个晶振输入引脚需要设置成晶振功能 TA0CTL = TASSEL0 TACLR;//TA0 的时钟选择为 ACLK=32768Hz TACCR0 = 32768>>1; TACCR1 = TACCR0>>1; // 占空比为 50% TACCTL1 = OUTMOD_7; // 复位置位模式 TA0CTL = MC0; // 增计数模式 P1DIR = BIT2; P1SEL = BIT2; //P1.2 为 PWM 输出口, 该引脚在使用 CCR1 输出时为特定引脚 While(1) LPM3; // 进入低功耗模式 3 方法二 : 公司地址 : 杭州市登云路 639 号电子市场四楼 C 区 Tel:0571-88800000 Fax:0571-89908080 第 5 页共 6 页
#include "msp430x54x.h" void main(void) WDTCTL = WDTPW WDTHOLD; P7SEL = BIT0 BIT1; //LFXT1 的两个晶振输入引脚需要设置成晶振功能 P5DIR = BIT0; // 此引脚可任意 TA0CTL = TASSEL0 TACLR;//TA0 的时钟选择为 ACLK=32768Hz TACCR0 = 32768>>2; TACCTL0 = CCIE; // 复位置位模式 TA0CTL = MC0; // 增计数模式 While(1) _BIS_SR(LPM3_bits + GIE); // 进入低功耗模式 3 #pragma vector = TIMER0_A0_VECTOR interrupt void TA_SR(void) P5OUT ^= BIT0; // 此引脚可任意 公司地址 : 杭州市登云路 639 号电子市场四楼 C 区 Tel:0571-88800000 Fax:0571-89908080 第 6 页共 6 页