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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

stc15f2k60s2玩了兩個月才出來的LCD12232(附原理圖 程序)

[復制鏈接]
跳轉到指定樓層
樓主
ID:400746 發表于 2018-11-8 17:15 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
(stc15f2k60s2)玩了兩個月才出來的LCD12232(附原理圖 程序)
電路原理圖如下:


單片機源程序如下:
  1. #include"LCD12232.H"
  2. unsigned char code wo[]=
  3. {0x20,0x24,0x24,0x24,0xFE,0x23,0x22,0x20,0xFF,0x20,0x22,0xAC,0x20,0x30,0x20,0x00,
  4. 0x00,0x08,0x48,0x84,0x7F,0x02,0x21,0x10,0x09,0x06,0x1A,0x61,0x80,0xE0,0x00,0x00};//我 字模
  5. unsigned char code yeah[4][16]=
  6. {
  7. {/* ASCII 8x16點陣字庫*/
  8. /*  Y[0x0059]    8x16 */
  9. 0x00,0x3C,0x7C,0xC0,0xC0,0x7C,0x3C,0x00,0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00,},
  10. {/* ASCII 8x16點陣字庫*/
  11. /*  e[0x0065]    8x16 */
  12. 0xC0,0xE0,0xA0,0xA0,0xA0,0xE0,0xC0,0x00,0x07,0x0F,0x08,0x08,0x08,0x0C,0x04,0x00,},
  13. {/* ASCII 8x16點陣字庫*/
  14. /*  a[0x0061]    8x16 */
  15. 0x00,0xA0,0xA0,0xA0,0xE0,0xC0,0x00,0x00,0x07,0x0F,0x08,0x08,0x07,0x0F,0x08,0x00,},
  16. {/* ASCII 8x16點陣字庫*/
  17. /*  h[0x0068]    8x16 */
  18. 0x04,0xFC,0xFC,0x40,0x20,0xE0,0xC0,0x00,0x08,0x0F,0x0F,0x00,0x00,0x0F,0x0F,0x00,},

  19. }  ;
  20. unsigned char code gantan[7][32]=
  21. {
  22. {/* GB2312 16x16點陣字庫*/
  23. /* 終[0xD6D5]   16x16 */
  24. 0x20,0x30,0xAC,0x63,0x20,0x10,0x20,0x18,0x17,0xA4,0x44,0xB4,0x0C,0x04,0x00,0x00,
  25. 0x22,0x63,0x22,0x12,0x12,0x12,0x04,0x02,0x21,0x24,0x44,0x48,0x93,0x06,0x02,0x00,
  26. /* GB2312 16x16點陣字庫*/},
  27. /* 于[0xD3DA]   16x16 */
  28. {0x40,0x40,0x42,0x42,0x42,0x42,0x42,0xFE,0x42,0x42,0x42,0x43,0x42,0x60,0x40,0x00,
  29. 0x00,0x00,0x00,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  30. /* GB2312 16x16點陣字庫*/},
  31. {/* GB2312 16x16點陣字庫*/
  32. /* 把[0xB0D1]   16x16 */
  33. 0x10,0x10,0x10,0xFF,0x90,0x50,0x00,0xFC,0x84,0x84,0xFC,0x84,0x84,0xFE,0x04,0x00,
  34. 0x02,0x42,0x81,0x7F,0x00,0x00,0x00,0x3F,0x40,0x40,0x40,0x40,0x40,0x41,0x70,0x00,},
  35. {/* GB2312 16x16點陣字庫*/
  36. /* 你[0xC4E3]   16x16 */
  37. 0x40,0x20,0xF8,0x07,0x40,0x20,0x18,0x0F,0x08,0xC8,0x08,0x08,0x28,0x18,0x00,0x00,
  38. 0x00,0x00,0xFF,0x00,0x00,0x08,0x04,0x43,0x80,0x7F,0x00,0x01,0x06,0x0C,0x00,0x00,},
  39. {/* 點[0xB5E3]   16x16 */
  40. 0x00,0x00,0xC0,0x40,0x40,0x40,0x7F,0x48,0x48,0x48,0x48,0xE8,0x4C,0x08,0x00,0x00,
  41. 0x80,0x40,0x37,0x04,0x14,0x64,0x04,0x14,0x24,0x64,0x04,0x17,0x20,0xC0,0x00,0x00,},
  42. {/* GB2312 16x16點陣字庫*/
  43. /* 亮[0xC1C1]   16x16 */
  44. 0x00,0x02,0x02,0x7A,0x4A,0x4A,0x4A,0x4B,0x4A,0x4A,0x4A,0x7E,0x0B,0x02,0x00,0x00,
  45. 0x04,0x83,0x81,0x41,0x3D,0x05,0x05,0x05,0x05,0x05,0x7F,0x85,0x81,0x85,0xE3,0x00,
  46. /* GB2312 16x16點陣字庫*/},
  47. {/* GB2312 16x16點陣字庫*/
  48. /* 了[0xC1CB]   16x16 */
  49. 0x00,0x02,0x02,0x02,0x02,0x02,0x02,0xE2,0x22,0x12,0x0A,0x06,0x02,0x00,0x00,0x00,
  50. 0x00,0x00,0x00,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,},
  51. } ;
  52. unsigned char code by[2][16]=
  53. {
  54. {/* ASCII 8x16點陣字庫*/
  55. /*  B[0x0042]    8x16 */
  56. 0x04,0xFC,0xFC,0x44,0x44,0xFC,0xB8,0x00,0x08,0x0F,0x0F,0x08,0x08,0x0F,0x07,0x00,},
  57. {/*  y[0x0079]    8x16 */
  58. 0xE0,0xE0,0x00,0x00,0x00,0xE0,0xE0,0x00,0x47,0x4F,0x48,0x48,0x68,0x3F,0x1F,0x00,}
  59. };


  60. sbit        a0=P3^4;
  61. sbit        e1=P5^4;
  62. sbit        e2=P5^5;

  63. //*****************************************************************
  64. //轉換P4口與data的不一致問題
  65. //*****************************************************************
  66. unsigned char zhuan_huan(unsigned char dat)
  67. {
  68.         unsigned char a=0x00;
  69.         a=a|((dat&0x10)>>4);//P40送出dat[4]   也就是a[0]=dat[4]
  70.         a=a|((dat&0x04)>>1);//a[1]=dat[2]
  71.         a=a|((dat&0x20)>>3);//a[2]=dat[5]
  72.         a=a|((dat&0x80)>>4);//a[3]=dat[7]
  73.         a=a|((dat&0x40)>>2);//a[4]=dat[6]
  74.         a=a|((dat&0x01)<<5);//a[5]=dat[0]
  75.         a=a|((dat&0x02)<<5);//a[6]=dat[1]
  76.         a=a|((dat&0x08)<<4);//a[7]=dat[3]
  77.         return a;        
  78. }

  79. //*****************************************************************
  80. //延時函數1ms   stc15單片機
  81. //*****************************************************************
  82. void delay(unsigned int t)
  83. {
  84.         unsigned char i, j,k;
  85.         for(k=0;k<t;k++)
  86. {
  87.         _nop_();
  88.         _nop_();
  89.         _nop_();
  90.         i = 11;
  91.         j = 190;
  92.         do
  93.         {
  94.                 while (--j);
  95.         } while (--i);
  96. }
  97. }

  98. //*****************************************************************
  99. //寫命令
  100. //*****************************************************************
  101. void write_command(unsigned char com,unsigned char flag)
  102. {
  103.         if (flag==0)          //對左屏操作
  104.         {        
  105.                 a0=0;
  106.                 data_port=zhuan_huan(com);
  107.                 e1=1;
  108.                 e2=0;
  109.                 delay(2);
  110.                 e1=0;        
  111.         }
  112.         else if(flag==1) //右屏操作
  113.         {
  114.                 a0=0;
  115.                 data_port=zhuan_huan(com);
  116.                 e2=1;
  117.                 e1=0;
  118.                 delay(2);
  119.                 e2=0;                        
  120.         }
  121.         else if(flag==2)  //both
  122.         {
  123.                  a0=0;
  124.                 data_port=zhuan_huan(com);
  125.                 e2=1;
  126.                 e1=1;
  127.                 delay(2);
  128.                 e1=0;
  129.                 e2=0;        
  130.         }
  131. }

  132. //*****************************************************************
  133. //寫數據
  134. //*****************************************************************
  135. void write_data(unsigned char dat,unsigned char flag)
  136. {
  137.         if (flag==0)          //對左屏操作
  138.         {        
  139.                 a0=1;
  140.                 data_port=zhuan_huan(dat);
  141.                 e1=1;
  142.                 e2=0;
  143.                 delay(2);
  144.                 e1=0;        
  145.         }
  146.         else if(flag==1)
  147.         {
  148.                 a0=1;
  149.                 data_port=zhuan_huan(dat);
  150.                 e2=1 ;
  151.                 e1=0;
  152.                 delay(2);
  153.                 e2=0;                        
  154.         }
  155.         else if(flag==2)
  156.         {
  157.                  a0=1;
  158.                 data_port=zhuan_huan(dat);
  159.                 e2=1;
  160.                 e1=1 ;
  161.                 delay(2);
  162.                 e1=0;
  163.                 e2=0;        
  164.         }
  165. }
  166. //*****************************************************************
  167. //在某行某列寫字符
  168. //*****************************************************************
  169. void write_zifu(unsigned char flag,unsigned char x,unsigned char y, unsigned char code *zf)
  170. {

  171.         unsigned char i;
  172.         unsigned char j;
  173.         if(x==2)
  174.         x=0;
  175.         for(i=0;i<2;i++)
  176.         {
  177.                 write_command(page_add+2*x+i,flag);
  178.                 write_command(col_add+8*y,flag);
  179.                 for(j=0;j<8;j++)
  180.                 {
  181.                 //        write_command(col_add+16*y+j,flag);
  182.                         write_data(zf[8*i+j],flag);
  183.                 }
  184.         }  
  185. }

  186. //*****************************************************************
  187. //寫字符 行范圍1-2,列范圍0-7
  188. //*****************************************************************
  189. void write_hanzi(unsigned char flag,unsigned char x,unsigned char y, unsigned char code *hz)
  190. //flag顯示在哪個屏幕上 x為行0 1;y為列:0 1 2
  191. {

  192.         unsigned char i;
  193.         unsigned char j;
  194.         if(x==2)
  195.         x=0;
  196.         for(i=0;i<2;i++)
  197.         {
  198.                 write_command(page_add+2*x+i,flag);
  199.                 write_command(col_add+16*y,flag);
  200.                 for(j=0;j<16;j++)
  201.                 {
  202.                 //        write_command(col_add+16*y+j,flag);
  203.                         write_data(hz[16*i+j],flag);
  204.                 }
  205.         }  
  206. }
  207.    
  208. //*****************************************************************
  209. //清屏函數
  210. //*****************************************************************
  211. void lcd_clc(void)        //清屏
  212. {
  213.         unsigned char i,j;
  214.         for(j=0;j<4;j++)  //四頁
  215.         {
  216.                 write_command(page_add+j,2);
  217.                 for(i=0;i<80;i++)
  218.                 {
  219.                         write_command(col_add+i,2);
  220.                         write_data(0x00,2);        
  221.                 }                        
  222.         }
  223. }

  224. //*****************************************************************
  225. //初始化函數
  226. //*****************************************************************
  227. void lcd_initial(void)
  228. {
  229.         P5M0=0Xff;
  230.         P5M1=0X00;
  231.         P3M0=0Xff;
  232.         P3M1=0X00;
  233.         P4M0=0Xff;
  234.         P4M1=0X00;                  //全部為推挽輸出
  235.         write_command(0xa4,2);//正常驅動
  236.         write_command(0xa9,2);//1/32duty   每個com的占空比
  237.         write_command(0xa0,2);//顯示方向為a1正向a0反向
  238.         write_command(start_line,2);//設置顯示行
  239.         write_command(page_add,2);
  240.         write_command(col_add,2);
  241.         write_command(0xaf,2);        //開顯示
  242.         write_command(0xee,2);
  243.         lcd_clc();
  244. }
復制代碼

word格式的原理圖與Keil代碼下載:
LCD12232_stc15.rar (78.69 KB, 下載次數: 71)


評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:399179 發表于 2018-11-8 18:25 來自手機 | 只看該作者
感謝分享,學習中
回復

使用道具 舉報

板凳
ID:208271 發表于 2019-5-26 08:22 | 只看該作者
程序是源文件,原理圖非源文件,是DOC文件,看看吧
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕国产 | 一区亚洲 | 成人二区 | 日日综合 | 成av在线| 免费一区二区三区 | 国产伦一区二区三区 | 亚洲最大成人综合 | 中文字幕在线观看 | 国产精品久久久久久亚洲调教 | 精品麻豆剧传媒av国产九九九 | 亚洲激情视频在线 | 国产精品视屏 | 亚洲狠狠爱一区二区三区 | 国产精品a久久久久 | 免费在线一区二区三区 | 看av片网站 | 亚洲精品久久久9婷婷中文字幕 | 美女爽到呻吟久久久久 | 欧美一区二区三区在线观看 | 日本高清视频网站 | 男人的天堂视频网站 | 91精品国产91久久久久游泳池 | 亚洲网站在线观看 | 国产午夜精品一区二区三区嫩草 | 久久久婷婷| 精品国产精品三级精品av网址 | 黄a网站 | 久久天天躁狠狠躁夜夜躁2014 | 亚洲精品乱码久久久久久久久久 | 久久久久亚洲 | 亚洲福利网 | 精品视频一区二区三区在线观看 | 国产成人免费视频网站视频社区 | 亚洲欧美在线视频 | 免费在线观看一区二区三区 | 国产精品1区2区3区 一区中文字幕 | 91视频一区二区三区 | 精品国产乱码一区二区三 | 久久里面有精品 | 亚洲精品丝袜日韩 |