久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: LCD1602漢字顯示的單片機程序下載 Proteus仿真 [打印本頁]

作者: playboyfa    時間: 2008-8-13 22:57
標題: LCD1602漢字顯示的單片機程序下載 Proteus仿真
明天回家拉,送大家一個1602顯示漢字的程序,懶的寫注釋
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機源程序如下:
  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,/***第一個自定義字符
  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.                                                          }
復制代碼

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



作者: ashore07    時間: 2008-8-29 22:00

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


作者: zx123456    時間: 2008-12-17 16:01

謝了


作者: ab560    時間: 2008-12-27 20:46
1602怎么顯示漢字?
作者: j10247666    時間: 2008-12-31 23:17


作者: yfpbird    時間: 2009-1-1 16:30

謝謝


作者: tuowai    時間: 2009-3-4 17:48
謝謝
作者: liuhao870822    時間: 2009-4-12 22:56
謝謝了!!!
作者: 請賜教    時間: 2009-4-13 20:05
好東西值得一頂
作者: bbc0574025    時間: 2009-4-17 14:59
謝謝分享
作者: dada7788521    時間: 2009-4-28 20:57


作者: qlasam    時間: 2009-5-1 17:18

我不知道說什么是好


作者: qlasam    時間: 2009-5-1 17:31
還算是吧
作者: dayouzi    時間: 2009-5-4 20:54
謝謝
作者: zmz_0312    時間: 2009-5-7 18:17
先頂后下!
作者: 無語問蒼天    時間: 2009-5-8 00:47
!!!
作者: feng_yun    時間: 2009-5-8 18:09

作者: doubley9898    時間: 2009-5-10 21:29
謝謝了,先下了!等我會了再用
作者: wan51    時間: 2009-5-15 18:35
幾頂后下,支持樓主!!

作者: jjchen723    時間: 2009-5-17 16:55

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


作者: zxr200617    時間: 2009-5-27 13:11
asp文件~~用啥打開??請教了
作者: zhaoyun    時間: 2009-5-29 17:23
下載了就要頂
作者: ming_mf    時間: 2009-6-3 10:05
 不知道如何用!不過還是謝了!

作者: chenqw    時間: 2009-6-9 17:59

謝了


作者: sigeo    時間: 2009-8-12 11:36
謝謝啦^_^
作者: sigeo    時間: 2009-8-12 11:37
把asp改成rar就好咯
作者: 電子民工    時間: 2009-8-12 12:58
這個也能顯漢字?

作者: ljhroom    時間: 2009-8-12 13:55
謝謝樓主的分享
作者: zwmwcj    時間: 2009-9-1 06:58
謝謝了。東西還是很不錯的
作者: wangjian5205    時間: 2009-9-7 17:50
學習
作者: touchme_007    時間: 2009-9-8 00:50
 有人會用嗎?教一教,不知如何用?
作者: audigy    時間: 2009-9-11 23:59
下載了就要頂
作者: dongyulong    時間: 2009-9-12 21:41
1602還能顯漢字?我看看
作者: dongyulong    時間: 2009-9-12 21:52

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


作者: 少將師長    時間: 2009-9-13 16:32
謝謝樓主啦
作者: linjun    時間: 2011-6-4 14:12

謝了

 


作者: liqiwei    時間: 2011-6-14 21:09

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


作者: ITAngel    時間: 2016-4-2 20:23
看看。。怎么樣 啊?
作者: xuwei517    時間: 2017-5-6 14:36
十分感謝         




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 精品视频www | 日韩三级精品 | 日日夜夜操天天干 | 国产高清亚洲 | 欧洲精品在线观看 | 亚洲天堂一区二区 | 91在线精品视频 | 国产女人与拘做受视频 | 91久久精品国产 | 日本国产欧美 | 精品一区在线 | 国产yw851.c免费观看网站 | 日韩欧美中文字幕在线观看 | 一区二区三区四区在线免费观看 | 五月激情六月婷婷 | 久久综合狠狠综合久久 | 网站黄色av | 一本一道久久a久久精品综合蜜臀 | 视频一区中文字幕 | 亚洲一二三区免费 | 欧美在线视频一区二区 | 中文日本在线 | 日韩色视频 | 久久免费视频在线 | 中文字幕一区二区三区日韩精品 | 久久中文字幕一区 | 日韩欧美三级 | 亚洲欧美综合精品久久成人 | 国产久 | 国产精品视频www | 国产高清精品一区二区三区 | 欧美日韩在线免费 | 九九九久久国产免费 | 亚洲精品免费视频 | 日本亚洲一区 | 免费av一区二区三区 | 一级免费毛片 | av网站免费 | 国产91视频播放 | 日本三级网址 | 久久久综合色 |