⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ledm3.c

📁 LED点阵屏的运用
💻 C
字号:
#include <reg51.h>
#include <intrins.h>
#define time (65536-10000)
typedef  unsigned int uint;
typedef  unsigned char uchar;

sbit A_138=P1^0;		  
sbit B_138=P1^1;
sbit C_138=P1^2;
sbit D_138=P1^3;
sbit G1_SD=P1^4;
sbit G2_SD=P1^5;
sbit ST_CP=P1^6;		   //595的锁存脉冲,上升沿有效。
sbit SH_CP=P1^7;		   //595的移位时钟,在上升沿发生移位。
sbit EN_138=P3^5;          //138组成4线16线译码器的使能端,低电平有效。
sbit R1_SD=P3^6;		   //595的数据端
sbit R2_SD=P3^7;

uchar to_second_cnd=50;	   //50ms*second_cnd,所以大概2.5s
uchar second_flag=0;
uchar up_down_flag=1;	   //为1,down;为0,up。
uchar i=0;
uchar cnt =0;
uchar hc138_inport=0;
uchar const ziku[][32]= 
{
{0xF7,0xFF,0xF7,0xFF,0xF7,0xFF,0x80,0x83,0xF6,0xBB,0xF6,0xBB,0xF6,0xBB,0xF6,0xBB,0xEE,0xBB,0xEE,0xBB,0xEE,0xBB,0xDE,0xBB,0xDE,0x83,0xBA,0xBB,0x7D,0xBF,0xFF,0xFF},/*"加",0*/

{0xBF,0xBF,0xDF,0xBF,0xDF,0xBF,0xFF,0xBF,0x68,0x03,0xAB,0xBB,0xAB,0xBB,0xEB,0xBB,0xDB,0xBB,0xD8,0x03,0x1B,0xBB,0xDB,0xBB,0xDB,0xBB,0xDB,0xBB,0xD8,0x03,0xDB,0xFB},/*"油",1*/

{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0x7F,0xFE,0x7F,0xFE,0x7F,0xFE,0x7F,0xFE,0x7F,0xFE,0x7F,0xFE,0x7F,0xFF,0xFF,0xFF,0xFF,0xFE,0x3F,0xFE,0x3F,0xFF,0xFF,0xFF,0xFF},/*"!",0*/
//{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0x7F,0xFD,0xBF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFD,0xBF,0xFE,0x7F,0xFF,0xFF,0xFF,0xFF},/*"0",0*/

//{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0x7F,0xFD,0xBF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFD,0xBF,0xFE,0x7F,0xFF,0xFF,0xFF,0xFF},/*"0",1*/

//{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0x7F,0xFD,0xBF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFD,0xBF,0xFE,0x7F,0xFF,0xFF,0xFF,0xFF},/*"0",2*/


//{0xF9,0xBF,0xC7,0xAF,0xF7,0xB7,0xF7,0xB7,0xF7,0xBF,0x00,0x01,0xF7,0xBF,0xF7,0xB7,0xF1,0xD7,0xC7,0xCF,0x37,0xDF,0xF7,0xAF,0xF6,0x6D,0xF7,0xF5,0xD7,0xF9,0xEF,0xFD},/*"我",0*/

//{0xFF,0xFF,0xF8,0xFF,0x87,0xFF,0xF7,0x83,0xF7,0xBB,0x80,0xBB,0xF7,0xBB,0xE7,0xBB,0xE3,0xBB,0xD5,0xBB,0xD4,0xBB,0xB5,0xBB,0x77,0x83,0xF7,0xBB,0xF7,0xFF,0xF7,0xFF},/*"和",1*/

//{0xF6,0xFF,0xF6,0x7F,0xEE,0xFB,0xEC,0x01,0xDD,0xFB,0xCB,0xB7,0x97,0xBF,0x5D,0xAF,0xDC,0xB7,0xDD,0xB7,0xDB,0xBB,0xDB,0xB9,0xD7,0xBB,0xDE,0xBF,0xDF,0x7F,0xFF,0xFF},/*"你",2*/

//{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},
//{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},
//{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},
//{0xAA,0xA0,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
//{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
//{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
//{0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe},
//{0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe},
//{0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe},
//{0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa},
//{0x00,0x00,0x00,0x00,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa},
//{0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa},

};




void delay_s(uint x)
{
	while(x--);
}


void hc595(	uchar temp)
{
	uchar count=0;

	for(; count<8; count++)
	{
		SH_CP=0;
		R1_SD=temp&0x80;
		temp<<=1;
		SH_CP=1;
		_nop_();
		SH_CP=0;
		}
								

}

void timer0(void) interrupt 1
{
	EA=0;
	TH0=time>>8;
	TL0=time&0xff;
	if(!(to_second_cnd--))
	{
		second_flag=1;
		to_second_cnd=50;
	}

	EA=1;
}


void up_down(void)
{
	if(second_flag)
	{
		if (up_down_flag)
			hc138_inport++;			 //down
		else				 //up
		{
			if(hc138_inport==0)
				hc138_inport=15;
			else
				hc138_inport--;
		}
		second_flag=0;
	}

}

void intrrupt_t0_ini()
{
	TH0=time>>8;
	TL0=time&0xff;
	TMOD=0X01;
	TR0=1;
	ET0=1;
	EA=1;	
}


void led_m_dis()
{
	for(;i<16;i++,hc138_inport++)
	{			
		for(;cnt<3;cnt++)
		{
			hc595(ziku[cnt][2*i]);
			hc595(ziku[cnt][2*i+1]);			
		}


		ST_CP=0;
		_nop_();
		ST_CP=1;
		ST_CP=0;
		delay_s(10);

		if(hc138_inport==16)
		hc138_inport=0;

		EN_138=1;
		A_138=hc138_inport&0x01;
		B_138=hc138_inport&0x02;
		C_138=hc138_inport&0x04;
		D_138=hc138_inport&0x08;
		EN_138=0;
		delay_s(100);
		EN_138=1;
		cnt=0;
	}
	i=0;	
}
																				  
void main()
{
	intrrupt_t0_ini();	
	for(;;)
	{
		up_down();
		led_m_dis();
	}
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -