找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3269|回復: 0
打印 上一主題 下一主題
收起左側

LCD1602液晶屏顯示I LOVE YOU

[復制鏈接]
跳轉到指定樓層
樓主
ID:102668 發(fā)表于 2016-1-16 05:34 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

  1. #include <reg52.H>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. uchar string1[]={"I LOVE YOU"};
  5. uchar string2[]={"FOR EVER! "};
  6. /****delay1ms***/
  7. /*函數(shù)功能:延時1ms
  8. 參數(shù):count
  9. 返回類型:無
  10. */
  11. void delay1ms(unsigned int count)
  12. {
  13. unsigned int i,j;
  14. for(i=0;i<count;i++)
  15. for(j=0;j<120;j++);
  16. }
  17. /***lcd_busy***/
  18. /*函數(shù)功能:判斷p0.7口是否為1,為1則為忙
  19. 參數(shù):無
  20. 返回類型:p0.7的值
  21. ***/
  22. sbit rs = P2^7;
  23. sbit rw = P2^6;
  24. sbit en = P2^5;
  25. uchar lcd_busy(void)
  26. {uchar busy;
  27. rs=0;
  28. rw=1;
  29. en=1;
  30. delay1ms(1);
  31. busy=P0&0x80;
  32. delay1ms(1);
  33. en=0;
  34. return (busy);
  35. }
  36. /**lcd_write***/
  37. /*函數(shù)功能:向LCD中寫數(shù)據(jù)和命令
  38. 參數(shù):s=0 時向lcd寫命令
  39.      s=1 時向lcd寫數(shù)據(jù)
  40.      date 為要向lcd寫入的數(shù)據(jù)
  41. 返回類型:無
  42. ***/
  43. #define cmd 0
  44. #define dat 1
  45. void lcd_write(uchar s,uchar date)
  46. {while (lcd_busy());
  47. rs=s;
  48. rw=0;
  49. en=1;
  50. delay1ms(1);
  51. P0=date;
  52. delay1ms(1);
  53. en=0;
  54. }
  55. /*****lcd_init****/
  56. /*函數(shù)功能:將lcd進行初始化處理
  57. 參數(shù):無
  58. 返回類型:無
  59. ****/
  60. void lcd_init(void)
  61. {lcd_write(cmd,0x38);   //設置16X2顯示,5X7點陣,8位數(shù)據(jù)接口
  62. lcd_write(cmd,0x0c); //開顯示,不顯示光標,無光標閃爍
  63. lcd_write(cmd,0x06); //AC累加,屏幕不移動
  64. lcd_write(cmd,0x01); //清屏
  65. }
  66. /***lcd_XY****/
  67. /***函數(shù)功能:實現(xiàn)位置定位
  68. 參數(shù):X Y的值
  69. 返回類型:無
  70. ***/
  71. void lcd_xy(uchar x,uchar y)
  72. {
  73. if(y==0)   //表示在第一行顯示
  74.    lcd_write(cmd,0x80|x);
  75. if(y==1) //表示在第二行顯示
  76.    lcd_write(cmd,0x80|0x40|x);
  77. }
  78. /**lcd_print***/
  79. /*****函數(shù)功能:顯示LCD數(shù)據(jù)
  80. 參數(shù):*string
  81. 返回類型:無
  82. ***/
  83. void lcd_print(uchar *string)   //string 表示要顯示的數(shù)據(jù)
  84. {
  85. while(*string!='\0')
  86.    {lcd_write(dat,*string);
  87.     string++;
  88. }
  89. }
  90. /***lcd_display()***/
  91. /*函數(shù)功能:顯示
  92. 參數(shù):無
  93. 返回類型:無
  94. */
  95. void lcd_display()
  96. {lcd_xy(3,0);
  97. lcd_print(string1);
  98. lcd_xy(4,1);
  99. lcd_print(string2);
  100. }
  101. /****主函數(shù)****/
  102. void main()
  103. {
  104. while(lcd_busy());
  105. lcd_init();
  106. while(1)
  107. {
  108.     lcd_display();
  109. }
  110. }
復制代碼


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表