找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1755|回复: 8
收起左侧

求大佬们给个stc8a8k+lcd12864程序的思路?如何从89c51的程序修改?

[复制链接]
ID:943878 发表于 2021-6-24 14:38 来自手机 | 显示全部楼层 |阅读模式
如题
回复

使用道具 举报

ID:328014 发表于 2021-6-24 18:00 | 显示全部楼层
在51hei搜索框输入"15 12864"即可找到,
其实只要在12t的基础上改下延时即可
http://www.51hei.com/bbs/dpj-206996-1.html
回复

使用道具 举报

ID:943878 发表于 2021-6-24 18:18 来自手机 | 显示全部楼层
51hei团团 发表于 2021-6-24 18:00
在51hei搜索框输入"15 12864"即可找到,
其实只要在12t的基础上改下延时即可
http://www.51hei.com/bbs/dp ...

可是都是at89c51和c52的代码,在实物的stc8a8k和lcd12864上显示不出来
回复

使用道具 举报

ID:943878 发表于 2021-6-24 22:49 来自手机 | 显示全部楼层
51hei团团 发表于 2021-6-24 18:00
在51hei搜索框输入"15 12864"即可找到,
其实只要在12t的基础上改下延时即可
http://www.51hei.com/bbs/dp ...

在实物上不能显示出来
回复

使用道具 举报

ID:824490 发表于 2021-6-25 00:36 | 显示全部楼层
红烧肉都端到你面前了,你就不能动动手自己夹块肉送进嘴里?
代码不能改一下吗?就依着stc8与89C51的差别去改改吧。
回复

使用道具 举报

ID:328014 发表于 2021-6-25 00:55 | 显示全部楼层
是的,楼上说的没错,如果你用12t的芯片能显示 你就成了95%了,剩下的只需要你改一下延时即可,你可以参考下黑友们改的:http://www.51hei.com/bbs/dpj-178800-1.html
回复

使用道具 举报

ID:155507 发表于 2021-6-25 01:14 | 显示全部楼层
我给你来个程序试试

  1. #define u8   unsigned char
  2. #define u16  unsigned int
  3. #define u32  unsigned long
  4. #define xu8  unsigned char xdata
  5. #define xu16 unsigned int  xdata
  6. #define xu32 unsigned long xdata

  7. #include "STC8.h"
  8. sbit lcd_rs =P2^0;
  9. sbit lcd_rw =P2^1;
  10. sbit lcd_en =P2^2;
  11. #define lcd_port  P1

  12. sbit hc245_oe =P4^1;
  13. sbit led_en =P3^3;

  14. void LCD_DisString(u8 *str);
  15. void LCD_DisDecimal(u8 d);
  16. void LCD_DisAscll(u8 c);

  17. void LCD_SetDDRAM(u8 adr);
  18. void LCD_SetCGRAM(u8 adr);
  19. void LCD_Init();

  20. void delay_1us();
  21. void delay_5us();
  22. void delay_ms(u16 n);

  23. void delay_1us()   //1us@24.000MHz
  24. {
  25.         u8 a,b;
  26.         for(b=1;b>0;b--)
  27.             for(a=15;a>0;a--);
  28. }

  29. void delay_5us()
  30. {
  31.         u8 a;
  32.         for(a=36;a>0;a--);
  33. }

  34. void delay_ms(u16 n)
  35. {
  36.         u8 a,b;
  37.         while(n--)
  38.         {
  39.                 for(b=79;b>0;b--)
  40.                     for(a=120;a>0;a--);
  41.         }
  42. }

  43. void LCD_Busy()
  44. {
  45.         lcd_port =0xff;
  46.         lcd_rs =0;
  47.         lcd_rw =1;
  48.         delay_1us();
  49.        
  50.         lcd_en =1; delay_1us();
  51.         while(lcd_port &0x80);
  52.         lcd_en =0; delay_1us();
  53. }

  54. void LCD_WrCmd(u8 cmd)
  55. {
  56.         LCD_Busy();
  57.         lcd_rs =0;
  58.         lcd_rw =0;
  59.         lcd_port =cmd;
  60.         delay_1us();
  61.        
  62.         lcd_en =1; delay_1us();
  63.         lcd_en =0; delay_1us();
  64. }

  65. void LCD_WrDat(u8 dat)
  66. {
  67.         LCD_Busy();
  68.         lcd_rs =1;
  69.         lcd_rw =0;
  70.         lcd_port =dat;
  71.         delay_1us();
  72.        
  73.         lcd_en =1; delay_1us();
  74.         lcd_en =0; delay_1us();
  75. }

  76. void LCD_SetDDRAM(u8 adr)
  77. {
  78.         LCD_WrCmd(0x80|adr);
  79. }

  80. void LCD_DisDecimal(u8 d)
  81. {
  82.         LCD_WrDat(d+0x30);
  83. }

  84. void LCD_DisAscll(u8 c)
  85. {
  86.         LCD_WrDat(c);
  87. }

  88. void LCD_DisString(u8 *str)
  89. {
  90.         while(*str!='\0')
  91.         {
  92.                 LCD_DisAscll(*str++);
  93.         }
  94. }

  95. void LCD_Init()
  96. {
  97.         //        LCD_WrCmd(0x01); //清屏
  98.         //        LCD_WrCmd(0x02); //DDRAM地址归位
  99.         LCD_WrCmd(0x08); //开显示
  100.         LCD_WrCmd(0x0C); //地址计数器 +1 -1
  101.         LCD_WrCmd(0x30); //功能设定8位接口,基本指令集
  102. }

  103. void main()
  104. {
  105.         hc245_oe=1;
  106.         led_en =0;
  107.        
  108.         LCD_Init();
  109.         LCD_SetDDRAM(0);
  110.         LCD_DisString("  锄禾日当午,    谁知盘中餐,    汗滴禾下土,    粒粒皆辛苦。  ");
  111.         while(1)
  112.         {

  113.                
  114.         }
  115. }

复制代码
回复

使用道具 举报

ID:226055 发表于 2021-6-28 14:58 | 显示全部楼层
    1、你最好给出你的这部分电路图,单片机是并口还是串口来控制LCD12864屏。附件直接把源码附上,下图给出实验连接图。
555.jpg



    2、还有一点需要注意,目前市场上LCD12864屏生产厂家比较多,大多数程序都是兼容的,但不是所有一定可用。

实验3-3-1:LCD12864屏 - 显示字符汉字实验(并口方式).rar

51.17 KB, 下载次数: 3

回复

使用道具 举报

ID:390416 发表于 2021-7-6 20:39 | 显示全部楼层
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 单片机教程网

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