1024手机基地看电影,午夜福利视频导航,国产精品福利在线一区,亚洲欧美日韩另类成人,在线观看午夜日本理论片,成年超爽免费网站,国产精品成人免费,精品动作一级毛片,成人免费观看网站,97精品伊人久久大香蕉

標題: LCD44780顯示實驗(1602) [打印本頁]

作者: masd    時間: 2018-11-13 09:53
標題: LCD44780顯示實驗(1602)
關于LCD在單片機中的使用

單片機源程序如下:
  1. #include <reg52.h>
  2. #include <intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. #define out P0
  6. sbit rs=P2^0;
  7. sbit rw=P2^1;
  8. sbit e=P2^2;
  9. //////////////////////////
  10. void check_busy(void);
  11. void write_command(uchar com);
  12. void write_data(uchar dat);
  13. void LCD_initial(void);
  14. void string(uchar ad ,uchar *s);
  15. void lcd_test(void);
  16. void delay(uint);
  17. /////////////////////////////////////////////////////////////////////////////
  18. /////////////////////////////////////////////////////////////////////////////
  19. ////////////////////主程序///////////////////////////////////////////////////
  20. /////////////////////////////////////////////////////////////////////////////
  21. /////////////////////////////////////////////////////////////////////////////
  22. void main(void)
  23. {
  24. LCD_initial();       
  25. while(1)
  26.         {
  27.         string(0x84,"WINDWAY");
  28.         string(0xC2,"A GOOD NEWS");
  29.         delay(100);
  30.         write_command(0x01);//清屏
  31.         delay(100);                       
  32.         }
  33. }
  34. //1ms延時程序
  35. void delay(uint j)
  36. {
  37. uchar i=250;
  38. for(;j>0;j--)
  39.         {
  40.         while(--i);
  41.         i=249;
  42.         while(--i);
  43.         i=250;
  44.         }
  45. }
  46. //查忙程序
  47. void check_busy(void)
  48. {
  49. uchar dt;
  50. do
  51. {
  52. dt=0xff;
  53. e=0;
  54. rs=0;       
  55. rw=1;
  56. e=1;
  57. dt=out;
  58. }while(dt&0x80);
  59. e=0;
  60. }
  61. //寫控制指令
  62. void write_command(uchar com)
  63. {
  64. check_busy();
  65. e=0;
  66. rs=0;
  67. rw=0;
  68. out=com;
  69. e=1;
  70. _nop_();
  71. e=0;
  72. delay(1);
  73. }
  74. //寫數據指令
  75. void write_data(uchar dat)
  76. {
  77. check_busy();
  78. e=0;
  79. rs=1;
  80. rw=0;
  81. out=dat;
  82. e=1;
  83. _nop_();
  84. e=0;
  85. delay(1);       
  86. }
  87. //液晶屏初始化
  88. void LCD_initial(void)
  89. {
  90.         write_command(0x38);//8位總線,雙行顯示,5X7的點陣字符
  91.         write_command(0x0C);//開整體顯示,光標關,無黑塊
  92.         write_command(0x06);//光標右移
  93.         write_command(0x01);//清屏
  94.         delay(1);
  95. }
  96. //輸出字符串
  97. void string(uchar ad,uchar *s)
  98. {
  99. write_command(ad);
  100. while(*s>0)
  101.         {
  102.         write_data(*s++);
  103.         delay(100);
  104.         }
  105. }
復制代碼

所有資料51hei提供下載:
21(LCD44780顯示實驗).rar (63.66 KB, 下載次數: 4)









歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1