數碼管動態顯示

#include "reg52.h"
#define led P0
int code light[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void delay(int i)
{
	while(i--);
}  

void main()
{
	led=0x01;
	delay(50000);
	int j;//爲什麼int在此處編譯不通過?應該是編譯器的問題
	
	/*
	int j;
	led=0x01;
	delay(50000);
	放在上邊這種就可以*/
	
	while(1)
	{
		   for(j=0; j<17; j++)
		   {
		   led=light[j];
		   delay(50000);
		   }
	}
}


74HC138D 是一種三通道輸入、八通道輸出譯碼器,主要應用於消費類電子產
品。
(1)主要特性
①採用 CMOS 工藝
②低功耗
③工作電壓:3.0V-5.0V
④封裝形式:SOP16
(2)管腳功能定義
在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述這裏給大家總結一個方法:A0、A1、A2 輸入就相當於 3 位 2 進制數,A0 是
低位,A1 是次高位,A2 是高位。而 Y0-Y7 具體哪一個輸出有效電平,就看輸入
二進制對應的十進制數值。比如輸入是 101(A2,A1,A0),其對應的十進制數
是 5,所以 Y5 輸出有效電平(低電平)。

在這裏插入圖片描述這個是爲什麼?電路看不懂


#include "reg52.h"			 //此文件中定義了單片機的一些特殊功能寄存器

typedef unsigned int u16;	  //對數據類型進行聲明定義
typedef unsigned char u8;

u8 code smgduan[]={0x6d,0x5b, 0x3f,0x40,	0x06, 0x4f,	 0x06,	0x66,};
  // 0x6d,0x5b, 0x3f,0x40,	0x06, 0x4f,	 0x06,	0x66,
u8 code weixuan[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

void delay(u16 i)
{
	while(i--);	
}

void DigDisplay()
{
	u8 i;
	for(i=0;i<8;i++)
	{
		P1= weixuan[i];
		P0=smgduan[i];//發送段碼
		delay(1); //間隔一段時間掃描	
	//	P0=0x00;//消隱
	}
}

void main()
{	
	while(1)
	{	
		DigDisplay();  //數碼管顯示函數	
	}		
}

數碼管動態顯示520-1314

#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
#define  DIGI  P0
#define  SELECT P2

uchar digivalue[]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
					0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
uchar select[]= {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

void delay(uint i)
{
	while(i--);
}

main()
{
	uchar i=0;
	while(1)  {
		for(i=0; i<8; i++)
		{
			SELECT=select[i];		
			DIGI=digivalue[i];
			delay(50000);
		}
	}
}

動態顯示0-7

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章