?? main.c
字號:
#include "SPCE061A.h"
/*****************************************************************************
Program: example for LCD'Display
author: zfc
Date: 2006/07/30
*****************************************************************************/
/******************************************************************
硬件連接:
IOA0~IOA7順序DB0~DB7
RS~IOA8;RW~IOA9
E~IOA10;CS1~IOA11
CS2~IOA12
******************************************************************/
/*char Zimo_Shuju[32*4]={0x00,0x04,0x21,0x0FE,0xC6,0x01,0x00,0x08,0xF4,0x09,0x54,0x09,0x5F,0xFF,0x54,0x09,0xF4,0x49,0x00,0x20,0xFE,0x01F,0x22,0x41,0x22,0x81,0xFE,0x7F,0x00,0x00,0x00,0x00,
0x00,0x04,0x00,0x04,0x48,0x04,0x48,0x04,0x48,0x04,0x48,0x04,0x48,0x04,0xFF,0xFF,0x48,0x04,0x48,0x04,0x48,0x04,0x68,0x04,0x4C,0x04,0x08,0x06,0x00,0x04,0x00,0x00,
0x10,0x04,0x61,0x04,0x06,0xFF,0x00,0x00,0x04,0x01,0x84,0x00,0xE4,0xFF,0x1C,0x41,0x84,0x21,0x65,0x12,0xBE,0x0C,0x24,0x1B,0xA4,0x61,0x64,0x40,0x04,0x40,0x00,0x00,
0x00,0x00,0x00,0x7F,0x00,0x25,0x00,0x25,0x7E,0x25,0x2A,0x25,0x2A,0x7F,0x2A,0x00,0x2A,0x00,0x2A,0x7F,0x2A,0x25,0x7E,0x25,0x00,0x25,0x00,0x25,0x00,0x7F,0x00,0x00};
//潮豐液晶;*/
char Zimo_Shuju[32*4] = {0x00,0x00,0x40,0x10,0x20,0x10,0x10,0x10,0x0C,0x10,0x03,0x10,0x10,0xFF,0x08,0x10,0x3F,0xF0,0x42,0x12,0x41,0x1C,0x40,0xD0,0x40,0x10,0x40,0x10,0x70,0x10,0x00,0x00,
0x04,0x10,0x04,0x60,0x7E,0x01,0x01,0xC6,0x20,0x30,0x20,0x00,0x20,0x04,0x20,0x04,0x20,0x04,0x3F,0xFC,0x20,0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x20,0x00,0x00,0x00,
0x04,0x10,0x02,0x12,0x01,0x92,0x00,0x72,0xFF,0xFE,0x00,0x51,0x04,0x91,0x04,0x00,0x04,0x22,0x02,0xCC,0x02,0x00,0x02,0x00,0xFF,0xFF,0x01,0x00,0x01,0x00,0x00,0x00,
0x01,0x08,0x41,0x08,0x80,0x88,0x7F,0xFF,0x00,0x48,0x40,0x28,0x40,0x00,0x20,0xC8,0x13,0x48,0x0C,0x48,0x0C,0x7F,0x12,0x48,0x21,0xC8,0x60,0x48,0x20,0x08,0x00,0x00};
//龍江科技;
char Close_Or_Open_Flag1 = 0x00;
char Close_Or_Open_Flag2 = 0x00;
char Ye_Jing_State;
void delay(long int n)
{
while(n!=0)
{ n--;
}
}
void Write_Command_to_Screen(char Left_Or_Right_Screen,char Command)
{
if(Left_Or_Right_Screen == 0x00)
{
Command = Command | 0x0c00;
*P_IOA_Data = Command;//選中左屏;
Command = Command & 0x00ff;//下降沿降數(shù)據(jù)寫入液晶并恢復(fù)初始狀態(tài);
//delay(10);
*P_IOA_Data = Command ;
}
if(Left_Or_Right_Screen == 0x01)
{
Command = Command | 0x1400;
*P_IOA_Data = Command;//選中右屏;
Command = Command & 0x00ff;//下降沿降數(shù)據(jù)寫入液晶并恢復(fù)初始狀態(tài);
//delay(10);
*P_IOA_Data = Command;
}
}
void Write_Data(char Write_Data_to_L_Or_R_Flag,char Write_Data_to_LCD)
{
if(Write_Data_to_L_Or_R_Flag == 0x00)
{
Write_Data_to_LCD = Write_Data_to_LCD | 0x0d00;
*P_IOA_Data = Write_Data_to_LCD;//選中左屏并輸出數(shù)據(jù);
Write_Data_to_LCD = Write_Data_to_LCD & 0x00ff;
delay(10);
*P_IOA_Data = Write_Data_to_LCD ;//下降沿降數(shù)據(jù)寫入液晶并恢復(fù)初始狀態(tài);
}
if(Write_Data_to_L_Or_R_Flag == 0x01)
{
Write_Data_to_LCD = Write_Data_to_LCD | 0x1500;
*P_IOA_Data = Write_Data_to_LCD;//選中左屏并輸出數(shù)據(jù);
delay(10);
Write_Data_to_LCD = Write_Data_to_LCD & 0x00ff;
*P_IOA_Data = Write_Data_to_LCD ;//下降沿降數(shù)據(jù)寫入液晶并恢復(fù)初始狀態(tài);
}
}
int main(void)
{
char Write_Data_to_LCD = 0x00;//寫入LCD單元的數(shù)據(jù);
char Write_Number;//寫入數(shù)據(jù)的個數(shù);
char Page_Addr = 0x00;//頁地址選擇變量;
char Select_Screen_BianLiang = 0x00;//左右屏選擇變量;
char Start_Pos2 = 0x00;//列的起始位置
char Scroll_Screen = 0x00;//行的起始位置,改變其值可實(shí)現(xiàn)滾屏功能;
*P_IOA_Dir = 0xffff;
*P_IOA_Attrib = 0xffff;
Write_Command_to_Screen(0,0x3f);//0代表將命令寫入左屏;
Write_Command_to_Screen(1,0x3f);//1代表將命令寫入右屏;
while(1)
{
*P_Watchdog_Clear = 0x01;
Start_Pos2 = 0x00;
Write_Number = 0x00;//寫入數(shù)據(jù)的列數(shù),一次性寫入64列,即寫完一頁;
Write_Command_to_Screen(Select_Screen_BianLiang,0x0b8+Page_Addr);//寫入的頁地址
Write_Command_to_Screen(Select_Screen_BianLiang,0xc0|Scroll_Screen); //設(shè)置起始行,0xc0為第一行
Write_Command_to_Screen(Select_Screen_BianLiang,0x40+Start_Pos2); //設(shè)置起始列,0x40為第一列
while(Write_Number != 0x40)
{
Write_Data(Select_Screen_BianLiang,Zimo_Shuju[Write_Number*2]);
Write_Number++;
}//上部分程序用來寫一屏中0頁2頁4頁和6頁;
/////////////////////////////////////////////////////////
//下部分程序用來寫一屏中1頁3頁5頁和7頁;
Write_Number = 0x00;
Write_Command_to_Screen(Select_Screen_BianLiang,0x0b8+Page_Addr+0x01);
Write_Command_to_Screen(Select_Screen_BianLiang,0xc0|Scroll_Screen);
Write_Command_to_Screen(Select_Screen_BianLiang,0x40);
while(Write_Number != 0x40)
{
Write_Data(Select_Screen_BianLiang,Zimo_Shuju[Write_Number*2+1]);Write_Number++;
}
Page_Addr = Page_Addr + 0x02;
if(Page_Addr >= 0x08)
{
Page_Addr = 0x00;
Select_Screen_BianLiang^=0x01;//左、右屏選擇變量;0為左屏,1為右屏
}
delay(5000);*P_Watchdog_Clear = 0x01;
Scroll_Screen++;//這兩句話實(shí)現(xiàn)兩屏分別滾動
Scroll_Screen = Scroll_Screen & 0xff;
Write_Command_to_Screen(0,0xc0);
Scroll_Screen++;
Write_Command_to_Screen(0,0xc0|Scroll_Screen);//左屏滾動
Write_Command_to_Screen(1,0xc0|Scroll_Screen);//右屏滾動
delay(1000);*P_Watchdog_Clear = 0x01;
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -