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

📄 display.c

📁 使用AVR单片机做的单相电表项目,采用取最大值的办法计算有效值,算法比较简单,有protel99的原理图.
💻 C
字号:

/*
* Copyright (c) 2005, 广州力源电器公司开发部
* All rights reserved.
* 文件名称:display.c  负责驱动LED发光管以显示数据

* 当前版本: 1.0
* 作者:	 张洪强
* 完成日期: 2005.7.25
*/

#include <avr/io.h>
#include "init.h"

unsigned char LED[13] = 
{ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0x88,0xc1 };
	  		   			  						//{0123456789 AV} LED段码表
												
void delay_1ms(void)
{
 	unsigned int i;
	for ( i = 0;i < 1422;i++ );					//3.6864M频率时循环数525
}

void delayMS(unsigned char count)
{
 	unsigned char i;
	for ( i = 0;i < count;i++ )
	{
	 	delay_1ms();
	}
}
												
void display(unsigned char DISP_DATA[4],unsigned char DOT)
{	
	unsigned char i;
	for( i = 0;i < 4; i++ )					//4位LED循环
	{
	  	PORTD = LED[DISP_DATA[i]]; 			//取出显示区数据
		if ( DOT == i )						//显示小数点
		{
			PORTD &= 0x7f;
		}
	 	PORTC = ~( 1 << (i+2) ); 				//开显示位
		delayMS(10);							//延时2MS
		//PORTC = 0x3C;						    //关显示
		PORTD = 0xFF;						    //关显示
	}
}

⌨️ 快捷键说明

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