找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1406|回复: 3
收起左侧

关于单片机+LCD12864屏打点程序疑问

[复制链接]
ID:825883 发表于 2021-7-6 06:47 | 显示全部楼层 |阅读模式
打点子程序如下,其它程序未列出,主程序调用打点子程序,1应该显示一个点才对,请问为何显示一条16个点的横线?
2芯片是STC89C52,烧录软件为STC-ISP V6.88,打开烧录软件,选择好程序文件写入,此时一切正常。
如修改了程序文件,必须再次点击“选择程序文件”后确认一下,才能把修改后的程序文件写入单片机,否则写入的是未修改的程序文件。什么原因?
好像程序小的话就没问题。
void Draw_dots(uchar x,uchar y,uchar color)//********************************打点子程序
{
uchar ROW,xlabel1,xlabel_bit;
uchar Read_H, Read_L;
write_LCD_command(0x34);//
write_LCD_command(0x36);//绘图开
xlabel1=x>>4;//页地址
xlabel_bit=x&0x0f;//页内地址
        if(y<32)//
                ROW=y;
        else
        {ROW=y-32;xlabel1+=8;}
write_LCD_command(ROW+0X80);//
write_LCD_command(xlabel1+0X80);//
ReadByte();//空读
Read_H=ReadByte();
Read_L=ReadByte();
write_LCD_command(ROW+0X80);//垂直地址
write_LCD_command(xlabel1+0X80);//水平地址
  if(xlabel_bit<8)
        {
        switch(color)//颜色设置
        {
                case 0:Read_H&=(~(0x01<<(7-xlabel_bit)));break;//变白
                case 1:Read_H|=(0x01<<(7-xlabel_bit));break;//涂黑
                case 2:Read_H^=(0x01<<(7-xlabel_bit));break;//反转
          default:break;        
        }
        write_LCD_data(Read_H);//写入高、低字节
        write_LCD_data(Read_L);
        }
        else
        {switch(color)//
  {
                case 0:Read_L&=(~(0x01<<(15-xlabel_bit)));break;//
                case 1:Read_L|=(0x01<<(15-xlabel_bit));break;//
                case 2:Read_L^=(0x01<<(15-xlabel_bit));break;//
          default:break;        
        }
        write_LCD_data(Read_H);//
        write_LCD_data(Read_L);
        }        
write_LCD_command(0x30);//回到基本模式
}


回复

使用道具 举报

ID:123289 发表于 2021-7-6 08:27 | 显示全部楼层
本帖最后由 yzwzfyz 于 2021-7-6 10:14 编辑

12864的显示数据是按字节送往屏幕的,即一次至少修改8个显示点,这是最小单位。
你要显示一个点参考方案是:
1、读取与此点相关联的8个点(一个字节)。
2、修改其中你要显示的点的值(0/1)。
3、回送这个改过1位的字节。
达成1、2、3、的方法有多种,这里有许多技巧,不在此啰嗦了。
明白这个道理即可,剩下的自由发挥吧。
回复

使用道具 举报

ID:825883 发表于 2021-7-6 19:46 | 显示全部楼层
谢谢,我再研究下。。。。
回复

使用道具 举报

ID:390416 发表于 2021-7-6 20:38 | 显示全部楼层
OLED12864源代码分享 IIC协议http://www.51hei.com/bbs/dpj-204281-1.html

LCD12864中文资料包 容易看明白 http://www.51hei.com/bbs/dpj-200462-1.html
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表