当前位置:
文档之家› 单片机基础及应用项目三课后习题及答案
单片机基础及应用项目三课后习题及答案
//--单--//
uchar code tab1[] ={16,4,32,2,248,15,136,8,136,8,248,15,136,8,136,8,248,15,128,0,128,0,254,63,128,0,128,0,0,0,0,0};
//--片——//
uchar code tab2[] ={0,2,8,2,8,2,8,2,248,31,8,0,8,0,8,0,248,7,8,4,8,4,8,4,4,4,2,4,0,0,0,0};
2.8*8点阵编程通常采用行扫描和列扫描,简述其原理?
答:行扫描就是控制点阵显示器的行线依次输出有效驱动电平(高电平,针对行共阳的点阵),当每行行线状态有效时,分别输出对应的行扫描码至列线,驱动该行LED点亮。
列扫描就是控制点阵显示器的列线依次输出有效驱动电平(低电平,针对行共阳的点阵),当每列列线状态有效时,分别输出对应的列扫描码至行线,驱动该列LED点亮。
//---全局变量声明--//
ulong column; //点阵列
ulong row; //点阵行
ulong dt;
//点阵显示数组
uchar code tab0[] = {0x00, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80,0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x00};
4.74hc245芯片是(A)
A、驱动器B、译码器C、锁存器D、编码器
5.存储8*8点阵的一个汉字的信息,需要的字节数为(A)
A、8 B、16 C、32 D、64
6.LED数码管若采用动态下显示方式,下列说法错误的是(C)
A、将各位数码管的段选线并联
B、将段选线用一个8位I/O端口控制
C、将各位数码管的公共端直接连接在+5V或者GND上
二、选择题
1.在单片机应用系统中,LED数码管显示电路通常有(C)显示方式。
A、静态B、动态C、静态和动态D、查询
2.共阳极LED数码管显示字符“6”的段码是(C)。
A、0x06 B、0x7D C、0x82 D、0Xfa
3.多位数码管显示时,(D)负责输出字型码,控制数码管的显示内容。
A、显示端B、公共端C、位选端D、段选端
//--机--//
uchar code tab3[] ={8,0,136,15,136,8,190,8,136,8,136,8,156,8,172,8,138,8,136,8,136,8,72,40,72,40,40,48,0,0,0,0};
//函数声明
void HC595SendData( uchar BT3, uchar BT2,uchar BT1,uchar BT0);
一、填空题
1.LED数码管显示按显示过程分为(静态)显示和(动态)显示。
2.数码管分为(共阴极)和(共阳极)两种结构。若字型码最低位对应a段,最高位对应dp段,要显示数字“2”,这两种结构对应的字型码分别为(0x5b)和(0xa4)。
3.在数码管的动态显示方式中,(段选)端输出字型码,(片选)端选择数码管。
四、制作题
1.采用4块8*8点阵LED显示模块设计一个16*16点阵显示模块,并编程实现点阵循环显示字符“单片机”。
电路:
程序:
#include <REG51.H>
#include <intrins.h>
#define NOP() _nop_() //定义空指令,这个函数在库<intrins.h>中
//--重定义函数变量--//
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
//--定义SPI要使用的IO--//
sbit MOSIO = P3^4;
sbit R_CLK = P3^5;
sbit S_CLK = P3^6;
D、将各位数码管的位选线用各自独立的I/O端口控制
7.在共阳极数码管使用中,若要仅显示小数点,则其相应的字段码是(D)
A、80H B、10H C、40H D、7FH
8.共阴极数码管是将所有发光二极管的()连接在一起,数码管的动态显示是利用发光二极管的(C),让人感觉数码管是同时点亮。
A、阴极,发光效应B、阳极,发光效应
C、阴极,余晖效应D、阳极,余晖效应
三、问答题
1.什么是LED数码管静态扫描和动态扫描。简述LED数码管动态扫描的原理及其实现方式?
答:数码管静态就是指在给数码管送字型码,这个字形能保持至下一次字型码到来,多于两个数码管的电路只能每个显示一个字型码,而不能显示两个不同的字形,如果要显示不同字形则要等到下一次送入新的字型码为止。而对于动态显示在多于两个数码管一起显示时,可以先给一个数码管送入一个字型码,让这个字形在这个数码管上显示一段很短的时间,这个时间必须短于人眼的识别时间即几十毫秒以下,然后又接着给另外一个数码管送入不同的字型码,也让这个字形在这个新的数码管上显示一段很短的时间,其实是让所有的数码管显示的字型码轮流在各个数码管上面显示,就这样重复多次,这样我们利用人眼的惰性看到的显示数码管上面的字形就好像是同时显示一样。数码管采用动态扫描显示时,所有数码管的笔画段的同名端连接在一起共用一个控制引脚,而每个数码管的公共极各自独立,分别与不同控制引脚相连。
/*************主函数*****************************/
void main(void)
{int k, i, ms;
i = 80;//显示时间
4.共阳极数码管公共端为(高)电平;段选端为(低)电平时亮,为(高)电平时灭。
5.数码管(静态)显示方式,每个数码管要占用一个端口;(动态)显示方式采用动态扫描方式显示。
6.8*8点阵共由64个发光二极管组成,每个发光二极管放置在(行线)和(列线)的交叉ቤተ መጻሕፍቲ ባይዱ上。
7.8*8点阵扫描方式有(行)扫描和(列)扫描。