標(biāo)題:
請問12864網(wǎng)上看的畫點(diǎn)代碼有問題,高八位寫啥,低八位也就寫啥。是不是型號問題
[打印本頁]
作者:
實(shí)習(xí)生呢
時(shí)間:
2017-7-17 19:48
標(biāo)題:
請問12864網(wǎng)上看的畫點(diǎn)代碼有問題,高八位寫啥,低八位也就寫啥。是不是型號問題
請問12864網(wǎng)上看的畫點(diǎn)代碼有問題,高八位寫啥,低八位也就寫啥。是不是型號問題
作者:
feng_2
時(shí)間:
2017-7-18 00:11
這個(gè)程序也是借用人家的,已經(jīng)運(yùn)行過了
//************************打點(diǎn)函數(shù)參數(shù):color=1:該點(diǎn)填充1,顯示;color=0:該點(diǎn)填充0,不顯示************************//
void Fill_Point(uchar x,uchar y, uchar color)
{
uchar x_Dyte,x_byte; //定義列地址的字節(jié)位及在字節(jié)中的哪一位
uchar y_Dyte,y_byte; //上下兩個(gè)屏(0,1),行地址(0~31)
uchar GDRAM_hbit,GDRAM_lbit;
write_cmd(0x36); //擴(kuò)展指令集
//---XY坐標(biāo)互換,即普通的X,Y坐標(biāo)---
x_Dyte=x/16; //計(jì)算在16個(gè)字節(jié)中的哪一個(gè)
x_byte=x&0x0f; //計(jì)算在該字節(jié)中的哪一位
y_Dyte=y/32; //0為上半屏,1為下半屏
y_byte=y&0x1f; //計(jì)算在0~31中的哪一行
write_cmd(0x80+y_byte); //設(shè)定行地址(y坐標(biāo)),即垂直坐標(biāo)
write_cmd(0x80+x_Dyte+8*y_Dyte); //設(shè)定列地址(x坐標(biāo)),并通過8*y_Dyte選定上下,水平地址
ReadData(); //預(yù)讀取數(shù)據(jù)
GDRAM_hbit=ReadData(); //讀取當(dāng)前顯示高八位數(shù)據(jù)
GDRAM_lbit=ReadData(); //讀取當(dāng)前顯示第八位數(shù)據(jù)
delay_1ms(1);
write_cmd(0x80+y_byte); //設(shè)定行地址(y坐標(biāo))
write_cmd(0x80+x_Dyte+8*y_Dyte); //設(shè)定列地址(x坐標(biāo)),并通過8*y_Dyte選定上下,即水平地址
delay_1ms(1);
if(x_byte<8) //判斷其在高八位還是低八位
{
if(color==1)
{
write_dat(GDRAM_hbit|(0x01<<(7-x_byte)));//置位GDRAM高八位數(shù)據(jù)中相應(yīng)的
}
else
write_dat(GDRAM_hbit&(~(0x01<<(7-x_byte))));//清除GDRAM區(qū)高八位數(shù)據(jù)中相應(yīng)的點(diǎn)
write_dat(GDRAM_lbit);//顯示GDRAM區(qū)低八位數(shù)據(jù)
}
else
{
write_dat(GDRAM_hbit);
if(color==1)
write_dat(GDRAM_lbit|(0x01<<(15-x_byte)));//置位GDRAM區(qū)高八位數(shù)據(jù)中相應(yīng)的點(diǎn)
else
write_dat(GDRAM_lbit&(~(0x01<<(15-x_byte))));//清除GDRAM區(qū)高八位數(shù)據(jù)中相應(yīng)的點(diǎn)
}
write_cmd(0x30);//恢復(fù)到基本指令集
}
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1