久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
請教一下,為什么lcd12864打點的時候會出現別的點
[打印本頁]
作者:
1234sf
時間:
2023-12-15 17:20
標題:
請教一下,為什么lcd12864打點的時候會出現別的點
這是lcd的一些函數
void delay(unsigned int xms) //延時//
{
unsigned char i,j;
for(j = 0; j < xms; j++)
{
for(i = 0;i < 110;i++);
}
}
bit LcdBusyCheck(){
bit result;
LCD12864_RS = 0;
LCD12864_RW = 1;
LCD12864_EN = 1;
delay(1);
result = (bit)(DATA_PORT&0x80);
LCD12864_EN = 0;
return result;
}
void WriteCmdToLCD(unsigned char cmd)
{
while(LcdBusyCheck());
// delay(10);
LCD12864_RS = 0;
LCD12864_RW = 0;
LCD12864_EN = 1;
delay(1);
DATA_PORT = cmd;
// delay(5);
LCD12864_EN = 0;
// delay(5);
// LCD12864_EN = 1;
}
void WriteDatToLcd(unsigned char dat)
{
while(LcdBusyCheck());
// delay(10);
LCD12864_RS = 1;
LCD12864_RW = 0;
LCD12864_EN = 1;
delay(1);
DATA_PORT = dat;
// delay(5);
LCD12864_EN = 0;
// delay(5);
// LCD12864_EN = 1;
}
void WriteStrToLcd(unsigned char *str)
{
while(*str != '\0')
{
WriteDatToLcd(*str++);
delay(5);
}
}
unsigned char ReadLcd(void)
{
unsigned char dat;
//DATA_PORT=0xff;
while(LcdBusyCheck());
LCD12864_RS=1;
LCD12864_RW=1;
LCD12864_EN=0;
LCD12864_EN=1;
dat=DATA_PORT;
LCD12864_EN=0;
return dat;
}
void DrawDots(unsigned char i,unsigned char j)//打點函數 //x,y為128*64 點陣的坐標
{
unsigned char row,xlabel,xlabel_bit,x,y;
unsigned char Read_H=0,Read_L=0;
x = i+6;
y = 64-j-5;
WriteCmdToLCD(0x34); //擴充指令
WriteCmdToLCD(0x36); //繪圖指令
xlabel=x>>4; //確定水平坐標地址
xlabel_bit=x & 0x0F; // 細分水平坐標中的第幾位
if(y<32) row=y;
else { row=y-32; xlabel+=8; }
WriteCmdToLCD(row+0x80);
WriteCmdToLCD(xlabel+0x80);
ReadLcd();
Read_H=ReadLcd();
Read_L=ReadLcd();
WriteCmdToLCD(row+0x80);
WriteCmdToLCD(xlabel+0x80); //水平坐標地址+基址=顯示的水平地址
if(xlabel_bit<8)
{
// Read_H &=(~(0x01<<(7-xlabel_bit))); //變暗
Read_H |=(0x01<<(7-xlabel_bit)); //變亮
// Read_H = Read_H;
WriteDatToLcd(Read_H);
WriteDatToLcd(Read_L);
}
else
{
//Read_L &=(~(0x01<<(15-xlabel_bit))); //變暗
Read_L |=(0x01<<(15-xlabel_bit)); //變亮
// Read_L=Read_L;
WriteDatToLcd(Read_H);
WriteDatToLcd(Read_L);
}
// WriteDatToLcd(Read_H);
// WriteDatToLcd(Read_L);
WriteCmdToLCD(0x30);//恢復正常模式
}
void Clear_GDRAM() //清除GDRAM
{
unsigned char x,y;
for(y=0;y<64;y++)
{
for(x=0;x<16;x++)
{
WriteCmdToLCD(0x34);
WriteCmdToLCD(y+0x80); //先送垂直地址
WriteCmdToLCD(x+0x80); //后送水平地址
WriteCmdToLCD(0x30); //基本指令
WriteDatToLcd(0x00); //寫入數據0
WriteDatToLcd(0x00);
}
}
}
這是主函數里面的循環打點
for(i=5;i<50;i++)
{
DrawDots(i,i);
delay(100);
}
IMG_2669.JPG
(991.2 KB, 下載次數: 34)
下載附件
2023-12-15 17:19 上傳
作者:
hspirit3
時間:
2023-12-16 08:21
可能延時不夠,或者打點過程中 被中斷打斷了
作者:
1234sf
時間:
2023-12-18 16:59
檢查了一下發現是讀取數據函數的問題unsigned char ReadLcd()
{
unsigned char dat = 0;
while(LcdBusyCheck());
DATA_PORT=0xff;
LCD12864_EN=0;
LCD12864_RS=1;
LCD12864_RW=1;
delay(1);
LCD12864_EN=1;
delay(1);
dat=DATA_PORT;
delay(1);
LCD12864_EN=0;
return dat;
}
但是不知道怎么糾正
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
日本免费一级片
|
天天色天天色
|
国产美女毛片
|
欧美一级色
|
91精品久久久久久
|
三级久久久
|
成人免费毛片片v
|
欧美一级欧美三级在线观看
|
国产成人a亚洲精品
|
韩日在线视频
|
久久国产一区二区三区
|
亚洲欧美综合另类
|
欧美激情一区二区
|
日日狠狠
|
在线免费看a
|
综合久久久久
|
丁香在线视频
|
在线观看一区
|
一区二区三区免费在线观看
|
看国产毛片
|
欧美精品在线观看视频
|
久久久久网
|
99色在线
|
欧美精品在线视频
|
精品国产一区二区三区久久久蜜月
|
a毛片在线观看
|
91看片在线
|
欧美精品成人
|
日韩激情一区
|
一级真人毛片
|
国产在线视频网站
|
日本加勒比在线观看
|
日韩 国产 欧美
|
国产欧美一区二区三区在线看蜜臀
|
黄视频免费观看
|
黄色三级视频网站
|
久久艹国产
|
国产在线麻豆精品观看
|
日韩精品极品视频在线观看免费
|
91麻豆精品视频
|
亚洲免费小视频
|