数码管显示
一、实验目的:
1、了解数码管的结构和功能;
2、学会如何区分三极管的三个引脚并正确使用三极管;‘
3、学会利用“星星点灯”实验原理来控制数码管发光,从而为后续试验(制作电子钟,电压表,温度计)打好基础。
二、实验器材:
C8051F330单片机,0.5K电阻八个,10K电阻六个,9013三极管(NPN型)六个,三个共阳极双数码管,稳压电源,跳线,插槽,电烙铁,锡丝若干
三、实验电路图:
数码管动态显示驱动
下面我们介绍一下数码管的显示原理,每个数码管共有八位,分别是A、B、C、D、E、F、G、DP(即小数点),每一位实际上相当于一个发光二极管。当数码管的共阳极接电源正极后,此时如果把对应每一位的数码管引脚接电源的负极则相应的位便会发光(当然要注意选择合适的电压否则会烧坏数码管),当我们让这八位中的某些位按照一定的规则同时发光则可以显示出我们所需要的数字,在本实验中我们是利用P0来控制显示数字笔画。
接下来我们要做的是让多个数码管同时闪亮,在星星点灯实验中当我们将延时时间减小到一定程度时我们便会观察到四个二极管同时发光,这就是利用了人的视觉暂留现象。其实这四个二极管并不是同时发光的,只是因为延时时间过短使得它们发光太快以至于我们的视觉根本无法区分,利用这个原理我们也可以让多个数码管看起来同时发光。
从图中我们可以看到:三个共阳极双数码管的每一位(A、B、C……)是连在一起的,而六个三极管则相当于每一数码管(每一个双数码管是由L/R两个数码管组成)的开关,这就相当于将六个数码管并联并在每一并联支路上加一开关,当开关闭合时则该支路的数码管将显示出数字。三极管的开关作用是利用控制基极电位来实现的,当基极加高电位,则基极与发射极间的PN结将被打开,当基极加低电位时不能打开该PN结。本实验中我们是用P1来控制基极电位的。
如图所示,A——P0.0;B——P0.1;C——P0.2;D——P0.3;E——P0.4;F——P0.5;G——P0.6;DP——P0.7;自左往右控制六个数码管的P1引脚分别是P1.5、P1.4、P1.3、P1.2、P1.1、P1.0;
下面来介绍如何用数码管的八位来显示数值,以显示“1”为例,当显示“1”时我们需要让位B与位C亮,其余位不亮,因此我们要将P0.1与P0.2置0(低电平),其余的设置为1(高电平),所以P0=1111 1001,即十六进制下的P0=0XF9;同样道理我们可以得到:
0——0XC0(1100 0000);1——0XF9(1111 1001);2——0XA4(1010 0100);3——0XB0(1011 0000);4——0X99(1001 1001);5——0X92(1001 0010);6——0X82(1000 0010);7——0XF8(1111 1000);8——0X80(1000 0000);9——0X90(1001 0000);
四、范例程序:
#include<c8051f330.h>
unsigned i,j,m;
void sys(void) //设置系统时钟
{
CLKSEL=0X00;
OSCICL=0X2D;
OSCICN=0XC2;
}
void pio(void) //设置I/0端口
{
XBR0=0X00;XBR1=0X40;
P0MDIN=0XFF;P0MDOUT=0X00;P0SK