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

📄 leddrive.c

📁 麦迪工作室51开发板LED数码管的驱动代码
💻 C
字号:
#include "ATMEL89X51.H"
#include <intrins.h>
#define LED_SET P2					//点亮哪一位数码管选择端口
//#define LED_OE	P3_6				//使能数据端口输出
#define LED_data P0					//设定P0口为数据输入端口
#define ON 0						//设0为开
#define OFF 1						//设1为关
unsigned play_bit[8] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; //确定哪一位数码管显示
unsigned char seg[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};  //0~~9段码  //0~~9段码

void delay(unsigned char temp)
{	
 	unsigned char i;
    for(i=0;i<temp;i++);
}

void led_disp(unsigned char num,unsigned char vdata,unsigned char on_switch) //显示驱动函数 on_switch = 0 ,开,on_switch = 1,关
{
	LED_SET =  ~play_bit[num-1];		//选定哪一位数码管显示
	if(on_switch)
		LED_data = 0;
	else
		LED_data = vdata;			//送字形码
		delay(200);					//消影
		LED_data =0x0;
	
}


void led_play(long cont)		//十进制数显示驱动函数
{
		int i;
		for(i=0;i<8;i++)
		{	
			switch(i)
			{
				case 0:	led_disp(1,seg[cont%10],0);
					break;
				case 1:	led_disp(2,seg[(cont/10)%10],0);
					break;
				case 2:	led_disp(3,seg[(cont/100)%10],0);
					break;
				case 3:	led_disp(4,seg[(cont/1000)%10],0);
					break;
				case 4:	led_disp(5,seg[(cont/10000)%10],0);
					break;
				case 5:	led_disp(6,seg[(cont/100000)%10],0);
					break;
				default:
					break;
			}
		}
}


main()
{

//	LED_OE = ON;
	while(1)
	{		
	led_play(123456);
	}
}

⌨️ 快捷键说明

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