?? mp3_show.h
字號:
#ifndef __MP3_SHOW_H__
#define __MP3_SHOW_H__
//IOA高八位
#define Clear 0x0100 //清屏
#define Home 0x0200 //歸位 AC=0
#define In_Down 0x0400 //數據讀寫后,AC自動減1,畫面不動
#define In_Down_Move 0x0500 //數據讀寫后,AC自動減1,畫面平移
#define In_Up 0x0600 //數據讀寫后,AC自動增1,畫面不動
#define In_Up_Move 0x0700 //數據讀寫后,AC自動增1,畫面平移
#define D0_C0_B0 0x0800 //顯示關,光標關,不閃爍
#define D0_C0_B1 0x0900 //顯示關,光標關,閃爍
#define D0_C1_B0 0x0A00 //顯示關,光標開,不閃爍
#define D0_C1_B1 0x0B00 //顯示關,光標開,閃爍
#define D1_C0_B0 0x0C00 //顯示開,光標關,不閃爍
#define D1_C0_B1 0x0D00 //顯示開,光標關,閃爍
#define D1_C1_B0 0x0E00 //顯示開,光標開,不閃爍
#define D1_C1_B1 0x0F00 //顯示開,光標開,閃爍
#define C0_L0 0x1000 //光標向左平移一個字符位
#define C0_R1 0x1400 //光標向右平移一個字符位
#define S1_L0 0x1800 //畫面向左平移一個字符位
#define S1_L1 0x1C00 //畫面向右平移一個字符位
#define Function 0x3800 //8位數據接口,兩行顯示,5*7點陣字符
#define CGRAM 0x4000
#define DDRAM 0x8000
#define N0_Busy 0x0000
#define Busy 0x8000
//IOB第13,14,15口
#define WR_COM 0x0000 //寫命令操作
#define RD_STA 0x4000 //讀狀態操作
#define WR_DAT 0x8000 //寫數據操作
#define RD_DAT 0xC000 //讀數據操作
#define s1 0x0000
#define s2 0x4000
void Init_LCD()
{
*P_IOA_Dir=0xff00;
*P_IOA_Attrib=0xffff;
*P_IOA_Data=0x0000;
*P_IOB_Dir=0xf000;
*P_IOB_Attrib=0xffff;
*P_IOB_Data=0x2000;
Delay(10000);
*P_IOA_Data=Clear;
WRCOM();
*P_IOA_Data=Function;
WRCOM();
Delay(3000);
*P_IOA_Data=D1_C0_B0;
WRCOM();
*P_IOA_Data=In_Up;
WRCOM();
}
void WRCOM()
{
*P_IOB_Data=WR_COM | 0x2000;
*P_IOB_Data=0x0000 | WR_COM;
F_busy();
*P_IOB_Data=0x2000;
}
void RDSTA()
{
*P_IOB_Data=RD_STA | 0x2000;
*P_IOB_Data=0x0000 | RD_STA;
F_busy();
*P_IOB_Data=0x2000;
}
void WRDATA()
{
*P_IOB_Data=WR_DAT | 0x2000;
*P_IOB_Data=0x0000 | WR_DAT;
F_busy();
*P_IOB_Data=0x2000;
}
void RDDATA()
{
*P_IOB_Data=RD_DAT | 0x2000;
*P_IOB_Data=0x0000 | RD_DAT;
F_busy();
*P_IOB_Data=0x2000;
}
void F_busy()
{
*P_IOB_Data=RD_STA | 0x2000;
*P_IOB_Data=0x0000 | RD_STA;
Delay(1000);
*P_IOB_Data=0x2000;
*P_Watchdog_Clear=0x0001;
}
void Delay(unsigned number) //延時程序
{
unsigned i;
for(i=0;i<number;i++)
*P_Watchdog_Clear=0x0001; //清看門狗操作
}
void show_start() //顯示開始畫面
{
Init_LCD();
LCD_Show(start1,8,(s1+0x0400));
LCD_Show(start2,15,(s2+0x0000));
}
void show_play() //顯示第幾首歌曲
{
unsigned p,p1,p2;
Init_LCD();
LCD_Show(play1,12,(s1+0x0000)); //在第一行顯示
LCD_Show(play2,10,(s2+0x0500)); //在第二行顯示
if(song>=10)
{ p=song;
p1=p%10;
p=p/10;
p2=p%10;
LCD_Show_char(number[p2],(s1+0x0d00));
LCD_Show_char(number[p1],(s1+0x0e00));
}
else LCD_Show_char(number[song],(s1+0x0d00));
}
void show_volume() //顯示音量畫面
{
unsigned p,p1,p2;
Init_LCD();
LCD_Show(volume1,6,(s1+0x0000));
LCD_Show(volume2,6,(s2+0x0900));
if(song>=10)
{ p=volume;
p1=p%10;
p=p/10;
p2=p%10;
LCD_Show_char(number[p2],(s1+0x0d00));
LCD_Show_char(number[p1],(s1+0x0e00));
}
else LCD_Show_char(number[volume],(s1+0x0d00));
}
void show_record() //顯示錄音畫面
{
Init_LCD();
LCD_Show(record,9,(s1+0x0000));
}
void show_play_record() //顯示播放錄音畫面
{
Init_LCD();
LCD_Show(play_record,11,(s1+0x0000));
}
void LCD_Show(unsigned line[],unsigned N,unsigned s)
{
unsigned i;
*P_IOA_Data=DDRAM | s;
WRCOM();
for(i=0;i<N;i++)
{
*P_IOA_Data=line[i];
WRDATA();
Delay(100);
*P_Watchdog_Clear=0x0001;
}
}
void LCD_Show_char(unsigned data,unsigned s)
{
*P_IOA_Data=DDRAM | s;
WRCOM();
*P_IOA_Data=data;
WRDATA();
Delay(100);
}
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -