找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1556|回复: 2
打印 上一主题 下一主题
收起左侧

求高手帮忙用stc12c有sd卡做的lcd12864显示屏显示乱码

[复制链接]
跳转到指定楼层
楼主
100黑币
求救啊搞了一天了还是乱码这是

  1. #include <reg52.h>
  2. #include "intrins.h"

  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. sbit rs  =  P2^6;      //寄存器选择输入
  6. sbit rw  =  P2^5;      //液晶读/写控制
  7. sbit en  =  P2^7;      //液晶使能控制
  8. sbit psb =  P3^2;      //串/并方式控制
  9. sbit rst =  P3^4;      //液晶复位端口        

  10. void lcd_com(uchar com);
  11. void lcd_dat(uchar dat);
  12. void lcd_busy();
  13. void lcd_dis(uchar *table);
  14. void lcd_int();



  15. void delay(uint z)
  16. {
  17.         uchar i;
  18.         while(z--)
  19.         for(i=10;i>0;i--);
  20. }

  21. void lcd_busy(void)   //忙检测
  22. {
  23.         uchar busy;
  24. rs=0; rw=1;
  25.   do{
  26.      en=1;
  27.          _nop_();
  28.          _nop_();
  29.          busy=P0;
  30.          _nop_();
  31.          _nop_();
  32. en=0;
  33.          }while(busy & 0x80);         
  34. }

  35. void lcd_com(uchar com)
  36. {
  37.         lcd_busy();
  38.         rs=0;//命令01
  39.         rw=0;//写数据
  40.         P0=com;
  41.         en=1;
  42.         _nop_();
  43.         _nop_();
  44.         en=0;

  45. }

  46. void lcd_dat(uchar dat)
  47. {
  48.         lcd_busy();
  49.         rs=1;//数据1
  50.         rw=0;//写方式
  51.         P0=dat;
  52. en=1;
  53.         _nop_();
  54.         _nop_();
  55.         en=0;
  56.         
  57. }

  58. void lcd_int()
  59. {
  60.         psb=1;
  61.         rst=0;
  62.         delay(5);
  63.         rst=1;
  64.         delay(5);        

  65.   
  66.    lcd_com(0x30);
  67.    lcd_com(0x0c);
  68.    lcd_com(0x01);
  69.    lcd_com(0x02);
  70.    lcd_com(0x80);
  71.    delay(50);


  72. }

  73. void lcd_dis(uchar *table)
  74. {
  75.         uchar i,j;
  76. for(i=0;i<32;i++)
  77.   {
  78.     lcd_com(0x80+i);    //先写入水平坐标值
  79.     lcd_com(0x80);      //写入垂直坐标值
  80.     for(j=16;j>0;j--)   //再写入两个8位元的数据   
  81.     lcd_dat(*table++);  
  82.         delay(1);   
  83.   }

  84.   for(i=0;i<32;i++)
  85.   {
  86.     lcd_com(0x80+i);
  87.     lcd_com(0x88);
  88.     for(j=16;j>0;j--)         
  89.         lcd_dat(*table++);
  90.         delay(1);   
  91.   }
  92. }
复制代码

lcd的程序求各位大神帮忙看看程序哪里出错了

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:290906 发表于 2018-7-16 19:56 | 只看该作者
有明灭变化

IMG_20180716_192542.jpg (4.16 MB, 下载次数: 16)

IMG_20180716_192542.jpg
回复

使用道具 举报

板凳
ID:336165 发表于 2018-7-19 20:10 | 只看该作者
清屏了吗
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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