当前位置:首页 > 基于protues仿真的AMPIRE 128X64显示器在51单片机平台的显示
}
/*******************设置显示坐标*********************************/ void set_xy(uchar x,uchar y) //x为行,y为列 {
if(y>=64) //列地址大于等于64时右屏显示? {
CS2=0; //低电平选择 CS1=1; //写右屏是左屏关闭,不然两边会同时显示 y=y-64; }
else //列地址小于64时左屏显示 {
CS1=0; //同上 CS2=1; }
write_cmd(0x40|y); //写列地址 _nop_();
write_cmd(0xb8|x); //写行地址? }
/*******************显示中文字体*********************************/ void disp_hz(uchar R,uchar L,uchar *p) {
uchar i;
for(i=0;i<16;i++) {
set_xy(2*R,16*L+i); //设定显示位置,每个汉字16*16个点,显示时每行8*16个点,所以需要两行8*32个点,此处为第一行 write_data(p[i]); //写入DDRAM set_xy(2*R+1,16*L+i); //第二行 write_data(p[i+16]); } }
void disp_zf(uchar R,uchar L,uchar *p) {
uchar i;
for(i=0;i<8;i++) {
set_xy(2*R,8*L+i); //设定显示位置,每个字母16*8个点,显示时每行8*8个点,所以需要两行8*16个点,此处为第一行 write_data(p[i]);
set_xy(2*R+1,8*L+i); //第二行 write_data(p[i+8]); } }
void main() {
uchar k=0,n=0;
LCD_Init(); for(k=0;k<6;k++)
disp_hz(1,1+k,HZ0[k]); for(n=0;n<10;n++)
disp_zf(2,3+n,FZ0[n]); while(1){;}; }
//初始化 //显示安徽工业大学 //显示 I LOVE YOU
共分享92篇相关文档