⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 61编的12864程序 有的12864可能有问题
💻 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;//下降沿降数据写入液晶并恢复初始状态;

//delay(10);

*P_IOA_Data = Command ;

}

if(Left_Or_Right_Screen == 0x01)

{

Command = Command | 0x1400;

*P_IOA_Data = Command;//选中右屏;

Command = Command & 0x00ff;//下降沿降数据写入液晶并恢复初始状态;

//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;//选中左屏并输出数据;

Write_Data_to_LCD = Write_Data_to_LCD & 0x00ff;

delay(10);

*P_IOA_Data = Write_Data_to_LCD ;//下降沿降数据写入液晶并恢复初始状态;

}

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;//选中左屏并输出数据;

delay(10);

Write_Data_to_LCD = Write_Data_to_LCD & 0x00ff;

*P_IOA_Data = Write_Data_to_LCD ;//下降沿降数据写入液晶并恢复初始状态; 

}

}

int main(void)

{

char Write_Data_to_LCD = 0x00;//写入LCD单元的数据;

char Write_Number;//写入数据的个数;

char Page_Addr = 0x00;//页地址选择变量;

char Select_Screen_BianLiang = 0x00;//左右屏选择变量;

char Start_Pos2 = 0x00;//列的起始位置

char Scroll_Screen = 0x00;//行的起始位置,改变其值可实现滚屏功能;

*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;//写入数据的列数,一次性写入64列,即写完一页;

Write_Command_to_Screen(Select_Screen_BianLiang,0x0b8+Page_Addr);//写入的页地址

Write_Command_to_Screen(Select_Screen_BianLiang,0xc0|Scroll_Screen); //设置起始行,0xc0为第一行

Write_Command_to_Screen(Select_Screen_BianLiang,0x40+Start_Pos2); //设置起始列,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++;//这两句话实现两屏分别滚动

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;

}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -