用12864看电子书,还有很多不足,请大家指正哈
#include <stdio.h>
#include "NUC1xx.h"
#include "DrvADC.h"
#include "DrvGPIO.h"
#include "DrvUART.h"
#include "DrvSYS.h"
void LCMInit(void) ;
void Chn_disp_char( char *chn, int32_t line_pos, int32_t dis_pos) ;
int i=0;
int pos=0 ;
char txt[]={"海燕(高尔基)在苍茫的大海上,狂风卷集着乌云。在乌云和大海之间,海燕象黑色的闪电,在高傲地飞翔。一会儿翅膀碰着波浪,一会儿箭一般地直冲向乌云,它叫喊着,——就在这鸟儿勇敢的叫喊声里,乌云听出了欢乐。在这叫喊声里——充满着对暴风雨的渴望!在这叫喊声里,乌云听出了愤怒的力量、热情的火焰和胜利的信心。海鸥在暴风雨来临之前呻吟着,——呻吟着,它们在大海上飞窜,想把自己对暴风雨的恐惧,掩藏到大海深处。海鸭也在呻吟着,——它们这些海鸭啊,享受不了生活的战斗的欢乐:轰隆隆的雷声就把它们吓坏了。蠢笨的企鹅,胆怯地把肥胖的身体躲藏到悬崖底下……只有那高傲的海燕,勇敢地,自由自在的,在泛起白沫的大海上飞翔!乌云越来越暗,越来越低,向海面直压下来,而波浪一边歌唱,一边冲向高空,去迎接那雷声。雷声轰响。波浪在愤怒的飞沫中呼叫,跟狂风争鸣。看吧,狂风紧紧抱起一层层巨浪,恶狠狠地把它们甩到悬崖上,把这些大块的翡翠摔成尘雾和碎末。海燕叫喊着,飞翔着,像黑色的闪电,箭一般地穿过乌云,翅膀掠起波浪的飞沫。看吧,它飞舞着,像个精灵,——高傲的、黑色的暴风雨的精灵,——它在大笑,它又在号叫……它笑些乌云,它因为欢乐而号叫!这个敏感的精灵,——它从雷声的震怒里,早就听出了困乏,它深信,乌云遮不住太阳,——是的,遮不住的!狂风吼叫……雷声轰响……一堆堆乌云,像青色的火焰,在无底在大海上燃烧。大海抓住闪电的箭光,把它们熄灭在自己的深渊里。这些闪电的影子,活像一条条火蛇,在大海里蜿蜒游动,一晃就消失了。——暴风雨!暴风雨就要来啦!这是勇敢的海燕,在怒吼的大海上,在闪电中间,高傲的飞翔;这是胜利的预言家在叫喊:——让暴风雨来得更猛烈些吧 "};
char disp_lin_1[17]={""};
char disp_lin_2[17]={""};
char disp_lin_3[17]={""};
char disp_lin_4[17]={""};
void init (void)
{
UNLOCKREG(); // 芯片注册解锁
SYSCLK->PWRCON.XTL12M_EN = 1; // 设定12M外部晶振
DrvSYS_Delay(5000); // 等待时钟就绪
LOCKREG(); //向“0x5000_0100”写入任何值,就可以重锁保护寄存器
DrvGPIO_Open(E_GPA, 9, E_IO_OUTPUT);
DrvGPIO_Open(E_GPA, 8, E_IO_OUTPUT);
DrvGPIO_Open(E_GPA, 7, E_IO_OUTPUT);
DrvGPIO_Open(E_GPA, 6, E_IO_OUTPUT);
DrvGPIO_Open(E_GPA, 5, E_IO_OUTPUT);
DrvGPIO_Open(E_GPB, 10, E_IO_OUTPUT); // 设置GPB10端口为输出模式
DrvGPIO_Open(E_GPA, 9, E_IO_OUTPUT);
DrvGPIO_Open( E_GPB, 14, E_IO_INPUT ); //按键端口设置为输入
DrvGPIO_Open( E_GPB, 15, E_IO_INPUT );
DrvGPIO_ClrBit(E_GPB, 10);
DrvSYS_Delay(6000);
LCMInit();
}
void key (void)
{
if (DrvGPIO_GetBit(E_GPB,14) == 0) // 键按下检测
{
DrvSYS_Delay(20000); //延时20毫秒
if (DrvGPIO_GetBit(E_GPB,14) == 0)
pos+=16;
}
DrvSYS_Delay(60000);
if (DrvGPIO_GetBit(E_GPB,15) == 0) // 键按下检测
{
DrvSYS_Delay(20000); //延时20毫秒
if (DrvGPIO_GetBit(E_GPB,15) == 0)
{
if (pos>0) pos-=16;
else
{
DrvGPIO_SetBit( E_GPB,10); //蜂鸣
DrvSYS_Delay(1000);
DrvGPIO_ClrBit( E_GPB,10);
}
}
}
}
int main (void)
{
init ();
while(1)
{
key();
for(i=0;i<16;i++) disp_lin_1[i]=txt[pos+i];
Chn_disp_char(disp_lin_1,1,1);
for(i=0;i<16;i++) disp_lin_2[i]=txt[pos+i+16];
Chn_disp_char(disp_lin_2,2,1);
for(i=0;i<16;i++) disp_lin_3[i]=txt[pos+i+32];
Chn_disp_char(disp_lin_3,3,1);
for(i=0;i<16;i++) disp_lin_4[i]=txt[pos+i+48];
Chn_disp_char(disp_lin_4,4,1);
}
}
|