找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

帖子
查看: 20036|回復(fù): 38
收起左側(cè)

LCD1602漢字顯示的單片機(jī)程序下載 Proteus仿真

[復(fù)制鏈接]
ID:2656 發(fā)表于 2008-8-13 22:57 | 顯示全部樓層 |閱讀模式
明天回家拉,送大家一個(gè)1602顯示漢字的程序,懶的寫注釋
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
1.jpg

單片機(jī)源程序如下:
  1. #include<reg51.h>
  2. void enable(void);
  3. void writeaddr(unsigned char m);
  4. void writedata(unsigned char m);
  5. void selfdata(unsigned char m,unsigned char a);
  6. void init(void);
  7. unsigned char writestring(unsigned char m);
  8. unsigned char move(unsigned char m);
  9. void delay10ms(unsigned char time);
  10. void shift(unsigned char s,unsigned char n);
  11. sbit P27=P2^7;
  12. sbit P25=P2^5;
  13. sbit P26=P2^6;
  14. sbit P37=P3^7;
  15. unsigned char s=0xc0;
  16. unsigned char code table[8][8]={
  17. 0x02,0x02,0x0A,0x0A,0x0A,0x04,0x08,0x1F,/***第一個(gè)自定義字符
  18. ***/0x04,0x1F,0x15,0x15,0x17,0x05,0x04,0x1F,
  19. 0x02,0x04,0x0C,0x14,0x04,0x04,0x04,0x1F,
  20. 0x14,0x3F,0x15,0x15,0x14,0x11,0x1F,0x1F,
  21. 0x04,0x08,0x3F,0x0A,0x04,0x0A,0x11,0x1F,
  22. 0x1E,0x0A,0x0F,0x01,0x1F,0x01,0x03,0x1F,
  23. 0x00,0x00,0x07,0x05,0x07,0x00,0x00,0x1F,  
  24. 0x04,0x0A,0x11,0x0E,0x00,0x0E,0x0A,0x0E};
  25. unsigned char code string[]={"oh!wa!wa!wa!"};
  26. main()
  27. {   
  28.        init();
  29.       while(1)   
  30.            {
  31.            selfdata(0x80,1);
  32.                selfdata(0x81,2);
  33.                selfdata(0x82,1);
  34.                selfdata(0x83,2);
  35.            selfdata(0x84,1);
  36.                selfdata(0x85,2);
  37.                shift(s,1);
  38.          
  39.                                   }                      }
  40. void delay10ms(unsigned char time)
  41. {
  42.     unsigned char a,b,c;
  43.      for(a=0;a<time;a++)
  44.        for(b=0;b<10;b++)
  45.            for(c=0;c<120;c++);
  46.                                 }
  47. void enable(void)
  48. {     
  49.                
  50.              P27=1;
  51.         
  52.         P27=0;
  53.                 }
  54. void LCD_BZ(void)
  55. {    P25=0;
  56.          P26=1;
  57.          P27=0;
  58.          P3=0xFF;
  59.      for(P27=1;P37==1; P27=~P27,P27=~P27);
  60.                                                 }
  61. void writeaddr(unsigned char m)
  62. {       LCD_BZ();
  63.        P25=0;
  64.        P26=0;
  65.        P3=m;
  66.        enable();
  67.                              }
  68. void writedata(unsigned char m)
  69. {      LCD_BZ();
  70.        P25=1;
  71.        P26=0;
  72.        P3=m;
  73.        enable();                            }
  74. void init(void)
  75. {     writeaddr(0x01);
  76.       writeaddr(0x0c);
  77.       writeaddr(0x38);           
  78.       writeaddr(0x06);
  79.                          }
  80. void selfdata(unsigned char m,unsigned char a)
  81. {       unsigned char n;
  82.         n=a-1;
  83.               switch(n)
  84.                 {
  85.               case 0:writeaddr(0x40);break;
  86.                           case 1:writeaddr(0x48);break;
  87.                           case 2:writeaddr(0x50);break;
  88.                           case 3:writeaddr(0x58);break;
  89.                           case 4:writeaddr(0x60);break;
  90.                           case 5:writeaddr(0x68);break;
  91.                           case 6:writeaddr(0x70);break;
  92.                           case 7:writeaddr(0x78);break;
  93.                                                              }
  94.                  for(a=0;a<8;a++)
  95.                    writedata(table[n][a]);
  96.          writeaddr(m);
  97.          writedata(n);
  98.                                                  }
  99. unsigned char writestring(unsigned char m)
  100. {     unsigned char a=0,*n=string;   
  101.       writeaddr(m);
  102.           for(;*n!=0;n++)
  103.            {
  104.           writedata(*n);
  105.           a++;                         }
  106.               return(a);                        }
  107. unsigned char move(unsigned char m)
  108. {    static char d=1;
  109.      unsigned char c,all,*p=string,n=0;   
  110.       delay10ms(50);
  111.           writeaddr(0x01);
  112.    
  113.    all=writestring(m+=1);
  114.             if(m+all>0xd0)
  115.             {
  116.                      writeaddr(0xc0);
  117.                  c=d;
  118.            for(n=(m+all-0xd0);n!=0;n--)
  119.            {
  120.                       writedata(*(p+all-d));
  121.                           --d;
  122.                
  123.                                      }
  124.                         
  125.                                 d=c;
  126.                                 d++;
  127.                                 if(d==all+1)
  128.                               {
  129.                                    d=1;
  130.                                            m=0xc0;
  131.                                                        }
  132.                                                                            }
  133.                      s=m+1;
  134.                      return(m);                       }
  135. void shift(unsigned char s,unsigned char n)
  136. {    s-=1;
  137.      for(;n!=0;n--)
  138.                  move(s);
  139.                                                          }
復(fù)制代碼

仿真dsn文件:
Proteus仿真7.5版本.7z (27.8 KB, 下載次數(shù): 393)


回復(fù)

使用道具 舉報(bào)

ID:2902 發(fā)表于 2008-8-29 22:00 | 顯示全部樓層

o(∩_∩)o... 謝謝了

回復(fù)

使用道具 舉報(bào)

ID:7884 發(fā)表于 2008-12-17 16:01 | 顯示全部樓層

謝了

回復(fù)

使用道具 舉報(bào)

ID:7503 發(fā)表于 2008-12-27 20:46 | 顯示全部樓層
1602怎么顯示漢字?
回復(fù)

使用道具 舉報(bào)

ID:8281 發(fā)表于 2008-12-31 23:17 | 顯示全部樓層

回復(fù)

使用道具 舉報(bào)

ID:8151 發(fā)表于 2009-1-1 16:30 | 顯示全部樓層

謝謝

回復(fù)

使用道具 舉報(bào)

ID:9148 發(fā)表于 2009-3-4 17:48 | 顯示全部樓層
謝謝
回復(fù)

使用道具 舉報(bào)

ID:10058 發(fā)表于 2009-4-12 22:56 | 顯示全部樓層
謝謝了�。。�
回復(fù)

使用道具 舉報(bào)

ID:3840 發(fā)表于 2009-4-13 20:05 | 顯示全部樓層
好東西值得一頂
回復(fù)

使用道具 舉報(bào)

ID:11365 發(fā)表于 2009-4-17 14:59 | 顯示全部樓層
謝謝分享
回復(fù)

使用道具 舉報(bào)

ID:11951 發(fā)表于 2009-4-28 20:57 | 顯示全部樓層

回復(fù)

使用道具 舉報(bào)

ID:12060 發(fā)表于 2009-5-1 17:18 | 顯示全部樓層

我不知道說什么是好

回復(fù)

使用道具 舉報(bào)

ID:12060 發(fā)表于 2009-5-1 17:31 | 顯示全部樓層
還算是吧
回復(fù)

使用道具 舉報(bào)

ID:12255 發(fā)表于 2009-5-4 20:54 | 顯示全部樓層
謝謝
回復(fù)

使用道具 舉報(bào)

ID:12397 發(fā)表于 2009-5-7 18:17 | 顯示全部樓層
先頂后下!
回復(fù)

使用道具 舉報(bào)

ID:10354 發(fā)表于 2009-5-8 00:47 | 顯示全部樓層
!!!
回復(fù)

使用道具 舉報(bào)

ID:12470 發(fā)表于 2009-5-8 18:09 | 顯示全部樓層
回復(fù)

使用道具 舉報(bào)

ID:12491 發(fā)表于 2009-5-10 21:29 | 顯示全部樓層
謝謝了,先下了!等我會(huì)了再用
回復(fù)

使用道具 舉報(bào)

ID:11084 發(fā)表于 2009-5-15 18:35 | 顯示全部樓層
幾頂后下,支持樓主��!
回復(fù)

使用道具 舉報(bào)

ID:13003 發(fā)表于 2009-5-17 16:55 | 顯示全部樓層

謝謝樓主~~~~~~~~

回復(fù)

使用道具 舉報(bào)

ID:13481 發(fā)表于 2009-5-27 13:11 | 顯示全部樓層
asp文件~~用啥打開??請(qǐng)教了
回復(fù)

使用道具 舉報(bào)

ID:12718 發(fā)表于 2009-5-29 17:23 | 顯示全部樓層
下載了就要頂
回復(fù)

使用道具 舉報(bào)

ID:13721 發(fā)表于 2009-6-3 10:05 | 顯示全部樓層
 不知道如何用!不過還是謝了!
回復(fù)

使用道具 舉報(bào)

ID:8456 發(fā)表于 2009-6-9 17:59 | 顯示全部樓層

謝了

回復(fù)

使用道具 舉報(bào)

ID:16167 發(fā)表于 2009-8-12 11:36 | 顯示全部樓層
謝謝啦^_^
回復(fù)

使用道具 舉報(bào)

ID:16167 發(fā)表于 2009-8-12 11:37 | 顯示全部樓層
把a(bǔ)sp改成rar就好咯
回復(fù)

使用道具 舉報(bào)

ID:16170 發(fā)表于 2009-8-12 12:58 | 顯示全部樓層
這個(gè)也能顯漢字?
回復(fù)

使用道具 舉報(bào)

ID:16172 發(fā)表于 2009-8-12 13:55 | 顯示全部樓層
謝謝樓主的分享
回復(fù)

使用道具 舉報(bào)

ID:16695 發(fā)表于 2009-9-1 06:58 | 顯示全部樓層
謝謝了。東西還是很不錯(cuò)的
回復(fù)

使用道具 舉報(bào)

ID:16949 發(fā)表于 2009-9-7 17:50 | 顯示全部樓層
學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

ID:15906 發(fā)表于 2009-9-8 00:50 | 顯示全部樓層
 有人會(huì)用嗎?教一教,不知如何用?
回復(fù)

使用道具 舉報(bào)

ID:17102 發(fā)表于 2009-9-11 23:59 | 顯示全部樓層
下載了就要頂
回復(fù)

使用道具 舉報(bào)

ID:17130 發(fā)表于 2009-9-12 21:41 | 顯示全部樓層
1602還能顯漢字?我看看
回復(fù)

使用道具 舉報(bào)

ID:17130 發(fā)表于 2009-9-12 21:52 | 顯示全部樓層

我以為你能寫出什么東西來呢 還是字符手冊(cè)上那些!~

回復(fù)

使用道具 舉報(bào)

ID:16406 發(fā)表于 2009-9-13 16:32 | 顯示全部樓層
謝謝樓主啦
回復(fù)

使用道具 舉報(bào)

ID:27078 發(fā)表于 2011-6-4 14:12 | 顯示全部樓層

謝了

 

回復(fù)

使用道具 舉報(bào)

ID:29335 發(fā)表于 2011-6-14 21:09 | 顯示全部樓層

o(∩_∩)o... 謝謝了

回復(fù)

使用道具 舉報(bào)

ID:111970 發(fā)表于 2016-4-2 20:23 | 顯示全部樓層
看看。。怎么樣 ��?
回復(fù)

使用道具 舉報(bào)

ID:171111 發(fā)表于 2017-5-6 14:36 | 顯示全部樓層
十分感謝         
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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