📄 main.c
字号:
#include"SPCE061V004.H"
//extern unsigned int char_table[];
void delay1ms(void);
void delay1ms(void);
int start,number,i,data_out;
unsigned int Table_Index=0;
unsigned int char_table[]={
//-- 调入了一幅图像:D:\3033B\3033.bmp --
//-- 宽度x高度=128x64 --
//-总共52行数据,每行16个数据--
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x7F,0x80,0x00,0x00,0x00,0x00,0x18,0x0C,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x01,0xFF,0x80,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x13,0x10,0x03,0xFE,0x00,
0x03,0xFF,0xC0,0x00,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x3F,0x30,0x1F,0xFF,0xC0,
0x03,0xFF,0xE0,0x00,0x00,0x00,0x00,0x8C,0x03,0xF0,0x00,0x7F,0xE0,0x7C,0x01,0xE0,
0x03,0xFF,0xF0,0x00,0x00,0x00,0x01,0x36,0x06,0xC0,0x00,0x5F,0xC0,0xFF,0xFC,0x60,
0x01,0xFF,0xF0,0x00,0x00,0x00,0x02,0x1B,0x0F,0x80,0x00,0xFF,0x01,0xFE,0x0F,0x30,
0x00,0xEF,0xF0,0x00,0x00,0x00,0x02,0x6D,0x9F,0x00,0x00,0x3E,0x03,0xFF,0xF1,0x90,
0x00,0xFF,0xF8,0x00,0x00,0x00,0x04,0x36,0xFE,0x00,0x01,0xFF,0x07,0xFF,0xFC,0x90,
0x00,0xEF,0xFF,0xFF,0x80,0x00,0x04,0xDB,0x7E,0x00,0x03,0xFF,0x87,0xFF,0xFC,0xD0,
0x00,0x0F,0xFF,0xFF,0xC0,0x00,0x04,0x6D,0xFC,0x00,0x07,0xFF,0x8F,0xFF,0xFE,0x50,
0x00,0x0F,0xFF,0xFF,0xE0,0x00,0x04,0x36,0xFC,0x10,0x07,0xFF,0x8F,0xFF,0xFE,0x90,
0x00,0x0F,0xFF,0xFF,0xE0,0x00,0x04,0x1B,0xF8,0x10,0x07,0xFF,0xCF,0xFF,0xFE,0x80,
0x00,0x0F,0xFF,0xFF,0xF0,0x00,0x04,0x0F,0xF8,0x10,0x07,0xFF,0xFF,0xFF,0xFA,0x00,
0x00,0x07,0xFF,0xFF,0xF0,0x00,0x04,0x07,0xF0,0x10,0x07,0xFF,0xFF,0xFF,0xFA,0x00,
0x00,0xFF,0xFF,0xFF,0xF8,0x00,0x02,0x03,0xF0,0x20,0x07,0xFF,0xFF,0xFF,0xBA,0x00,
0x00,0xFD,0xFF,0xFF,0xFC,0x00,0x02,0x03,0xF0,0x20,0x03,0xFF,0xFF,0xDF,0xB8,0x00,
0x00,0xC1,0xC0,0x3F,0xFC,0x00,0x01,0x01,0xE0,0x40,0x00,0xFF,0xFF,0xDF,0xB0,0x00,
0x00,0x81,0xC0,0x3F,0xCE,0x00,0x00,0x81,0xE0,0x80,0x00,0x7F,0xFF,0xDF,0xA0,0x00,
0x00,0x81,0x80,0x1D,0xCF,0x00,0x00,0x41,0xE1,0x00,0x00,0x3F,0xFF,0x9B,0x00,0x00,
0x01,0x83,0x80,0x1F,0xC7,0x80,0x00,0x21,0xE2,0x00,0x00,0x1F,0xFD,0xB6,0x00,0x00,
0x01,0xC3,0x00,0x0E,0xE6,0x80,0x00,0x19,0xEC,0x00,0x00,0x07,0xFE,0x20,0x00,0x00,
0x00,0xC3,0x00,0x07,0x67,0x40,0x00,0x07,0xF0,0x00,0x00,0x03,0x3E,0x00,0x00,0x00,
0x00,0x02,0x00,0x03,0xE7,0xA0,0x00,0x00,0x00,0x00,0x00,0x02,0x8E,0x00,0x00,0x00,
0x00,0x06,0x00,0x03,0x83,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x03,0x00,0x00,0x00,
0x00,0x06,0x00,0x07,0x03,0x00,0x77,0x46,0x74,0x24,0x80,0x06,0x04,0x00,0x00,0x00,
0x00,0x1C,0x00,0x06,0x00,0x00,0x55,0x45,0x54,0x57,0x80,0x00,0x00,0x00,0x00,0x00,
0x00,0x1C,0x00,0x0E,0x00,0x00,0x45,0x45,0x74,0x57,0x80,0x08,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x1C,0x00,0x00,0x55,0x45,0x44,0x74,0x80,0xF0,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x38,0x00,0x00,0x77,0x76,0x47,0x54,0x80,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
init_io()
{
*P_IOA_Data=0x780f; //A口低位设置 //IOA 15 为电源指示
*P_IOA_Dir=0xffff;
*P_IOA_Attrib=0xffff;
data_out=0x7800; //初始化A口数据
}
void send_data(unsigned int data) //高8位为待送数据
{
int i=8,j,data1;
data=data>>6; //IO9为数据输入端
while (i--)
{
data1=data&0x0200;
if (data1)
{data_out|=data1;
*P_IOA_Data=data_out;}
else
{data_out&=0xfdff;
*P_IOA_Data=data_out;}
data_out|=0x0400; //set sclk to high IO10
*P_IOA_Data=data_out;
data_out&=0xfbff; //set sclk to low IO10
*P_IOA_Data=data_out;
data=data<<1;
}
}
void write_dat(unsigned char data) //低八位是待写入数据
{
unsigned int data1=0xfa00,data2,data3; //data2中存放高4位数据,data3中存放低4位数据
data_out=data_out|0x0100; //cs set to high
*P_IOA_Data=data_out;
data2=data&0x00f0; //取高4位数据
data2=data2<<8;
data3=data&0x000f; //取低4位数据
data3=data3<<12;
send_data(data1);
send_data(data2);
send_data(data3);
data_out=data_out&0xfeff;
*P_IOA_Data=data_out; //cs set to low
}
void write_com(unsigned char data) //低八位是待写入数据
{ unsigned int data1=0xf800,data2,data3;
data_out=data_out|0x0100; //cs set to high
*P_IOA_Data=data_out;
data2=data&0x00f0; //取高4位数据
data2=data2<<8;
data3=data&0x000f; //取低4位数据
data3=data3<<12;
send_data(data1);
send_data(data2);
send_data(data3);
data_out=data_out&0xfeff;
*P_IOA_Data=data_out; //cs set to low
}
void delay1ms(void)
{
int i;
for (i=0;i<0x57;i++);
}
void delay40ms(void)
{
int i;
for (i=0;i<0x15c0;i++);
}
void OCM_DrawBitMap(int resource[])
{
int i,j;
write_com(0x34);
write_com(0x34);
write_com(0x36);
for(i=0;i<8;i++)
for(j=0;j<32;j++)
{
write_com(0x80+j);
// write_dat(char_table[i*2+j*16]);
write_com(0x80+i);
write_dat(char_table[i*2+j*16]);
write_dat(char_table[i*2+1+j*16]);
*P_Watchdog_Clear=0x0001;
write_com(0x80+j);
// write_dat(char_table[i*2+(j+32)*16]);
write_com(0x80+i+8);
write_dat(char_table[i*2+(j+32)*16]);
write_dat(char_table[i*2+1+(j+32)*16]);
*P_Watchdog_Clear=0x0001;
}
write_com(0x36);
}
void chn_disp(unsigned char *chn)
{
int i,j;
write_com(0x30);
write_com(0x80);
for (j=0;j<4;j++)
{
for (i=0;i<16;i++)
write_dat(chn[j*16+i]);
}
}
/*-----------上半屏显示汉字或字符------------
void chn_disp1 (uchar code *chn)
{
uchar i,j;
wr_lcd (comm,0x30);
wr_lcd (comm,0x80);
j=0;
for (i=0;i<16;i++)
wr_lcd (dat,chn[j*16+i]);
wr_lcd (comm,0x90); //字符的显示地址变化
j=1;
for (i=0;i<16;i++)
wr_lcd (dat,chn[j*16+i]);
}
----------------------------------*/
/*void Disp_Img()
{ unsigned int j=0;
unsigned char x,y,i;
for(i=0;i<9;i+=8)
for(y=0;y<32;y++)/*原来 为 y<26 ,上下两个半屏不能正常对接显示,导致显示的图片中间有空隙
for(x=0;x<8;x++)
{ write_com(0x36);//功能设置---8BIT控制界面,扩充指令集
write_com(y+0x80); //行地址
write_com(x+0x80+i); //列地址
write_com(0x30);
write_dat(img[j++]);
write_dat(img[j++]);
}
}*/
main()
{
int k;
unsigned char tab1[]={"科技大学信息学院"};
init_io();
delay40ms();
write_com(0x30);/*30---基本指令动作*/
write_com(0x30);
// write_com(0x34);//扩充指令集动作
write_com(0x0c); /*开显示,关游标*/
write_com(0x01);/*清屏,地址指针指向00H*/
delay40ms();
write_com(0x06);
delay1ms();
chn_disp(tab1); // 显示汉字
// OCM_DrawBitMap(char_table); //显示图像
while(1)
{
*P_Watchdog_Clear=1;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -