dianzhen.c

来自「基于ARM7的S3C44B0的基础测试实验:点阵显示驱动实验.」· C语言 代码 · 共 50 行

C
50
字号
#include "..\inc\option.h"
#include "..\inc\44b.h"
#include "..\inc\def.h"

void Sendata(U32 data);
/****************************************************************************
【功能说明】显示函数                 
******************************************************************************/
void  Displayled(U16 hanzi[16])
{
   int i,j;
   U32 hanglie;


   static U32 line[16]={0x8000,0x4000,0x2000,0x1000,0x0800,0x0400,0x0200,0x0100,
                                0x0080,0x0040,0x0020,0x0010,0x0008,0x0004,0x0002,0x0001};   //行值高有效
       for(j=0;j<5;j++)              //每个字扫描次数,决定了这个字在屏幕上停留的时间
             {
                  for(i=0;i<16;i++)   
                           {
		      U16 UI = hanzi[i];
                              hanglie = ((line[i]<<16) | (0x0000ffff & ~UI)); //行列值组合
                              Sendata(hanglie);
                          }
             }
}

/****************************************************************************
【功能说明】发送数据函数                 
******************************************************************************/
void Sendata( U32 data)
{
int i,j;
	U32 m;    	
	for(i=0;i<32;i++)                                                     //行列值
		{
		m=data & (1 << i);
		rPDATA=rPDATA & 0x3fe | ((m >> i)<<0);          //   Data GPA0	送数	                 
		rPDATA=rPDATA | (1 << 2);                              //   Shift-clk GPA2=1              
		rPDATA=rPDATA & 0x3fb;                              //  Shift-clk GPA2=0	
	
				if(i==31)
				{
				rPDATA=rPDATA | (1 << 1);            //   Storage-clk GPA1=1
				rPDATA=rPDATA & 0x3fd;             //  Storage-clk GPA1=0
				}
		
				for(j=0;j<100;j++);
		}
	}

⌨️ 快捷键说明

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