微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 请教51单片机的12864液晶显示问题

请教51单片机的12864液晶显示问题

时间:10-02 整理:3721RD 点击:
请教51单片机的12864液晶显示问题

麻烦高手帮忙解释fyd12864液晶的这个程序,我就是搞不懂,先谢谢了

  1. #include<reg52.h>
  2. #define uchar unsigned char  

  3. #define uint unsigned int
  4. uchar code HZ12[]={"欢迎您!"};

  5. uchar code HZ16[]={"学习单片机!"};
  6. /*void init()
  7. {
  8. TMOD=0x20;
  9. //设置定时器1为工作方式2
  10. TH1=0xfd;     //装入初值
  11. TL1=0xfd;
  12. TR1=1; //启动定时器1

  13. SCON=0x50; //选择串行口为工作方式2
  14. EA=1;
  15. ES=1;
  16. }*/

  17. void send_char(uchar sendc)
  18. {
  19. SBUF=sendc;
  20. while(TI==0);

  21. TI=0;
  22. }
  23. void delay(uchar x)
  24. {
  25. int i,j;

  26. for(i=0;i<=x;i++)
  27. for(j=110;j>0;j--);
  28. }

  29. void display(uchar a,uchar x,uchar y,uchar *p)
  30. {
  31.   send_char(a);

  32. send_char(x);
  33. send_char(y);
  34. while(*p!='\0')
  35. {
  36. send_char(*p);

  37. p++;
  38. }
  39. send_char(0x0d);
  40. send_char(0x0a);

  41. }


  42. void main()
  43. {
  44. TMOD=0x20;
  45. TL1=0xfd;
  46. TH1=0xfd;

  47. SCON=0x58;
  48. PCON=0x00;
  49. TR1=1;
  50. EA=1;
  51. ES=1;
  52. display(HZ12);

  53. delay(100);
  54. send_char(0x12);
  55. send_char(0);
  56. delay(100);

  57. display(HZ16);
  58. delay(100);
  59. while(1);
  60. }

复制代码


要想弄懂程序,还要看它的硬件。光从程序来看,LCD是串口的,直接连接单片机RXD和TXD两个脚就可以了。但是你最好去查看它的LCD文档资料是怎么说的,怎么写数据,命令等。

不懂!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top