LED点阵模块
//===========================================================================
// The information contained herein is the exclusive property of // Sunnnorth Technology Co. And shall not be distributed, reproduced, // or disclosed in whole in part without prior written permission. // (C) COPYRIGHT 2003 SUNNORTH TECHNOLOGY CO.
// ALL RIGHTS RESERVED
// The entire notice above must be reproduced on all authorized copies. //===========================================================================
//============================================================================
// 工程名称: ex4_LED_Dots
// 功能描述: 实验指导书》综合实验
// LED点阵模块
// LED显示动态的时钟和移动的小人
// 涉及的库: CMacro1016.lib
// 组成文件: main.c
// system.asm/Resource.asm
// LED_Dots.h/SPCE061A.h
// SPCE061A.inc/Resource.inc
// 硬件连接: B口的低8位接LED的com
// A口的低8位接GREEN,高8位接RED
// 维护纪录: 2002-5-15(建立)
// 2003-6-16(添加版本说明及版权声明)
// 2003-7-16(代码标准化)
// 2005-10-14(代码标准化,加一些注释)
//==============================================================================
//======================================================== // 文件名称: main.c
// 功能描述: 8*8LED点阵显示动态时钟图形
// 维护
: 2005-10-14 v1.0
//======================================================== #include "SPCE061A.h"
#define GREEN 0x00ff
#define RED 0xff00
unsigned char Pattern[15][8]= //时钟图形数据
{
{ 0x1C,0x22, 0x51,0x4F, 0x41,0x22, 0x1C,0x00 },
{ 0x1C,0x2a, 0x49,0x4F, 0x41,0x22, 0x1C,0x00 },
{ 0x1C,0x22, 0x45,0x4F, 0x41,0x22, 0x1C,0x00 },
{ 0x1C,0x22, 0x41,0x4F, 0x41,0x22, 0x1C,0x00 },
{ 0x1C,0x22, 0x41,0x4F, 0x45,0x22, 0x1C,0x00 },
{ 0x1C,0x22, 0x41,0x4F, 0x49,0x2a, 0x1c,0x00 },
{ 0x1C,0x22, 0x41,0x4F, 0x51,0x22, 0x1c,0x00 },
{ 0x1C,0x22, 0x41,0x7F, 0x41,0x22, 0x1C,0x00 },
{ 0x20,0x3C, 0x23,0x61, 0x23,0x3C, 0x20,0x00 },
{ 0x08,0x1C, 0x3E,0x08, 0x08,0x3E, 0x1C,0x08 },
{ 0x78,0x48, 0x4F,0x49, 0x4F,0x48, 0x78,0x00 },
{ 0x78,0x78, 0x4F,0x49, 0x4B,0x78, 0x78,0x00 },
{ 0x7F,0x47, 0x57,0x50, 0x57,0x47, 0x7F,0x00 },
{ 0x7E,0x78, 0x78,0x78, 0x78,0x78, 0x7E,0x00 },
{ 0x3E,0x22, 0x3E,0x00, 0x2E,0x2A, 0x3E,0x00 },
};
//===========================================================================================
//语法
:void ClearWatchdog(void)
//实现功能:清看门狗
//参数: 无
//返回值: 无
//===========================================================================================
void ClearWatchdog()
{
* P_Watchdog_Clear = 0x0001; //清看门狗
}
//============================================================================================
//语法格式:void InitialPort(void)
//实现功能:端口初始化
//参数: 无
//返回值: 无
//============================================================================================
void InitialPort()
{ //Dir, data,attrib
SP_Init_IOB(0xffff,0xffff,0xffff); //初始化B口为同相的高电平输出
SP_Init_IOA(0xffff,0xffff,0); //B Positive,A Negtive.
//初始化 A口为反相的低电
平输出
}
//=====================================================================
=======================
//语法格式:void delay(char n)
//实现功能:延时子程序
//参数: char n-延时控制
//返回值: 无
//=====================================================================
=======================
void delay(char n)
{
int i,j ;
for(i=0;i
> 1;
if(Reload == 0)
{
Reload = 0x0001;
state = 2;
}
break;
case 2: //状态2,图形向左溢出
屏幕
l++;
Reload = 1;
if(l==8)
{
state = 0;
l = 0;
}
break;
}
for(k=0;k<8;k++)
{
SelCol = Reload;
ClearWatchdog(); //清看门狗
for(i = l;i<8;i++)
{
SP_Export(P_IOA_Data,SelCol);
SP_Export(P_IOB_Data,ManIcon[i]); //显示图形
delay(1);
SelCol = SelCol<<1; //列左移一位
}
}
}
}
//=====================================================================
========================== // 语法格式: int main(void)
// 实现功能: 主函数
// 参数: 无
// 返回值: 无
//=====================================================================
=======================
int main(void)
{
int i;
InitialPort(); //初始化I/O口
TestLed(); //测试LED程序
while(1)
{
WalkMan(); //移动的图标
Clock(); //动态 时钟
}
}