📄 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;//下降沿降数据写入液晶并恢复初始状态;
//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 + -