找回密码
 立即注册

QQ登录

只需一步,快速开始

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

字库LCD12864 指定位置显示一个数字,但占据的是半个汉字位置,剩下的乱码

[复制链接]
ID:310624 发表于 2018-5-9 18:18 | 显示全部楼层 |阅读模式

IMG_20180509_180919.jpg

这是主要程序:

按指定位置显示一个字符,怎样修改才能 显示正常数字

  1. //写数据

  2. void WriteDataLCD(unsigned char WDLCD)

  3. {

  4. ReadStatusLCD(); //检测忙

  5. LCD_RS = 1;

  6. LCD_RW = 0;

  7. LCD_Data = WDLCD;

  8. LCD_E = 1;

  9. LCD_E = 1;

  10. LCD_E = 1;

  11. LCD_E = 0;

  12. }

  13. //写指令

  14. void WriteCommandLCD(unsigned char WCLCD,BuysC) //BuysC为0时忽略忙检测

  15. {

  16. if (BuysC) ReadStatusLCD(); //根据需要检测忙

  17. LCD_RS = 0;

  18. LCD_RW = 0;

  19. LCD_Data = WCLCD;

  20. LCD_E = 1;

  21. LCD_E = 1;

  22. LCD_E = 1;

  23. LCD_E = 0;  

  24. }

  25. //读数据

  26. unsigned char ReadDataLCD(void)

  27. {

  28. LCD_RS = 1;

  29. LCD_RW = 1;

  30. LCD_E = 0;

  31. LCD_E = 0;

  32. LCD_E = 1;

  33. return(LCD_Data);

  34. }

  35. //读状态

  36. unsigned char ReadStatusLCD(void)

  37. {

  38. LCD_Data = 0xFF;

  39. LCD_RS = 0;

  40. LCD_RW = 1;

  41. LCD_E = 1;

  42. while (LCD_Data & Busy); //检测忙信号

  43. LCD_E = 0;

  44. return(LCD_Data);

  45. }

  46. void LCDInit(void) //LCM初始化

  47. {

  48. WriteCommandLCD(0x30,1); //显示模式设置,开始要求每次检测忙信号

  49. WriteCommandLCD(0x01,1); //显示清屏

  50. WriteCommandLCD(0x06,1); // 显示光标移动设置

  51. WriteCommandLCD(0x0C,1); // 显示开及光标设置

  52. }

  53. void LCDClear(void) //清屏

  54. {

  55. WriteCommandLCD(0x01,1); //显示清屏

  56. WriteCommandLCD(0x34,1); // 显示光标移动设置

  57. WriteCommandLCD(0x30,1); // 显示开及光标设置

  58. }

  59. //按指定位置显示一个字符

  60. void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData)

  61. {

  62. if(Y<1)

  63.         Y=1;

  64. if(Y>4)

  65.         Y=4;

  66. X &= 0x0F; //限制X不能大于16,Y不能大于1

  67. switch(Y){

  68.         case 1:X|=0X80;break;

  69.         case 2:X|=0X90;break;

  70.         case 3:X|=0X88;break;

  71.         case 4:X|=0X98;break;

  72.         }

  73. WriteCommandLCD(X, 0); //这里不检测忙信号,发送地址码

  74. WriteDataLCD(DData);

  75. }
复制代码


回复

使用道具 举报

ID:688062 发表于 2020-2-27 20:51 | 显示全部楼层
遇到同样的问题
回复

使用道具 举报

ID:409095 发表于 2021-4-20 14:26 | 显示全部楼层
这个屏不好用坐标只能控制1-4行1-8列,每个坐标都是以一个汉字大小,字符和数字没法任意位置
回复

使用道具 举报

ID:91732 发表于 2022-4-7 18:27 | 显示全部楼层
//unsigned char code data[10]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};//"0123456789"
unsigned char data[10] = {'0','1','2','3','4','5','6','7','8','9'};
使用这两个都可以
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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