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

📄 led_matrix.c

📁 1. LED点阵依次显示绿色
💻 C
字号:
/*============================================================
File Name :LED_MATRIX.c
说明 :
1. LED点阵依次显示绿色,红色,橙色
=============================================================*/
#include <avr/io.h>

#define PPI_0_PA (unsigned char *)0x5000;    // line的外部存储器地址
#define PPI_0_PB (unsigned char *)0x5001;    // 绿色的外部存储器地址
#define PPI_0_PC (unsigned char *)0x5002;    // 红色的外部存储器地址
#define PPI_0_CT (unsigned char *)0x5003;    // 82C55的控制端外部存储器地址

unsigned char *line,*green,*red,*ppi_ctrl;

void initialize_ppi(void);
void delay(int d1,int d2);
void martix_out(char green1,char red1);

int main(void)
{
     MCUCR|=(1<<SRE);
	 initialize_ppi();
	 do{
	     martix_out(0xff,0x00);          // green on
	     martix_out(0x00,0xff);          // red on
	     martix_out(0xff,0xff);          // green, red on=orange
	     }while(1);
 }
	 
void martix_out(char green1,char red1)
{
     unsigned char i=0,j=0;
	 
	 for(j=0;j<200;j++)
	 {
	     *green=green1;
	     *red=red1;
	     for(i=0;i<8;i++)
		 {
		   *line=(0x01<<i);
		   delay(50,50);
		 }
	  }
}
	 
void delay(int d1,int d2)
{
     int i,j;
     for(i=0;i<d1;i++)
	    {
         for(j=0;j<d2;j++);
        }
  }

void initialize_ppi(void)
{
     line=PPI_0_PA;                          // 分配LED点阵line的物理地址
     green=PPI_0_PB;                         // 分配LED点阵绿色的物理地址
     red=PPI_0_PC;                           // 分配LED点阵红色的物理地址
     ppi_ctrl=PPI_0_CT;                       // 分配82C55的控制端物理地址
     *ppi_ctrl=0x80;                          // 82C55 A, B 都是输出
 }	

⌨️ 快捷键说明

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