找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1621|回復(fù): 0
收起左側(cè)

基于51單片機(jī)用LCD顯示字符

[復(fù)制鏈接]
ID:657799 發(fā)表于 2019-12-6 21:32 | 顯示全部樓層 |閱讀模式

簡單的液晶顯示.png

  1. #include<reg51.h>
  2. #include<intrins.h>
  3. sbit RS=P2^0;
  4. sbit RW=P2^1;
  5. sbit E=P2^2;
  6. sbit BF=P0^7;
  7. unsigned char code string[]={"I LIKE 51!"};                 //液晶屏第一行字符,可自行修改
  8. unsigned char code string1[]={" www.torrancerestoration.com "};  //液晶屏第二行字符,可自行修改
  9. void delay1ms()
  10. {
  11. unsigned char i,j;
  12. for(i=0;i<10;i++)
  13. for(j=0;j<33;j++)
  14. ;
  15. }
  16. void delay(unsigned char n)
  17. {
  18. unsigned char i;
  19. for(i=0;i<n;i++)
  20. delay1ms();
  21. }
  22. unsigned char BusyTest(void)
  23. {
  24. bit result;
  25. RS=0;
  26. RW=1;
  27. E=1;
  28. _nop_();
  29. _nop_();
  30. _nop_();
  31. _nop_();
  32. result=BF;
  33. E=0;
  34. return result;
  35. }
  36. void WriteInstruction(unsigned char dictate)
  37. {
  38. while(BusyTest()==1);
  39. RS=0;
  40. RW=0;
  41. E=0;
  42. _nop_();
  43. _nop_();
  44. P0=dictate;
  45. _nop_();
  46. _nop_();
  47. _nop_();
  48. _nop_();
  49. E=1;
  50. _nop_();
  51. _nop_();
  52. _nop_();
  53. _nop_();
  54. E=0;
  55. }
  56. void WriteAddress(unsigned char x)
  57. {
  58. WriteInstruction(x|0x80);
  59. }
  60. void WriteData(unsigned char y)
  61. {
  62. while(BusyTest()==1);
  63. RS=1;
  64. RW=0;
  65. E=0;
  66. P0=y;
  67. _nop_();
  68. _nop_();
  69. _nop_();
  70. _nop_();
  71. E=1;
  72. _nop_();
  73. _nop_();
  74. _nop_();
  75. _nop_();
  76. E=0;
  77. }
  78. void LcdInitiate(void)
  79. {
  80. delay(15);
  81. WriteInstruction(0x38);
  82. delay(5);
  83. WriteInstruction(0x38);
  84. delay(5);
  85. WriteInstruction(0x38);
  86. delay(5);
  87. WriteInstruction(0x0f);
  88. delay(5);
  89. WriteInstruction(0x06);
  90. delay(5);
  91. WriteInstruction(0x01);
  92. delay(5);
  93. }
  94. void main(void)
  95. {
  96. unsigned char i;
  97. LcdInitiate();
  98. delay(10);
  99. while(1)
  100. {
  101. WriteInstruction(0x01);
  102. WriteAddress(0x80);
  103. i=0;
  104. while(string[i]!='\0')
  105. {
  106. WriteData(string[i]);
  107. i++;
  108. delay(150);
  109. }
  110. for(i=0;i<4;i++)
  111. delay(250);
  112. WriteAddress(0x80+0x40);
  113. i=0;
  114. while(string1[i]!='\0')
  115. {
  116. WriteData(string1[i]);
  117. i++;
  118. delay(150);
  119. }
  120. for(i=0;i<4;i++)
  121. delay(250);
  122. }
  123. }
復(fù)制代碼



簡單液晶顯示.zip

15.02 KB, 下載次數(shù): 19, 下載積分: 黑幣 -5

仿真,源文件,HEX文件

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表