初学数码管原理并做实验(静态)

数码管是一种半导体发光器件,其基本单位是发光二极管,数码管按段数可分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元,也就是一个小数点(DP);这个小数点可以更精确的表示数码管想要显示的内容;
按发光二极管单元连接方式分为共阳极数码管和共阴极数码管;
共阳极数码管在应用将公共极COM接到5V;当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平是,相应字段就不亮;
共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管;
共阴极数码管在应用是应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮;
当某一字段的阳极为低电平时,相应字段就不亮;
初学数码管原理并做实验(静态)_第1张图片

实验一,让数码管显示6的实验;

#include 
typedef unsigned char u8;
u8 code smgduan[16]={0x3f,0x06,0x5b,0x4f,0x6d,0x7d,0x07,
					0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//显示0~F的值
void main()
{
  P0=~smgduan[5];//电路中是共阳数码管,数组表是共阴码,所以取下反值

}
#include "reg52.h"			 //此文件中定义了单片机的一些特殊功能寄存器

typedef unsigned int u16;	  //对数据类型进行声明定义
typedef unsigned char u8;


u8 code smgduan[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
					0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//显示0~F的值


/*******************************************************************************
* 函 数 名       : main
* 函数功能		 : 主函数
* 输    入       : 无
* 输    出    	 : 无
*******************************************************************************/
void main()
{	
	unsigned long ui = 0;
	unsigned int ul = 0;
	
	while(1)
	{
		for(ui=0; ui <= 0xffff; ui++)
		{
		}
		if(ul >= 16)
		{
			ul = 0;
		}
		P0=~smgduan[ul];
		ul++;

	}
	
}

你可能感兴趣的:(初学数码管原理并做实验(静态))