欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6945|回復: 11
收起左側

LCD2004A顯示屏的51單片機源程序

  [復制鏈接]
ID:335397 發表于 2018-10-15 11:40 | 顯示全部樓層 |閱讀模式
單片機源程序如下:
  1. /************************************************************************************************/
  2. /***                                       LCD2004液晶顯示屏                                    ***/
  3. /***                                       2016-03-16  Mod By Xiaoyao                         ***/
  4. /************************************************************************************************/
  5. #include<reg52.h>

  6. #define uint unsigned int
  7. #define uchar unsigned char
  8. #define DATA P0                                                                             //定義LCM數據總線P0
  9. sbit RS=P2^4;                                                       //寄存器選擇位(0指令1數據)
  10. sbit RW=P2^5;                                                       //設置讀寫位置(0寫入1讀取)
  11. sbit E=P2^6;                                                        //使能為(0禁止1允許)
  12. sbit BF=P3^3;

  13. uchar line1[]="LCD TEST PROGRAM By ";                                //第一行顯示字符
  14. uchar line2[]="Everything is OK! XY";                                
  15. uchar line3[]="aaaaaaaaaaaaaaaabcde";                              
  16. uchar line4[]="bbbbbbbbbbbbbbbcdefg";                                

  17. void Init_LCD(void);                                                 //聲明液晶初始化函數
  18. void write_cmd(uchar);                                               
  19. void write_data(uchar);                                             
  20. void check_BF(void);                                                
  21. void delay_1ms(uint);                                                
  22. void set_xy(uchar x,uchar y);                                       
  23. void display(uchar x,uchar y,uchar *s);                                                 //聲明顯示函數

  24. /*********************1ms延時函數****************************************************************/
  25. void delay_1ms(uint x)
  26. {
  27.         uint i,j;
  28.         for(i=1;i<x;i++)
  29.         for(j=1;j<110;j++);
  30. }
  31. /*********************液晶初始化函數*************************************************************/
  32. void Init_LCD(void)
  33. {
  34.         write_cmd(0x38);                                                         //設置8位格式,2行5X7
  35.         write_cmd(0x08);                                                         //Tune off screen
  36.         write_cmd(0x01);                                                        
  37.         write_cmd(0x06);                                                        
  38.         write_cmd(0x0c);                                                                             
  39. }
  40. /**********************寫指令函數******************************************************************/
  41. void write_cmd(uchar com)
  42. {
  43.         check_BF();
  44.         E=0;
  45.         RS=0;
  46.         RW=0;
  47.         DATA=com;
  48.         delay_1ms(2);
  49.         E=1;
  50.         delay_1ms(2);
  51.         E=0;
  52.         RS=1;
  53.         RW=1;
  54. }
  55. /**********************寫數據函數*******************************************************************/
  56. void write_data(uchar chardata)
  57. {
  58.         check_BF();
  59.         E=0;
  60.                                 RS=1;
  61.         RW=0;
  62.         DATA=chardata;
  63.         delay_1ms(2);
  64.         E=1;
  65.         delay_1ms(2);
  66.         E=0;
  67.         RS=0;
  68.         RW=1;
  69. }
  70. /**********************判忙函數******************************************************************/
  71. void check_BF(void)
  72. {
  73.        P0=0xff;
  74.        E=0;
  75.        RS=0;
  76.        RW=1;
  77.        E=1;
  78.                          //while((P2&0x80)==0x80);
  79.        E=0;
  80.        RS=1;
  81.        RW=0;        
  82. }
  83. /**********************定義顯示位置*******************************************************************/
  84. void set_xy(uchar x,uchar y)
  85. {
  86.         uchar add;
  87.         if(x==0)
  88.                 add=0x80+y;
  89.         else
  90.                 if(x==1)
  91.                         add=0xc0+y;
  92.         else
  93.                 if(x==2)
  94.                         add=0x94+y;
  95.         else
  96.                 if(x==3)
  97.                         add=0xd4+y;
  98.         write_cmd(add);

  99. }
  100. /**********************顯示函數***********************************************************************/
  101. void displayL(uchar x,uchar y,uchar *s)
  102. {
  103.         set_xy(x,y);
  104.         while(*s)
  105.         {
  106.                 DATA=*s;
  107.                 write_data(*s);
  108.                 s++;
  109.         }
  110. ……………………

  111. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
2004A 51程序.rar (27.47 KB, 下載次數: 100)


評分

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

查看全部評分

回復

使用道具 舉報

ID:1 發表于 2018-10-15 15:16 | 顯示全部樓層
補全原理圖或者詳細說明一下電路連接即可獲得100+黑幣
回復

使用道具 舉報

無效樓層,該帖已經被刪除
ID:1 發表于 2018-10-31 23:48 | 顯示全部樓層
回帖點輸入框右邊的高級模式 上傳圖片
回復

使用道具 舉報

ID:335397 發表于 2018-11-1 07:36 | 顯示全部樓層
連接原理圖
QQ截圖20181031223924.png
QQ截圖20181031223734.png
回復

使用道具 舉報

ID:425509 發表于 2018-11-20 18:50 | 顯示全部樓層
能教下怎么連線嗎
回復

使用道具 舉報

ID:146874 發表于 2019-3-5 09:07 | 顯示全部樓層
感謝樓主分享,正在找的材料
回復

使用道具 舉報

ID:335397 發表于 2019-3-13 21:42 | 顯示全部樓層

實物連線還是AD?
回復

使用道具 舉報

ID:501801 發表于 2019-3-31 16:19 | 顯示全部樓層
這個很不催哦
回復

使用道具 舉報

ID:583668 發表于 2019-7-13 20:43 | 顯示全部樓層
支持一個!!!!!
回復

使用道具 舉報

ID:601037 發表于 2019-8-17 12:33 | 顯示全部樓層
原理圖不合適這個程序吧,程序用的P2^4連的P2^0
回復

使用道具 舉報

12#
無效樓層,該帖已經被刪除
ID:206203 發表于 2020-10-31 16:33 | 顯示全部樓層
寫的不錯,稍微改改就可以用了.
回復

使用道具 舉報

14#
無效樓層,該帖已經被刪除
15#
無效樓層,該帖已經被刪除
16#
無效樓層,該帖已經被刪除
ID:134294 發表于 2022-11-10 12:28 | 顯示全部樓層
我的只顯示上邊兩行怎么回事?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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