- (1)单片机与外部设备相连有哪两种方式?各有什么特点? 提示
- 51单片机与外部设备的连接既可采用I/O口方式(即非总线方式),也可采用总线方式。由于51单片机属于总线型结构,片内各功能部件都是按总线关系设计并集成为整体的,因而采用总线方式与外设连接时,指令的执行效率高。尤其是当外设是存储器时,只能采用总线方式连接。此外由于总线的线路公用性,外设的布线较为容易。对于非总线方式,通常直接使用单片机的4个I/O口,当外设数量不多时,编程原理和接线关系都较为简单,是初学者常用的方式。
- (2)什么是单片机与LED接口的高电平驱动?为何低电平驱动较为常用? 提示
- 发光二极管的正极直接接在单片机的I/O端口上而负极接地的做法称为LED的高电平驱动方式。这种情况下,I/O端口输出“1”电平可使其点亮,而输出“0”电平可使其关断。高电平驱动方式下电流是从I/O口向外拉出的。反之,LED负极接在I/O口上而正极接Vcc的做法称为低电平驱动方式,此时点亮LED的电平是低电平,而电流是由外电路灌向I/O口内的。单片机I/O口灌电流的能力大于拉电流的能力,因而采用低电平驱动时I/O口带负载的能力较强,故低电平驱动电路最为常用。
- (3)实例4.1中点亮了的LED不会随着对应按键的释放而熄灭,除非有新的按键动作时才刷新LED的状态,实现这一功能的编程方法是什么? 提示
- 为避免将按键释放后读到的key值写入P2口,可以利用语句if (key!= 0x0f ) P2=key,仅在key值不为0x0f时(有键按下)才向P2输出key值,这样就能保持先前的亮灯状态,直至有新的按键压下时才刷新显示。
- (4)实例4.2中采用的流水灯控制原理是什么? 提示
- 控制原理是,根据循环读取到的按键值进行流水灯分支控制,为此需要先建立两个按键状态变量和1个流水灯控制数组。程序运行时,先按检测到的按键状态刷新状态变量值,然后再根据状态变量的组合关系将控制数组中的亮灯数据送往P2口,这样便可产生不同的流水灯效果了。
- (5)实例4.3中采用的流水灯控制原理是什么? 提示
- 本例采用循环移位方法控制流水灯效果,具体做法是,调用C51的intrins.h库函数中的字符循环右移函数_cror_(x,n),使P2口中的8位二进制流水灯花样值依次循环移位,每次只有1只LED亮其他7只灭,从而产生无限循环的流水灯效果。
- (6)软件法消除机械式按键抖动的原理? 提示
- 软件消抖法的原理是,当检测到有键按下时,先用软件延时10ms,然后再次检测按键的状态。若仍是闭合状态电平,则可认为是真正有键按下;反之则应作为误判处理。。
- (7)简述LED数码管的字符显示原理。 提示
- 七段LED数码管由7个条形LED组成字符笔段,1个圆形LED作为小数点。其中所有LED阳极连接在一起作为公共端引脚,所有LED阴极单独接出作为段位引脚(共阳极数码管)。反之,共阴极数码管则相反。利用发光二极管正向连接时点亮,反向连接时熄灭的特性,改变笔段的组合电平就能形成不同的字形。
- (8)假设变量count中存有2位十进制数,现欲将其拆分为个位和十位两个数,简述拆分计算的做法。 提示
- 拆分计算的做法是,将count用取模运算(count%10)拆出个位值,用整除运算(count/10)拆出十位值。
- (9)何为数码管静态显示接口?其特点是什么? 提示
- 静态显示接口采用一个并行I/O口接一个七段数码管的段位引脚,公共端接地或Vcc。这种接法的优点是电路简单,数码管显示亮度稳定。但该方法占用I/O口资源较多。
- (10)何为数码管动态显示接口?其特点是什么? 提示
- 动态显示接口是将n个七段数码管的相同段码引脚并联起来接在一位I/O口线上,每个数码管的位码引脚则分别由一位I/O口线控制。动态显示接口的特点是占用I/O口资源较少,但占用CPU机时较多。
- (11)独立式按键的接口与特点是什么? 提示
- 组成原理是,按键的一端接地,另一端与一个I/O口线连接。若按键接在P0口需外接上拉电阻,而接在P1~P3口无需要上拉电阻。独立式键盘的特点是电路简单,软件处理工作量小,但占用的I/O口线较多。
- (12)行列式键盘的接口与特点是什么? 提示
- 组成原理是,将I/O口分为行线和列线,按键设置在跨接行线和列线的交点上,列线通过上拉电阻接正电源。行列式键盘的特点是占用I/O口线较少但软件处理工作量较大。
- (13)试对实例4.7中4×4行列式键盘的软件扫描查询做法进行归纳? 提示
- 本例采用软件扫描查询法进行,即根据按键压下前后,所在行线的端口电平是否出现翻转,判断有无按键闭合动作。具体方法是:(1)键盘列扫描,由P2口循环输出一组扫描码(可事先存放在一个字符数组中)使键盘的4个行线电平全为1,列电平轮流有一列为0,其余为1;(2)按键判断,利用条件表达式(P2&0x0f)判断有无按键压下。若行线低4位不全为1,说明至少有一个按键压下,此时P2口的读入值必为根据按键闭合规律确定的键模数组key_buf[]值之一;(3)键值计算,若将行列式键盘中自左至右、自上而下的排列顺序号作为其键值,则通过逐一对比P2读入值与键模数组,可求得闭合按键的键值j。如此便可查找出是哪个按键有按键动作了。
浏览次数: