DSP课设项目(ICETEK-VC5509-EDU)
想要更多项目私wo!!!
一、简介
本实验的硬件设施使用的是ICETEK-VC5509-EDU实验箱,应用到的有拨码开关控制模块、LED模块、键盘模块、秒表和定时器。
二、运行效果
首先按下拨盘No开机进入主界面:
图1.1 拨盘开关
图1.2 主界面
作品实现的功能有以下几个:
一、万年历;
第一页显示年-月-日、时:分;
二、动画播放;
按到动画图标,点击Enter,进入动画播放; 按Num返回。
图 1.3 动画播放
三、计算器;
按到计算图标,点击Enter,进入计算器。
进入计算器界面后就可以实现两位数的加、减。
按 * 代表清零,按Enter代表等于, 按Num返回。
图 1.4 计算器
四、信息介绍;
按到我的图标,点击Enter,进入我的信息; 按Num返回。
五、退出
按到退出按键就关机。
三、部分代码
#define LCDDELAY 1
#include "myapp.h"
#include "scancode.h"
/*想要更多项目私wo!!!*/
#include "scancode.h"
#define PI 3.1415926
#define PI2 6.2831852
// emif --------------------------------------------------------
/*
#define EMIF_GCTL 0x01800000
#define EMIF_CE1 0x01800004
#define EMIF_CE0 0x01800008
#define EMIF_CE2 0x01800010
#define EMIF_CE3 0x01800014
#define EMIF_SDRAMCTL 0x01800018
#define EMIF_SDRAMTIM 0x0180001C
#define EMIF_SDRAMEXT 0x01800020
#define EMIF_CCFG 0x01840000;
*/
// interrupt --------------------------------------------------
/*
#define IMH (*(unsigned int *)0x19c0000)
#define IML (*(unsigned int *)0x19c0004)
*/
// timer -------------------------------------------------------
/*
#define TIMER1CTL (*(unsigned int *)0x01980000)
#define TIMER1PRD (*(unsigned int *)0x01980004)
*/
// AD ----------------------------------------------------------
ioport unsigned int *ADCCTL1=(unsigned int *)0x6800;
ioport unsigned int *ADCDATA1=(unsigned int *)0x6801;
ioport unsigned int *ADCCLKDIV1=(unsigned int *)0x6802;
ioport unsigned int *ADCCLKCTL1=(unsigned int *)0x6803;
#define ADCCTL (*ADCCTL1)
#define ADCDATA (*ADCDATA1)
#define ADCCLKDIV (*ADCCLKDIV1)
#define ADCCLKCTL (*ADCCLKCTL1)
// DA ----------------------------------------------------------
#define DA_DATA_L (*((unsigned int *)0x400800))
#define DA_DATA_H (*((unsigned int *)0x400801))
#define DA_CTL (*((unsigned int *)0x400802))
#define DA_CHN1 0x0
#define DA_CHN2 0x40
#define DA_CHN3 0x80
#define DA_CHN4 0xc0
// McBSP0 ------------------------------------------------------
#define SPCR0 (*(unsigned int *)0x018c0008)
#define PCR0 (*(unsigned int *)0x018c0024)
#define SPCR01 (*(unsigned int *)0x01900008)
#define SPCR02 (*(unsigned int *)0x0)
// McBSP1 ------------------------------------------------------
ioport unsigned int *SPCR21=(unsigned int *)0x2c04;
ioport unsigned int *PCR_1=(unsigned int *)0x2c12;
#define SPCR2_1 (*SPCR21)
#define PCR1 (*PCR_1)
// McBSP2 ------------------------------------------------------
ioport unsigned int *SPCR12=(unsigned int *)0x3005;
ioport unsigned int *PCR_2=(unsigned int *)0x3012;
#define SPCR1_2 (*SPCR12)
#define PCR2 (*PCR_2)
// ICETEK-VC5509-A -----------------------------------------------
#define SPEED144MHz 0x2613
#define LBDS (*((unsigned int *)0x400001))
#define DIPS (*(unsigned int *)0x400002)
#define CREG (*(unsigned short int *)0x400004)
// ICETEK-CTR --------------------------------------------------
#define CTRGR (*(unsigned int *)0x600800)
#define CTRKEY (*(unsigned int *)0x602800)
#define CTRCLKEY (*(unsigned int *)0x600801)
#define CTRMOTORBSPEED (*(unsigned int *)0x602801)
#define CTRLA (*(unsigned int *)0x602802)
#define CTRLR (*(unsigned int *)0x602803)
#define CTRLCDCMDR (*(unsigned int *)0x602800)
#define CTRLCDCR (*(unsigned int *)0x600801)
#define CTRLCDLCR (*(unsigned int *)0x602801)
#define CTRLCDRCR (*(unsigned int *)0x600802)
// Special values -----------------------------------------------
#define LCDCMDTURNON 0x3f
#define LCDCMDTURNOFF 0x3e
#define LCDCMDSTARTLINE 0xc0
#define LCDCMDPAGE 0xb8
#define LCDCMDVERADDRESS 0x40
/*想要更多项目私wo!!!*/
unsigned int nCount,nCursorCount,cKey;
unsigned int year=2017,month=12,day=1,n;
unsigned char hour=15,minute=25,second=25,a,b,dis[16];
unsigned int fanwei1=0,fanwei2=0,huifu=0;
unsigned int dbScanCode,t=0;
unsigned int shu_1[2]={0,0};
unsigned int shu_2[2]={0,0};
// Variables
unsigned char ledbuf[8],ledx[8];
unsigned char ledkey[16][8]=
{
{0x00,0x00,0x7C,0x82,0x82,0x82,0x7C,0x00}, //0
{0x00,0x00,0x00,0x84,0xFE,0x80,0x00,0x00}, //1
{0x00,0x00,0x84,0xC2,0xA2,0x92,0x8C,0x00}, //2
{0x00,0x00,0x44,0x92,0x92,0x92,0x6C,0x00}, //3
{0x00,0x00,0x30,0x28,0x24,0xFE,0x20,0x00}, //4
{0x00,0x00,0x4E,0x92,0x92,0x92,0x62,0x00}, //5
{0x00,0x00,0x7C,0x92,0x92,0x92,0x64,0x00}, //6
{0x00,0x00,0x02,0xC2,0x32,0x0A,0x06,0x00}, //7
{0x00,0x00,0x6C,0x92,0x92,0x92,0x6C,0x00}, //8
{0x00,0x00,0x4C,0x92,0x92,0x92,0x7C,0x00}, //9
{0x00,0x18,0x18,0x18,0x18,0x18,0x18,0x00}, //-
{0x00,0x00,0x00,0x66,0x66,0x00,0x00,0x00}, //:
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, //空白
{0x00,0x08,0x08,0x08,0x7F,0x08,0x08,0x08}, //+
{0x00,0x24,0x24,0x24,0x24,0x24,0x24,0x00}, //=
{0x00,0x2A,0x14,0x7E,0x14,0x2A,0x00,0x00}, //*
};
#define nMusicNumber 52
unsigned int music[nMusicNumber][2]=
{
{101,1920},{121,1440},{114,480},{101,1920},{151,1920},
{151,480},{135,480},{121,480},{101,480},{114,960},{121,960},{135,3840},
{121,480},{114,480},{101,480},{91,480},{101,960},{101,960},
{76,1920},{101,1920},{114,960},{121,960},{135,1440},{151,480},{151,1920},{0,1920},
{101,1920},{121,1440},{114,480},{101,1920},{151,1920},
{151,480},{135,480},{121,480},{101,480},{114,960},{121,960},{135,3840},
{121,480},{114,480},{101,480},{91,480},{101,960},{101,960},
{76,1920},{101,1920},{114,960},{121,960},{135,1440},{151,480},{151,1920},{0,1920}
};
unsigned int pwm[8]={ 0x86,0x87,0x83,0x8b,0x89,0x8d,0x8c,0x8e };
unsigned char dbClearKey;
// Functions
void InitInterrupt(void); // 初始化中断
void InitCTR(); // 初始化ICETEK-CTR
void CloseCTR(); // 关闭ICETEK-CTR上各设备
void Delay(unsigned int nTime); // 延时子程序
void Delay1(unsigned int nTime); // 延时子程序(带LED显示刷新)
unsigned char GetKey(); // 读取键盘输入
void RefreshLEDArray(); // 刷新发光二极管阵列显示
void SetLEDArray(int nNumber); // 修改发光二极管阵列显示内容
char ConvertScanToChar(unsigned char cScanCode); // 将键盘扫描码转换成字符
void LCDCMD(unsigned char dbCommand); // 向液晶显示器发送命令
void LCDWriteLeft(unsigned char dbData); // 写液晶显示器左半屏
void LCDCLS(); // 清除液晶显示器显示
void TurnOnLCD(); // 打开液晶显示器
void startset();
void start();
void TIMER_init();
void CloseCTR()
{
CTRGR=0;
CTRLR=0; CTRLR=0x40;
CTRLR=0x0c0;
LCDCMD(LCDCMDTURNOFF);
dbClearKey=CTRCLKEY;
LBDS=0;
}
void LCDCMD(unsigned char dbCommand)
{
CTRLCDCMDR=dbCommand;
CTRLCDCR=0;
}
unsigned char GetKey()
{
unsigned int dbReturn;
dbReturn= CTRKEY;
dbClearKey=CTRCLKEY;
Delay(130);
dbClearKey=CTRCLKEY;
Delay(130);
dbClearKey=CTRCLKEY;
Delay(130);
dbClearKey=CTRCLKEY;
Delay(130);
return dbReturn;
}
char ConvertScanToChar(unsigned char cScanCode)
{
char cReturn;
cReturn=0;
switch ( cScanCode )
{
case SCANCODE_0: cReturn='0'; break;
case SCANCODE_1: cReturn='1'; break;
case SCANCODE_2: cReturn='2'; break;
case SCANCODE_3: cReturn='3'; break;
case SCANCODE_4: cReturn='4'; break;
case SCANCODE_5: cReturn='5'; break;
case SCANCODE_6: cReturn='6'; break;
case SCANCODE_7: cReturn='7'; break;
case SCANCODE_8: cReturn='8'; break;
case SCANCODE_9: cReturn='9'; break;
case SCANCODE_Plus: cReturn='+'; break;
case SCANCODE_Minus: cReturn='-'; break;
case SCANCODE_Enter: cReturn=10; break;
}
return cReturn;
}
void InitCTR()
{
CTRGR=0; CTRGR=0x80; CTRGR=0;
CTRLR=0; CTRLR=0x40;
CTRLR=0x0c0;
LCDCMD(LCDCMDTURNOFF);
dbClearKey=CTRCLKEY;
LBDS=0;
}
void Delay(unsigned int nDelay)
{
int ii,jj,kk=0;
for ( ii=0;ii<nDelay;ii++ )
{
for ( jj=0;jj<256;jj++ )
{
kk++;
}
}
}
void Delay1(unsigned int nDelay)
{
int ii,jj,kk=0;
for ( ii=0;ii<nDelay;ii++ )
{
for ( jj=0;jj<64;jj++ )
{
RefreshLEDArray();
kk++;
}
}
}
void RefreshLEDArray()
{
int i;
for ( i=0;i<8;i++ )
{
CTRGR=ledx[i];
CTRLA=ledbuf[i];
}
}
void SetLEDArray(int nNumber)
{
int i;
for ( i=0;i<8;i++ )
ledbuf[i]=~ledkey[nNumber][7-i];
}
void LCDWriteLeft(unsigned char dbData)
{
CTRLCDLCR=dbData;
CTRLCDCR=0;
}
void LCDWriteRight(unsigned char dbData)
{
CTRLCDRCR=dbData;
CTRLCDCR=0;
}
void TurnOnLCD()
{
LCDCMD(LCDCMDTURNON);
}
void LCDCLS1()
{
int i,j;
LCDCMD(LCDCMDSTARTLINE);
for ( i=0;i<8;i++ )
{
LCDCMD(LCDCMDPAGE+i);
LCDCMD(LCDCMDVERADDRESS);
for ( j=0;j<64;j++ )
LCDWriteLeft(0);
LCDCMD(LCDCMDPAGE+i);
LCDCMD(LCDCMDVERADDRESS);
for ( j=0;j<64;j++ )
LCDWriteRight(0);
}
}
/
”欢迎使用“开机动画///
unsigned char huanying[32][16]=
{
{0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xC0,0xE0,0x40,0x00,0x00},
{0x00,0xC0,0xFC,0x38,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x04,0x18,0x30,0x60,0xC0,0x00,0xE0,0x7C,0x1F,0x01,0x00,0x80,0x60},
{0x1C,0x07,0x03,0x02,0xF2,0xF2,0x12,0x02,0x02,0x22,0x1A,0x0E,0x07,0x06,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0xC0,0x70,0x1D,0x0F,0x0F,0x3C,0xF8,0xE0,0x80,0x00,0x00},
{0x00,0x80,0xE0,0x3E,0x0F,0x01,0x1E,0xF0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x08,0x04,0x02,0x01,0x00,0x00,0x00,0x00,0x40,0x40,0x20,0x23,0x11,0x08,0x0C},
{0x06,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x0E,0x1C,0x38,0x30,0x10,0x00,0x00},/*"欢",0*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x7C,0x18,0x08,0x80,0x80,0x80,0x80},
{0x80,0x80,0x80,0x80,0xFC,0x88,0x80,0x80,0x80,0x80,0x80,0x80,0xC0,0x80,0x00,0x00},
{0x00,0x00,0x00,0x80,0x40,0x30,0x1C,0xFF,0xF9,0x08,0x00,0x00,0x00,0xFC,0xF8,0x08},
{0x08,0x08,0x08,0x08,0xFF,0x08,0x08,0x08,0x08,0x08,0xFC,0x08,0x00,0x00,0x00,0x00},
{0x00,0x00,0x02,0x01,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x0F,0x07,0x22},
{0xC2,0x02,0x02,0xFE,0x7F,0x02,0x02,0x02,0x02,0x02,0x07,0x07,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x3F,0x00,0x80,0x40,0x40,0x20,0x20,0x10},
{0x18,0x0F,0x07,0x0F,0x0C,0x18,0x10,0x30,0x30,0x60,0x60,0x60,0x60,0x20,0x20,0x00},/*"使",2*/
{0x00,0x00,0x00,0x00,0x04,0x18,0x78,0xF0,0x60,0x00,0x00,0x00,0xC0,0xC0,0x40,0x20},
{0x30,0x10,0x18,0x18,0xD0,0xC0,0x80,0x80,0x80,0x80,0x40,0xE0,0xC0,0x00,0x00,0x00},
{0x00,0x10,0x10,0x10,0x10,0x10,0xF0,0xF8,0x10,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00},
{0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x10,0x3F,0x3F,0x18,0x08},
{0x0C,0x04,0x04,0x00,0xFF,0xFF,0x00,0x10,0x20,0x20,0x70,0x3F,0x00,0x00,0x00,0x00},
{0x00,0x04,0x0E,0x06,0x03,0x01,0x01,0x01,0x03,0x06,0x04,0x0C,0x08,0x18,0x18,0x18},
{0x10,0x10,0x10,0x10,0x33,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x18,0x08,0x08,0x00},/*"迎",1*/
{0x00,0x00,0x00,0x00,0x00,0x04,0xF8,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0xF0},
{0xF0,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0xF8,0xF8,0x10,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0xFF},
{0xFF,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0xFC,0x7F,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0xFF},
{0xFF,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00},
{0x00,0x40,0x20,0x18,0x0E,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F},
{0x3F,0x00,0x00,0x00,0x10,0x10,0x10,0x30,0x70,0x7F,0x3F,0x00,0x00,0x00,0x00,0x00},/*"用",0*/
};
//界面显示/
unsigned char index[16][16]=
{
{0x20,0x24,0x24,0xE4,0x24,0x24,0x24,0x20,0x10,0x10,0xFF,0x10,0x10,0xF0,0x00,0x00},
{0x08,0x1C,0x0B,0x08,0x0C,0x05,0x4E,0x24,0x10,0x0C,0x03,0x20,0x40,0x3F,0x00,0x00},/*"动",0*/
{0x02,0xF2,0x02,0x02,0xFA,0x4A,0x4A,0xFA,0x4A,0x4A,0xFA,0x02,0x02,0xF2,0x02,0x00},
{0x00,0x7F,0x20,0x20,0x2F,0x24,0x24,0x27,0x24,0x24,0x2F,0x20,0x20,0x7F,0x00,0x00},/*"画",1*/
{0x20,0x21,0x2E,0xE4,0x00,0x00,0x20,0x20,0x20,0x20,0xFF,0x20,0x20,0x20,0x20,0x00},
{0x00,0x00,0x00,0x7F,0x20,0x10,0x08,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00},/*"计",0*/
{0x08,0x07,0xFA,0xAA,0xAE,0xAA,0xAA,0xA8,0xAC,0xAB,0xAA,0xFE,0x0A,0x02,0x02,0x00},
{0x08,0x08,0x8B,0x6A,0x1E,0x0A,0x0A,0x0A,0x0A,0xFE,0x0A,0x0B,0x08,0x08,0x08,0x00},/*"算",1*/
{0x20,0x20,0x22,0x22,0xFE,0x21,0x21,0x20,0x20,0xFF,0x20,0x22,0xAC,0x20,0x20,0x00},
{0x04,0x04,0x42,0x82,0x7F,0x01,0x01,0x10,0x10,0x08,0x07,0x1A,0x21,0x40,0xF0,0x00},/*"我",0*/
{0x00,0xF8,0x8C,0x8B,0x88,0xF8,0x40,0x30,0x8F,0x08,0x08,0x08,0x08,0xF8,0x00,0x00},
{0x00,0x7F,0x10,0x10,0x10,0x3F,0x00,0x00,0x00,0x03,0x26,0x40,0x20,0x1F,0x00,0x00},/*"的",1*/
{0x40,0x41,0xC6,0x00,0x00,0xFE,0x4A,0x4A,0xCA,0x4A,0x4A,0x7E,0x80,0x00,0x00,0x00},
{0x40,0x20,0x1F,0x20,0x40,0x5F,0x48,0x44,0x40,0x41,0x42,0x4D,0x58,0x40,0x40,0x00},/*"退",0*/
{0x00,0x00,0xFC,0x40,0x40,0x40,0x40,0xFF,0x40,0x40,0x40,0x40,0x40,0xFC,0x00,0x00},
{0x00,0x00,0x7E,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x7E,0x00,0x00},/*"出",1*/
};
二维码/
unsigned char xinxi[16][16]=
{
{0x7F,0x41,0x5D,0x5D,0x5D,0x41,0x7F,0x00,0x4C,0x22,0xEC,0x26,0xF8,0xB0,0xF3,0x83},///我的信息
{0xCF,0x8B,0xDA,0x97,0xD1,0x00,0x7F,0x41,0x5D,0x5D,0x5D,0x41,0x7F,0x00,0x00,0x00},
{0x40,0x2A,0x38,0xBB,0x95,0x6C,0x55,0x4D,0xAC,0xF2,0xE8,0x90,0x91,0x66,0x54,0x54},
{0xAC,0xF6,0x8A,0xCD,0xAC,0x5A,0xB4,0x1A,0x2A,0xD3,0xA1,0x92,0x68,0x00,0x00,0x00},
{0xDF,0x5E,0x4B,0x4C,0x5D,0x4F,0xD5,0x0D,0x6C,0xC7,0xFA,0x93,0x5B,0xD6,0x49,0x95},
{0xAD,0xD5,0x96,0xFC,0xF1,0x18,0x5A,0x14,0xFA,0xB3,0x6A,0x09,0x14,0x00,0x00,0x00},
{0x1F,0x10,0x17,0x17,0x17,0x10,0x1F,0x00,0x03,0x1A,0x18,0x12,0x15,0x18,0x04,0x14},
{0x1D,0x1A,0x0E,0x1D,0x1B,0x1B,0x01,0x13,0x1D,0x08,0x08,0x06,0x0C,0x00,0x00,0x00},
{0xC0,0x60,0x30,0x18,0x0C,0x04,0x04,0x04,0x74,0x14,0x14,0x04,0x84,0x84,0x84,0x84},///提示图片
{0x04,0x14,0x14,0x74,0x04,0x04,0x04,0x04,0x04,0x04,0x0C,0x18,0x30,0x60,0xC0,0x00},
{0xFF,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x80,0x80,0x00,0x10,0x10,0x10,0x10},
{0x00,0x80,0x80,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xFF,0x00},
{0x00,0x01,0x03,0x86,0x84,0x84,0x04,0x04,0x04,0x04,0x84,0x04,0x04,0x04,0x84,0x84},
{0x84,0x04,0x04,0x04,0x04,0x84,0x04,0x08,0x90,0xA4,0xBC,0x06,0x03,0x01,0x00,0x00},
{0x00,0x00,0x08,0x2A,0x7F,0x0A,0x08,0x00,0x10,0x0A,0x7F,0x0A,0x10,0x40,0x3F,0x00},
{0x3F,0x40,0x60,0x00,0x12,0x7F,0x0A,0x00,0x40,0x44,0x44,0x3F,0x00,0x00,0x00,0x00},
};
//计算器界面//
unsigned char jisuanqi[14][16]=
{
{0x20,0x21,0x2E,0xE4,0x00,0x00,0x20,0x20,0x20,0x20,0xFF,0x20,0x20,0x20,0x20,0x00},
{0x00,0x00,0x00,0x7F,0x20,0x10,0x08,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00},/*"计",0*/
{0x08,0x07,0xFA,0xAA,0xAE,0xAA,0xAA,0xA8,0xAC,0xAB,0xAA,0xFE,0x0A,0x02,0x02,0x00},
{0x08,0x08,0x8B,0x6A,0x1E,0x0A,0x0A,0x0A,0x0A,0xFE,0x0A,0x0B,0x08,0x08,0x08,0x00},/*"算",1*/
{0x40,0x40,0x4F,0x49,0x49,0xC9,0xCF,0x70,0xC0,0xCF,0x49,0x59,0x69,0x4F,0x00,0x00},
{0x02,0x02,0x7E,0x45,0x45,0x44,0x7C,0x00,0x7C,0x44,0x45,0x45,0x7E,0x06,0x02,0x00},/*"器",2*/
{0x10,0x61,0x06,0xE0,0x18,0x20,0xAA,0xAA,0xAA,0xBF,0xAA,0xAA,0xAA,0x2A,0x00,0x00},
{0x04,0x04,0xFF,0x00,0x00,0x00,0xFF,0x0A,0x0A,0x0A,0x4A,0x8A,0x7F,0x00,0x00,0x00},/*"清",2*/
{0x00,0x0C,0x04,0x55,0x55,0x55,0x85,0x7F,0x85,0x55,0x55,0x55,0x05,0x0C,0x04,0x00},
{0x04,0x04,0x04,0x0A,0x0A,0x09,0x2A,0xCC,0x28,0x19,0x09,0x02,0x06,0x02,0x02,0x00},/*"零",3*/
{0x00,0x84,0xE4,0x5C,0x44,0xC4,0x10,0xF8,0x97,0x92,0xF2,0x9A,0x96,0xF2,0x00,0x00},
{0x01,0x00,0x3F,0x08,0x88,0x4F,0x30,0x0F,0x04,0x04,0x3F,0x44,0x84,0x7F,0x00,0x00},/*"确",0*/
{0x40,0x41,0x42,0xCC,0x04,0x00,0x00,0x00,0x80,0x7F,0x80,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x7F,0x20,0x90,0x60,0x18,0x07,0x00,0x03,0x0C,0x30,0xC0,0x40,0x00},/*"认",1*/
};
//动画片 开始/
unsigned char cartoon_1[8][16]=
{
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xE0,0xE0},
{0xE0,0xE0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0x60,0x60,0xA3,0xF7,0xFF},
{0xC7,0x07,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x83,0xC0,0xE0,0x7C,0x0F,0x3B,0xF0},
{0xC3,0x03,0x06,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x05,0x07,0x04,0x04,0x04,0x04,0x04,0x04},
{0x05,0x07,0x06,0x05,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04},/*"未命名文件",0*/
};
unsigned char cartoon_2[8][16]=
{
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xE0,0xE0},
{0xE0,0xE0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xE0,0x20,0xA3,0xF7,0xFF},
{0xC7,0x07,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x80,0x78,0x1F,0x3F,0xF0},
{0x03,0x03,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x07,0x05,0x04,0x04,0x06,0x07,0x06},
{0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04},
};
unsigned char cartoon_3[8][16]=
{
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xE0,0xE0},
{0xE0,0xE0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0x20,0x93,0xF7,0xFF},
{0x87,0x07,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x41,0xFF,0x3F,0x14},
{0x09,0x03,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x05,0x07,0x06,0x04},
{0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04},
};
unsigned char cartoon_4[8][16]=
{
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xE0,0xE0},
{0xE0,0xE0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x40,0x20,0x23,0xE7,0xFF},
{0x87,0x07,0x03,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x00,0x3F,0xFF,0x10},
{0x31,0xE3,0x42,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x07,0x05,0x04,0x04},
{0x04,0x05,0x05,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04},
};
unsigned char cartoon_5[8][16]=
{
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xE0,0xE0},
{0xE0,0xE0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0x43,0xE7,0xFF},
{0x87,0x07,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x86,0x83,0xC1,0x60,0x3F,0x1F,0x10},
{0x31,0x63,0xC2,0x01,0x81,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x07,0x05,0x04,0x04,0x04,0x04,0x04,0x04},
{0x04,0x04,0x05,0x05,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04},
};
//动画片 结束/
///动画、计算器、,我的、退出图标//
unsigned char zon_image[8][16]=
{
{0xF0,0x18,0x0C,0x06,0x02,0xF2,0xF2,0xE2,0xC2,0x82,0x02,0x06,0x0C,0x18,0xF0,0x00},
{0x0F,0x18,0x30,0x60,0x40,0x4F,0x4F,0x47,0x43,0x41,0x40,0x60,0x30,0x18,0x0F,0x00},
{0x00,0x00,0xFF,0x21,0xAD,0xA1,0x2D,0xA1,0xAD,0x21,0xAD,0xA1,0x21,0xFF,0x00,0x00},
{0x00,0x00,0xFF,0x80,0xED,0xED,0x80,0xED,0xED,0x80,0xED,0xED,0x80,0xFF,0x00,0x00},
{0x00,0x00,0x00,0x38,0xA6,0x43,0x9B,0x23,0x0F,0x83,0x4E,0x4A,0x2A,0x12,0x00,0x00},
{0x00,0x00,0x9E,0xD1,0xF6,0xF8,0x3B,0x3A,0x3A,0x38,0xFB,0xF7,0xD1,0x9E,0x00,0x00},
{0x00,0x04,0x0C,0x18,0x30,0x60,0xC0,0x80,0xC0,0x60,0x30,0x18,0x0C,0x04,0x00,0x00},
{0x00,0x20,0x30,0x18,0x0C,0x06,0x03,0x01,0x03,0x06,0x0C,0x18,0x30,0x20,0x00,0x00},
};
void wel_use()
{
int i,zuo=0,you=16,ye=0,hang=0;
CTRLCDCMDR=LCDCMDSTARTLINE; // 设置显示起始行
Delay(LCDDELAY);
CTRLCDCR=0;
Delay(LCDDELAY);
for (;;)
{
CTRLCDCMDR=0xb8+ye; // 设置操作页=0
Delay(LCDDELAY);
CTRLCDCR=0;
Delay(LCDDELAY);
CTRLCDCMDR=0x40+16*2+hang*16; // 起始列=4
Delay(LCDDELAY);
CTRLCDCR=0;
Delay(LCDDELAY);
for ( i=0;i<16;i++ )
{
CTRLCDLCR=huanying[zuo][i]; // 显示 欢 使
Delay(LCDDELAY);
CTRLCDCR=0;
Delay(LCDDELAY);
}
CTRLCDCMDR=0xb8+ye; // 设置操作页=0
Delay(LCDDELAY);
CTRLCDCR=0;
Delay(LCDDELAY);
CTRLCDCMDR=0x40+hang*16; // 起始列=0
Delay(LCDDELAY);
CTRLCDCR=0;
Delay(LCDDELAY);
for ( i=0;i<16;i++ )
{
CTRLCDRCR=huanying[you][i]; // 显示 迎 用
Delay(LCDDELAY);
CTRLCDCR=0;
Delay(LCDDELAY);
}
zuo++;you++;
hang++;
if(hang==2) //第一页字符写完,换页,一共8页
{
hang=0;
ye++;
if(ye==8)
{
ye=0;
break;
}
}
if(zuo==16) zuo=0;
if(you==32) you=16;
}
}
void set(int i,int j)
{
CTRLCDCMDR=LCDCMDPAGE+i; // 设置操作页=i
Delay(LCDDELAY);
CTRLCDCR=0;
Delay(LCDDELAY);
CTRLCDCMDR=LCDCMDVERADDRESS+j*8; // 起始列=j*8
Delay(LCDDELAY);
CTRLCDCR=0;
Delay(LCDDELAY);
}
void printL(unsigned char hang,unsigned int q)//时间显示数组
{
int i;
if(q==0)
{
for ( i=0;i<8;i++ )
{
CTRLCDLCR=ledkey[hang][i]; // 屏幕左侧第1至8行第i列赋值 只用8列 port8002=0; // (赋值后当前操作列自动加1,Y地址计数器自动加1,所以不需设置) 仅显示左上角的8*8
Delay(LCDDELAY);
CTRLCDCR=0;
Delay(LCDDELAY);
}
}
else
{
for ( i=0;i<8;i++ )
{
CTRLCDLCR=~ledkey[hang][i]; // 屏幕左侧第1至8行第i列赋值 只用8列 port8002=0; // (赋值后当前操作列自动加1,Y地址计数器自动加1,所以不需设置) 仅显示左上角的8*8
Delay(LCDDELAY);
CTRLCDCR=0;
Delay(LCDDELAY);
}
}
}
void printR(unsigned char hang,unsigned int q)//时间显示数组
{
int i;
if(q==0)
{
for ( i=0;i<8;i++ )
{
CTRLCDRCR=ledkey[hang][i]; // 屏幕左侧第1至8行第i列赋值 只用8列 port8002=0; // (赋值后当前操作列自动加1,Y地址计数器自动加1,所以不需设置) 仅显示左上角的8*8
Delay(LCDDELAY);
CTRLCDCR=0;
Delay(LCDDELAY);
}
}
else
{
for ( i=0;i<8;i++ )
{
CTRLCDRCR=~ledkey[hang][i]; // 屏幕左侧第1至8行第i列赋值 只用8列 port8002=0; // (赋值后当前操作列自动加1,Y地址计数器自动加1,所以不需设置) 仅显示左上角的8*8
Delay(LCDDELAY);
CTRLCDCR=0;
Delay(LCDDELAY);
}
}
}
void printL1(unsigned char hang,unsigned int q)//显示首页数组
{
int i;
if(q==0)
{
for ( i=0;i<16;i++ )
{
CTRLCDLCR=index[hang][i];
Delay(LCDDELAY);
CTRLCDCR=0;
Delay(LCDDELAY);
}
}
else
{
for ( i=0;i<16;i++ )
{
CTRLCDLCR=~index[hang][i];
Delay(LCDDELAY);
CTRLCDCR=0;
Delay(LCDDELAY);
}
}
}
void printR1(unsigned char hang,unsigned int q)//显示首页数组
{
int i;
if(q==0)
{
for ( i=0;i<16;i++ )
{
CTRLCDRCR=index[hang][i];
Delay(LCDDELAY);
CTRLCDCR=0;
Delay(LCDDELAY);
}
}
else
{
for ( i=0;i<16;i++ )
{
CTRLCDRCR=~index[hang][i];
Delay(LCDDELAY);
CTRLCDCR=0;
Delay(LCDDELAY);
}
}
}
void printL2(unsigned char hang) //显示二维码数组
{
int i;
for ( i=0;i<16;i++ )
{
CTRLCDLCR=xinxi[hang][i];
Delay(LCDDELAY);
CTRLCDCR=0;
Delay(LCDDELAY);
}
}
void printR2(unsigned char hang)//显示二维码数组
{
int i;
for ( i=0;i<16;i++ )
{
CTRLCDRCR=xinxi[hang][i];
Delay(LCDDELAY);
CTRLCDCR=0;
Delay(LCDDELAY);
}
}
void printL_jsq(unsigned char hang)//显示计算器数组
{
int i;
for ( i=0;i<16;i++ )
{
CTRLCDLCR=jisuanqi[hang][i];
Delay(LCDDELAY);
CTRLCDCR=0;
Delay(LCDDELAY);
}
}
void printR_jaq(unsigned char hang)//显示计算器数组
{
int i;
for ( i=0;i<16;i++ )
{
CTRLCDRCR=jisuanqi[hang][i];
Delay(LCDDELAY);
CTRLCDCR=0;
Delay(LCDDELAY);
}
}
void printL_cartoon1(unsigned char hang)
{
int i;
for ( i=0;i<16;i++ )
{
CTRLCDLCR=cartoon_1[hang][i];
Delay(LCDDELAY);
CTRLCDCR=0;
Delay(LCDDELAY);
}
}
void printR_cartoon1(unsigned char hang)
{
int i;
for ( i=0;i<16;i++ )
{
CTRLCDRCR=cartoon_1[hang][i];
Delay(LCDDELAY);
CTRLCDCR=0;
Delay(LCDDELAY);
}
}
void printL_cartoon2(unsigned char hang)
{
int i;
for ( i=0;i<16;i++ )
{
CTRLCDLCR=cartoon_2[hang][i];
Delay(LCDDELAY);
CTRLCDCR=0;
Delay(LCDDELAY);
}
}
void printR_cartoon2(unsigned char hang)
{
int i;
for ( i=0;i<16;i++ )
{
CTRLCDRCR=cartoon_2[hang][i];
Delay(LCDDELAY);
CTRLCDCR=0;
Delay(LCDDELAY);
}
}
void printL_cartoon3(unsigned char hang)
{
int i;
for ( i=0;i<16;i++ )
{
CTRLCDLCR=cartoon_3[hang][i];
Delay(LCDDELAY);
CTRLCDCR=0;
Delay(LCDDELAY);
}
}
void printR_cartoon3(unsigned char hang)
{
int i;
for ( i=0;i<16;i++ )
{
CTRLCDRCR=cartoon_3[hang][i];
Delay(LCDDELAY);
CTRLCDCR=0;
Delay(LCDDELAY);
}
}
void printL_cartoon4(unsigned char hang)
{
int i;
for ( i=0;i<16;i++ )
{
CTRLCDLCR=cartoon_4[hang][i];
Delay(LCDDELAY);
CTRLCDCR=0;
Delay(LCDDELAY);
}
}
void printR_cartoon4(unsigned char hang)
{
int i;
for ( i=0;i<16;i++ )
{
CTRLCDRCR=cartoon_4[hang][i];
Delay(LCDDELAY);
CTRLCDCR=0;
Delay(LCDDELAY);
}
}
void printL_cartoon5(unsigned char hang)
{
int i;
for ( i=0;i<16;i++ )
{
CTRLCDLCR=cartoon_5[hang][i];
Delay(LCDDELAY);
CTRLCDCR=0;
Delay(LCDDELAY);
}
}
void printR_cartoon5(unsigned char hang)
{
int i;
for ( i=0;i<16;i++ )
{
CTRLCDRCR=cartoon_5[hang][i];
Delay(LCDDELAY);
CTRLCDCR=0;
Delay(LCDDELAY);
}
}
void printL_image(unsigned char hang)
{
int i;
for ( i=0;i<16;i++ )
{
CTRLCDLCR=zon_image[hang][i];
Delay(LCDDELAY);
CTRLCDCR=0;
Delay(LCDDELAY);
}
}
void printR_image(unsigned char hang)
{
int i;
for ( i=0;i<16;i++ )
{
CTRLCDRCR=zon_image[hang][i];
Delay(LCDDELAY);
CTRLCDCR=0;
Delay(LCDDELAY);
}
}
unsigned int leap_year(unsigned int x)
{
if(x%100==0)
{
if(x%400==0)
return 1;
else
return 0;
}
else
{
if(x%4==0)
return 1;
else
return 0;
}
}
void shijian()
{
second++;
if(second==60)
{
minute++;
second=0;
if(minute==60)
{
hour++;
minute=0;
if(hour==24)
{
hour=0;
if(month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12)
{
if(day<31)
day++;
else
{
day=1;
if(month==12)
{
year++;
month=0;
}
else
month++;
}
}
if(month==4 || month==6 || month==9 || month==11)
{
if(day<30)
day++;
else
{
day=1;
month++;
}
}
if(month==2)
{
n=leap_year(year);
if(n==1)
{
if(day<29)
{
day++;
}
else
{
month++;
day=1;
}
}
if(n==0)
{
if(day<28)
day++;
else
{
month++;
day=1;
}
}
}
}
}
}
}
void dis_time()
{
dis[0]=year/1000;
dis[1]=year/100%10;
dis[2]=year/10%10;
dis[3]=year%10;
dis[4]=10;
dis[5]=month/10;
dis[6]=month%10;
dis[7]=10;
dis[8]=day/10;
dis[9]=day%10;
dis[10]=12;
dis[11]=hour/10;
dis[12]=hour%10;
dis[13]=11;
dis[14]=minute/10;
dis[15]=minute%10;
set(0,0); printL(dis[0],0);
set(0,1); printL(dis[1],0);
set(0,2); printL(dis[2],0);
set(0,3); printL(dis[3],0);
set(0,4); printL(dis[4],0);
set(0,5); printL(dis[5],0);
set(0,6); printL(dis[6],0);
set(0,7); printL(dis[7],0);
set(0,0); printR(dis[8],0);
set(0,1); printR(dis[9],0);
set(0,2); printR(dis[10],0);
set(0,3); printR(dis[11],0);
set(0,4); printR(dis[12],0);
set(0,5); printR(dis[13],0);
set(0,6); printR(dis[14],0);
set(0,7); printR(dis[15],0);
}
void startstore1(unsigned int i)
{
set(2,2);printL1(0,i);
set(2,4);printL1(2,i);
set(3,2);printL1(1,i);
set(3,4);printL1(3,i);
}
void cartoon_image()
{
set(2,0);printL_image(0);
set(3,0);printL_image(1);
}
void startstore2(unsigned int i)
{
set(2,2);printR1(4,i);
set(2,4);printR1(6,i);
set(3,2);printR1(5,i);
set(3,4);printR1(7,i);
}
void jisuan_image()
{
set(2,0);printR_image(2);
set(3,0);printR_image(3);
}
void startstore3(unsigned int i)
{
set(5,2);printL1(8,i);
set(5,4);printL1(10,i);
set(6,2);printL1(9,i);
set(6,4);printL1(11,i);
}
void my_image()
{
set(5,0);printL_image(4);
set(6,0);printL_image(5);
}
void startstore4(unsigned int i)
{
set(5,2);printR1(12,i);
set(5,4);printR1(14,i);
set(6,2);printR1(13,i);
set(6,4);printR1(15,i);
}
void quit_image()
{
set(5,0);printR_image(6);
set(6,0);printR_image(7);
}
void dis_code()
{
set(1,4);printL2(8);
set(1,6);printL2(9);
set(2,4);printL2(10);
set(2,6);printL2(11);
set(3,4);printL2(12);
set(3,6);printL2(13);
set(4,4);printL2(14);
set(4,6);printL2(15);
set(3,0);printR2(0);
set(3,2);printR2(1);
set(4,0);printR2(2);
set(4,2);printR2(3);
set(5,0);printR2(4);
set(5,2);printR2(5);
set(6,0);printR2(6);
set(6,2);printR2(7);
}
int sum_1()
{
int ge=0,si=0,sum;
si=shu_1[0];
ge=shu_1[1];
if(ge==0)
{
ge=si;
si=0;
}
sum=(si*10+ge);
return sum;
}
int sum_2()
{
int ge=0,si=0,sum;
si=shu_2[0];
ge=shu_2[1];
if(ge==0)
{
ge=si;
si=0;
}
sum=(si*10+ge);
return sum;
}
void sum(int shu)
{
int ge=0,si=0;
si=shu/10;
ge=shu%10;
set(7,5);printL(14,0);
set(7,0);printR(si,0);
set(7,1);printR(ge,0);
}
void dis_jisuanqi()
{
set(1,0);printL_jsq(0);
set(1,2);printL_jsq(2);
set(1,4);printL_jsq(4);
set(2,0);printL_jsq(1);
set(2,2);printL_jsq(3);
set(2,4);printL_jsq(5);
set(1,0);printR_jaq(6);
set(1,2);printR_jaq(8);
set(1,4);printR_jaq(10);
set(1,6);printR_jaq(12);
set(2,0);printR_jaq(7);
set(2,2);printR_jaq(9);
set(2,4);printR_jaq(11);
set(2,6);printR_jaq(13);
set(0,2);printR(11,0);
set(0,3);printR(15,0);
set(0,5);printR(11,0);
set(0,6);printR(14,0);
}
void jisuan()
{
int nCount=0,nBW=0,i=0,j=0;
int dbScanCode,tKey,cKey,nKeyCode;
int z=0,yi,er,ge,si;
int jia=0,jian=0,deng;
PLL_Init(20);
SDRAM_init();
InitCTR();
TurnOnLCD(); // 打开显示
LCDCLS(); // 清除显示内存
CTRLCDCMDR=LCDCMDSTARTLINE; // 设置显示起始行
Delay(LCDDELAY);
CTRLCDCR=0;
Delay(LCDDELAY);
for (;;)
{
dis_jisuanqi();
Delay(10);
dbScanCode=GetKey();
dbScanCode&=0x0ff;
Delay(100);
cKey=ConvertScanToChar(dbScanCode); //将扫描码转换为字符类型
if (cKey!=0 && cKey>='0' && cKey<='9' )
{
if(i<2)
{
shu_1[i]=cKey-'0';
set(3,i);printR(shu_1[i],0);
i++;
}
}
if(dbScanCode==0x79)
{
set(4,5);printL(13,0);
jia=1;
z=1;
}
if(dbScanCode==0x7B)
{
set(4,5);printL(10,0);
jian=1;
z=1;
}
Delay(10);
dbScanCode=GetKey();
dbScanCode&=0x0ff;
Delay(100);
cKey=ConvertScanToChar(dbScanCode);
if (z==1 && cKey!=0 && cKey>='0' && cKey<='9' )
{
if(j<2)
{
shu_2[j]=cKey-'0';
set(5,j);printR(shu_2[j],0);
j++;
}
}
if(dbScanCode==0x5A)
{
yi=sum_1();
er=sum_2();
if(jia==1)
{
deng=yi+er;
sum(deng);
}
if(jian==1)
{
deng=yi-er;
sum(deng);
}
}
if(dbScanCode==0x7C)
{
LCDCLS();
deng=0;
yi=0;
er=0;
z=0;
i=0;
j=0;
}
if( dbScanCode==SCANCODE_Num)
{
break;
}
}
}
void cartoon_start_1()
{
set(2,6);printL_cartoon1(0);
set(2,0);printR_cartoon1(1);
set(3,6);printL_cartoon1(2);
set(3,0);printR_cartoon1(3);
set(4,6);printL_cartoon1(4);
set(4,0);printR_cartoon1(5);
set(5,6);printL_cartoon1(6);
set(5,0);printR_cartoon1(7);
}
void cartoon_start_2()
{
set(2,6);printL_cartoon2(0);
set(2,0);printR_cartoon2(1);
set(3,6);printL_cartoon2(2);
set(3,0);printR_cartoon2(3);
set(4,6);printL_cartoon2(4);
set(4,0);printR_cartoon2(5);
set(5,6);printL_cartoon2(6);
set(5,0);printR_cartoon2(7);
}
void cartoon_start_3()
{
set(2,6);printL_cartoon3(0);
set(2,0);printR_cartoon3(1);
set(3,6);printL_cartoon3(2);
set(3,0);printR_cartoon3(3);
set(4,6);printL_cartoon3(4);
set(4,0);printR_cartoon3(5);
set(5,6);printL_cartoon3(6);
set(5,0);printR_cartoon3(7);
}
void cartoon_start_4()
{
set(2,6);printL_cartoon4(0);
set(2,0);printR_cartoon4(1);
set(3,6);printL_cartoon4(2);
set(3,0);printR_cartoon4(3);
set(4,6);printL_cartoon4(4);
set(4,0);printR_cartoon4(5);
set(5,6);printL_cartoon4(6);
set(5,0);printR_cartoon4(7);
}
void cartoon_start_5()
{
set(2,6);printL_cartoon5(0);
set(2,0);printR_cartoon5(1);
set(3,6);printL_cartoon5(2);
set(3,0);printR_cartoon5(3);
set(4,6);printL_cartoon5(4);
set(4,0);printR_cartoon5(5);
set(5,6);printL_cartoon5(6);
set(5,0);printR_cartoon5(7);
}
void startset()
{
dbScanCode=GetKey();
dbScanCode&=0x0ff;
if(dbScanCode!=0 && dbScanCode!=0x0ff)
{
if(dbScanCode==SCANCODE_8 && huifu==0)
{
fanwei2=0;
}
if(dbScanCode==SCANCODE_2 && huifu==0)
{
fanwei2=1;
}
if(dbScanCode==SCANCODE_4 && huifu==0)
{
fanwei1=0;
}
if(dbScanCode==SCANCODE_6 && huifu==0)
{
fanwei1=1;
}
if(dbScanCode==SCANCODE_Num && huifu==1)
{
fanwei1=0;
fanwei2=0;
if(t==1)
{
t=0;
LCDCLS();
dis_time();
}
huifu=0;
}
}
}
void start()
{
ioport unsigned int *tcr0;
tcr0 = (unsigned int *)0x1002;
startset();
if(fanwei1==0 && fanwei2==0)
{
cartoon_image();
startstore1(1);
jisuan_image();
startstore2(0);
my_image();
startstore3(0);
quit_image();
startstore4(0);
if(dbScanCode==SCANCODE_Enter)
{
LCDCLS();
fanwei1=5;
fanwei2=5;
huifu=1;
}
}
if(fanwei1==1 && fanwei2==0)
{
cartoon_image();
startstore1(0);
jisuan_image();
startstore2(1);
my_image();
startstore3(0);
quit_image();
startstore4(0);
if(dbScanCode==SCANCODE_Enter)
{
LCDCLS();
fanwei1=6;
fanwei2=6;
huifu=1;
}
}
if(fanwei1==0 && fanwei2==1)
{
cartoon_image();
startstore1(0);
jisuan_image();
startstore2(0);
my_image();
startstore3(1);
quit_image();
startstore4(0);
if(dbScanCode==SCANCODE_Enter)
{
LCDCLS();
fanwei1=7;
fanwei2=7;
huifu=1;
}
}
if(fanwei1==1 && fanwei2==1)
{
cartoon_image();
startstore1(0);
jisuan_image();
startstore2(0);
my_image();
startstore3(0);
quit_image();
startstore4(1);
if(dbScanCode==SCANCODE_Enter)
{
*tcr0 = 0x04f0;
LCDCLS();
huifu=1;
}
}
if(fanwei1==5 && fanwei2==5)
{
if(t==0)
{
dis_time();
}
cartoon_start_1();
Delay(250);
LCDCLS();
cartoon_start_2();
Delay(250);
LCDCLS();
cartoon_start_3();
Delay(250);
LCDCLS();
cartoon_start_4();
Delay(250);
LCDCLS();
cartoon_start_5();
Delay(250);
LCDCLS();
t=1;
}
if(fanwei1==6 && fanwei2==6)
{
if(t==0)
{
dis_time();
}
jisuan();
LCDCLS();
startset();
dis_time();
start();
t=1;
}
if(fanwei1==7 && fanwei2==7)
{
if(t==0)
{
dis_time();
}
dis_code();
t=1;
}
}
void interrupt Timer()
{
b++;
a%=10; //原计划中断0.005一次,a%=200,定时1秒
if(a==0) //加入按键后显示时间部分延长
{ //经调整改为a%10为正常显示1秒
shijian();
dis_time();
}
if(a==5) //与上面相同问题,a==100改为a==5
{
set(0,5); printR(12,0);
}
if(b%2==0)
{
start();
}
a++;
}
void INTR_init()
{
IVPD=0xd0;
IVPH=0xd0;
IER0=0x10;
DBIER0 =0x10;
IFR0=0xffff;
asm(" BCLR INTM");
}
void TIMER_init()
{
ioport unsigned int *tim0;
ioport unsigned int *prd0;
ioport unsigned int *tcr0;
ioport unsigned int *prsc0;
tim0 = (unsigned int *)0x1000;
prd0 = (unsigned int *)0x1001;
tcr0 = (unsigned int *)0x1002;
prsc0 = (unsigned int *)0x1003;
*tcr0 = 0x04f0;
*tim0 = 0;
*prd0 = 0x0c34f;
*prsc0 = 2;
*tcr0 = 0x00e0;
}