找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1206|回复: 10
收起左侧

关于LCD12864画点

[复制链接]
ID:958114 发表于 2021-8-1 16:01 | 显示全部楼层 |阅读模式
一块12864的液晶屏,我参考了网上画点的程序,按照扩展指令,输入水平座标,垂直坐标,再输入两个字节的信息,但屏没有变化,没有显示该有的点。而且有时上电还会花屏,请问大佬,这是咋回事
回复

使用道具 举报

ID:452950 发表于 2021-8-1 20:17 | 显示全部楼层
要不网上的程序有问题呗,要不是你改出问题
回复

使用道具 举报

ID:958114 发表于 2021-8-1 20:20 | 显示全部楼层
xxpp2011 发表于 2021-8-1 20:17
要不网上的程序有问题呗,要不是你改出问题

我这个屏刚刚显示字符都出错了,位置和字符都不对。而且开关开闭之后状态还会变,但程序应该是没问题的,就是很基层的函数。
回复

使用道具 举报

ID:155507 发表于 2021-8-1 21:27 | 显示全部楼层
单片机程序是要针对相应的硬件环境的

这种问题最好是电路和程序一起发上来,不然就是"开局一句话,过程全靠猜"
回复

使用道具 举报

ID:958114 发表于 2021-8-1 21:36 | 显示全部楼层
  1. void LCD_WriteOneByte(unsigned char date,unsigned char cmd) //写一个字节(data,(1数据0指令))
  2. {
  3.         //使用8位数据通信模式,8位数据用的是PB口,对应12864的D0~D7(12864的数据I/O)
  4.         RW=0;        //RW=0;设置写入模式(对应12864的RW)
  5.         if (cmd) RS=1;//高数据 低指令(对应12864的RS)
  6.         else RS=0;
  7.         EN=1;//使能拉高(对应12864的EN)
  8.         PORTB = date;//给数据到I/O
  9.         delay_us(10);//等电平稳定
  10.         EN=0;//使能拉低,数据送出完毕
  11.         delay_us(100);//等12864接收完毕
  12. }
  13. void LCD_Init()
  14. {
  15.         ///文字显示模式初始化代码
  16.         LCD_WriteOneByte(0x30,0);delay_ms(40);
  17.         LCD_WriteOneByte(0x30,0);delay_ms(40);//设置8位数据总线,执行基本指令集
  18.         LCD_WriteOneByte(0x0c,0);delay_ms(40);//开显示,关光标,关光标闪烁       
  19.         LCD_WriteOneByte(0x02,0);delay_ms(40);//游标移动到起始位置
  20.         LCD_WriteOneByte(0x01,0);delay_ms(40);//清屏
  21. /**/        /*//绘图模式
  22.         LCD_WriteOneByte(0x30,0);_delay_ms(20);
  23.         LCD_WriteOneByte(0x30,0);_delay_ms(20);//设置8位数据总线,执行基本指令集
  24.         LCD_WriteOneByte(0x01,0);_delay_ms(10);//清屏
  25.         LCD_WriteOneByte(0x0c,0);_delay_ms(10);//开显示,关光标,关光标闪烁
  26.         LCD_WriteOneByte(0x01,0);_delay_ms(10);//清屏
  27.         LCD_WriteOneByte(0x36,0);_delay_ms(20);//开绘图
  28.         _delay_ms(10);
  29.         */
  30. }  /**/
  31. void  main()
  32. {
  33.         LCD_Init();       
  34.         delay_ms(5);
  35.         P12=0;
  36.         LCD_WriteOneByte(0x80,0);
  37.         delay_ms(5);
  38.         P11=0;
  39.         LCD_WriteOneByte('A',1);
  40.         delay_ms(3);
  41.         P10=0;
  42.         while(1);       
  43. }
复制代码
回复

使用道具 举报

ID:958114 发表于 2021-8-1 21:37 | 显示全部楼层
电路是直插的
回复

使用道具 举报

ID:155507 发表于 2021-8-1 22:59 | 显示全部楼层
LCD12864液晶显示都是通常使用的液晶,有人以为12864是一个统一的编号,而实际有两种,一种是以KS0108为主控芯片的,不带字库的,说白了就是只能靠打点才能显示出字符或图形的,当然要借助取模软件;另一种是以ST7920为主控芯片的,带ASCII码和中文字库。显示汉字时可以直接输入汉字

LCD12864还有一种是以 st7565为主控芯片的, 是串口的,  是10脚

这个要看你的硬件电路了

回复

使用道具 举报

ID:958114 发表于 2021-8-2 04:47 来自手机 | 显示全部楼层
主控芯片是st7920带中文字库的,然后打点按照上面方法,他好像不能识别水平垂直坐标似的,但是已经写了扩展指令了
回复

使用道具 举报

ID:155507 发表于 2021-8-2 08:03 | 显示全部楼层
你的单片机型号是什么
你这个程序只发这一点,别人也帮你查不了。

电路是直插的

你这是使用开发板 ,开发板原理图得提供啊
回复

使用道具 举报

ID:958114 发表于 2021-8-2 08:52 来自手机 | 显示全部楼层
单片机型号是stc8a8k
回复

使用道具 举报

ID:958114 发表于 2021-8-2 08:53 来自手机 | 显示全部楼层
开发板没有原理图,是直接拿杜邦线连的
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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