📄 d_lock_dispaly.c
字号:
/***************************************************************\
|* 12864LCD显示程序 proteus7.1仿真AMPIRE128*64 *|
|* Copyright (c) 2007山师.传播 */
/* All rights reserved. */
/*赵彦彬 *|
|* *|
|*
\***************************************************************/
#include"w_word.h"
/**********************************************\
|* 写命令子程序 *|
|* *|
\**********************************************/
void write_cmd(uchar cmd) //写命令子程序
{ RW=0;
DI=0; //DI=0 写命令
E=1;
P1=cmd;
E=0; //RW="L",E="H->L" DB7~DB0的数据被写到IR或DR
}
/**********************************************\
|* 写数据子程序 *|
|* 调用函数: null *|
\**********************************************/
void write_dat(uchar dat) //写数据子程序
{ RW=0;
DI=1; //DI=1 写数据
E=1;
P1=dat;
E=0; //RW="L",E="H->L" DB7~DB0的数据被写到IR或DR
}
/**********************************************\
|* 设置显示起始行 X地址和Y地址 *|
|* 入口参数:st_line 显示起始行 0~63 *|
|* x_add 页地址 8行为一页 0~7 *|
|* y_add Y地址 0~128 *|
\**********************************************/
void set_dis(uchar st_line,uchar x_ad,uchar y_ad) //设置显示起始行 X地址和Y地址
{
//write_cmd(st_line+0xc0); //+0xc0是参照设置起始行的格式
write_cmd(x_ad+0xb8); //+0xb8是参照设置页地址的格式
if(y_ad<64) { CS1=0;CS2=1;write_cmd(y_ad+0x40);} //Y_add地址实际上只有0~63 采用CS1和CS2选左右半屏
else { CS1=1;CS2=0;write_cmd(y_ad);} //选第一片时,+64第二片为y_add-64+64
}
/***********************************************\
|* 写汉字子程序1 可以在任意位置写入 *|
|* 入口参数:st_line 显示起始行 0~63 *|
|* x_add 页地址 8行为一页 0~7 *|
|* y_add Y地址 0~128 *|
count 汉字个数
/*调用set_dis write_dat
\***********************************************/
void write_word(uchar st_line,uchar x_a,uchar y_a,uchar *buf,uchar count) //写入汉字
{ uint i,j,k=1;
set_dis(st_line, x_a,y_a);
for(j=0;j<count;j++) //显示的字数
{// set_dis(st_line,x_ad,y_ad);
for(i=0;i<16;i++)
write_dat(*(buf+i+j*32)) ; //字的下半部分,x_add+1
set_dis(st_line,x_a+1,y_a);
for(i=16;i<32;i++)
write_dat(*(buf+i+j*32));
set_dis(st_line,x_a,y_a=y_a+16);
if(y_a==128) //一行的字数超过8 y_add>128时换行
{ //为什么每次换行第一列子的上半部分出现错误?
x_a=2*k;
y_a=0;
set_dis(st_line,x_a,y_a);
set_dis(st_line,x_a,y_a);
k++;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -