找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4652|回复: 0
打印 上一主题 下一主题
收起左侧

UC1701手册及参考单片机例程

[复制链接]
跳转到指定楼层
楼主
ID:19303 发表于 2019-8-5 12:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
UC1701手册及SPI驱动程序
uc1701x_SPI.rar (3.03 KB, 下载次数: 118)
uc1701.rar (513.15 KB, 下载次数: 109)

单片机源程序如下:
  1. //*****************************************************************
  2. //CONTROL IC:UC1701X
  3. //MODEL TYPE:132*64
  4. //MPU INTERFACE:4-spi

  5. //*****************************************************************
  6. //#include <stdio.h>
  7. //#include <ctype.h>
  8. #include <reg52.h>
  9. #include <intrins.h>
  10.        
  11. sbit CS1 =P3^0;
  12. sbit RST =P3^4;
  13. sbit A0 = P3^5;
  14. sbit SCK =P3^6;
  15. sbit SI = P3^7;
  16. /*
  17. sbit CS1 =P3^7;
  18. sbit RST =P3^6;
  19. sbit A0 = P3^5;
  20. sbit SCK =P3^4;
  21. sbit SI = P3^0;          
  22. */

  23. sbit KEY=P3^2;
  24. /*#define dataport P1
  25. sbit CS1=P3^7;
  26. sbit RES=P3^6;
  27. sbit RS=P3^5;
  28. sbit E_RD=P3^0;
  29. sbit RW=P3^4;
  30. sbit KEY=P3^2;
  31. */

  32. #define Uchar unsigned char
  33. #define Uint  unsigned int
  34. #define somenop();_nop_();_nop_();_nop_();_nop_();


  35. Uchar code snow[]={0xaa,0x55,0xaa,0x55};
  36. Uchar code clear[]={0x00,0x00,0x00,0x00};
  37. Uchar code black[]={0xff,0xff,0xff,0xff};
  38. Uchar code Map1[]={0xff,0x00,0xff,0x00};
  39. Uchar code Map2[]={0xaa,0xaa,0xaa,0xaa};
  40. Uchar code Map4[]={0xf0,0xf0,0x0f,0x0f};
  41. Uchar code Map5[]={0x30,0x30,0x03,0x03};
  42. Uchar code Map3[]={0xc0,0x30,0x0c,0x03};
  43. Uchar code sleepCode[]={0xae,0xa5};
  44. Uchar code pic[];
  45. Uchar code pic1[];
  46. Uchar code pic2[];
  47. Uchar code pic3[];
  48. Uchar code pic4[];
  49. Uchar code pic5[];

  50. Uchar code IC[]={
  51. /*0xe2,   //command reset
  52.                  0xa1,
  53.                  0xc0,
  54.                  0xa2,
  55.                  0x2f,   //power controller set
  56.                                 // 0xfa,
  57.                                 // 0x93,

  58.                  0x26,   //V0 voltage regulator internal resistor ratio set
  59.                  0x81,
  60.                                    0x10,   //electronic volume mode set
  61.                  0xaf    //display on       
  62. */
  63.                                  0xe2,
  64.                                  0xa2,
  65.                                 //0xa0,
  66.                                 //0xc0,       
  67.                                  0xa1,
  68.                                  0xc0,                         
  69.                                  0x40,
  70.                                  0xa2,  // BR
  71.                         //   0x2c,
  72.                         //         0x2e,
  73.                                  0x2f,  
  74.                         //         0xad,
  75.                                  0x26, //24
  76.                                  0x81,
  77.                              0x08,
  78.                                  0xaf,
  79.                  };
  80. //----------------------------------------------------------
  81. void Delay(Uint times)
  82.   {
  83.    while(times)
  84.    {
  85.     times--;
  86.    }
  87.   }
  88. //----------------------------------------------------------
  89. void M_Delay(Uint NOs)
  90.   {
  91.    while(NOs)
  92.    {
  93.     Delay(200);
  94.     NOs--;
  95.    }
  96.   }

  97. void WriteData(Uchar data1, bit di)
  98. {
  99.        Uchar i,temp;
  100.         CS1=0;
  101.                 A0=di;
  102.                 for(i=0;i<8;i++)
  103.                     {
  104.                   SCK=0;
  105.                   temp=data1;
  106.                   SI=(bit)(temp&0x80);
  107.                  
  108.                   somenop();
  109.               SCK=1;
  110.           temp=data1<<1;
  111.               data1=temp;
  112.                      }
  113.         CS1=1;
  114.                 A0=~di;   
  115. }

  116. void  Waitkey(void)
  117. {
  118.   M_Delay(200);
  119.   while(KEY);
  120.   M_Delay(200);
  121. }


  122. //----------------------------------------------------------
  123. void Init_lcd(void)
  124.   {
  125.    int i;
  126.    RST=0;
  127.    Delay(200);
  128.    RST=1;
  129.    Delay(500);
  130.    for(i=0;i<14;i++)
  131.    {
  132.     WriteData(IC[i],0);
  133.    }
  134.   }

  135. void sleepmode(unsigned char *p)
  136. {
  137.   unsigned char i;
  138.   for(i=0;i<2;i++)
  139.    {
  140.     WriteData(p[i],0);
  141.    }
  142.    Delay(400);
  143. }

  144. //----------------------------------------------------------
  145. void Displine(Uchar array[])
  146.   {
  147.    Uint i,j,k;
  148.    for(i=0;i<4;i++)
  149.    {
  150.   /*  WriteData(0x40,0);
  151.     WriteData(0xb0|i,0);
  152.     WriteData(0x10,0);
  153.     WriteData(0x00,0);
  154.     */
  155.     WriteData(0x40,0);  //set scroll line
  156.     WriteData(0xb0|i,0);//set page address
  157.     WriteData(0x10,0); //column  msb
  158.     WriteData(0x00,0); //column  lsb       
  159.     for(j=0;j<33;j++)
  160.     for(k=0;k<4;k++)
  161.     {
  162.      WriteData(array[k],1);
  163.     }
  164.    }
  165.   }
  166. //----------------------------------------------------------

  167. //----------------------------------------------------------
  168. void DispPane()
  169.   {
  170.    Uint i,j;
  171.    for(i=0;i<4;i++)
  172.    {
  173.     WriteData(0xb0|i,0);
  174.     WriteData(0x10,0);
  175.     WriteData(0x00,0);
  176.     for(j=0;j<132;j++)
  177.    {
  178.     WriteData(0xff,1);
  179.    }
  180.    }
  181.   
  182.    for(i=0;i<4;i++)
  183.    {
  184.     WriteData(0xb0|i,0);
  185.     WriteData(0x14,0);
  186.     WriteData(0x02,0);
  187.      for(j=0;j<132;j++)
  188.     {
  189.     WriteData(0x00,1);
  190.     }
  191.    }
  192.     for(i=4;i<8;i++)
  193.    {
  194.     WriteData(0xb0|i,0);
  195.     WriteData(0x10,0);
  196.     WriteData(0x00,0);
  197.     for(j=0;j<132;j++)
  198.    {
  199.     WriteData(0x00,1);
  200.    }
  201.    }
  202.    for(i=4;i<8;i++)
  203.    {
  204.     WriteData(0xb0|i,0);
  205.     WriteData(0x14,0);
  206.     WriteData(0x02,0);
  207.      for(j=0;j<132;j++)
  208.     {
  209.     WriteData(0xff,1);
  210.     }
  211.    }
  212.   }
  213. //----------------------------------------------------------

  214. void Dispgraphic(Uchar *p)
  215.     {
  216.            Uchar i,j;
  217.                    for(i=0;i<8;i++)
  218.                    {
  219.                             WriteData(0x40,0);
  220.                             WriteData(0xb0|i,0);
  221.                             WriteData(0x10,0);
  222.                             WriteData(0x04,0);
  223.                             for(j=0;j<128;j++)
  224.                                     {
  225.                                      WriteData(p[i*128+j],1);
  226.                                  }
  227.            }         

  228.   }
  229. void main(void)
  230.   {
  231.    Init_lcd();
  232.    while(1)
  233.    {
  234.    Displine(black);
  235.     M_Delay(20);
  236. //        Waitkey();

  237.     Displine(snow);
  238.     M_Delay(20);
  239. //        Waitkey();
  240.         //sleepmode(sleepCode);
  241.         //M_Delay(400);
  242.         //while(1);
  243.         //Waitkey();
  244.     Displine(Map1);
  245.     M_Delay(20);
  246. //        Waitkey();
  247.     Displine(Map2);
  248.     M_Delay(20);
  249. //        Waitkey();
  250.     Displine(Map3);
  251.     M_Delay(20);
  252. //        Waitkey();

  253.     Displine(Map4);
  254.     M_Delay(20);
  255. //        Waitkey();
  256.         Displine(Map5);
  257.     M_Delay(20);
  258. //        Waitkey();


  259.     Displine(clear);
  260.     M_Delay(20);
  261. //   Waitkey();

  262.         Dispgraphic(pic1);
  263.     M_Delay(40);
  264. //   Waitkey();          

  265.     Dispgraphic(pic2);
  266.     M_Delay(30);
  267. //    Waitkey();  

  268.         Dispgraphic(pic3);
  269.     M_Delay(40);
  270. //   Waitkey();          

  271.     Dispgraphic(pic4);
  272.     M_Delay(30);
  273. //   Waitkey();  

  274.         Dispgraphic(pic5);
  275.     M_Delay(40);
  276.   //  Waitkey();          


  277.    }
  278.   }


  279. /*--  宽度x高度=132x64  --*/

  280. /*--  宽度x高度=128x64  --*/

  281. Uchar code pic1[]={

  282. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  283. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  284. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  285. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  286. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  287. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  288. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  289. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  290. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  291. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  292. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xE0,0x30,0x10,0x30,
  293. 0xE0,0xC0,0x00,0x00,0xC0,0xE0,0x30,0x10,0x30,0xE0,0xC0,0x00,0x10,0x30,0xF0,0xC0,
  294. 0x00,0x10,0xF0,0xF0,0x10,0x00,0x60,0x70,0x10,0x10,0x10,0xF0,0xF0,0x10,0x00,0x00,
  295. 0x00,0xC0,0xF0,0xF0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  296. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  297. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  298. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  299. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  300. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x3F,0x60,0x40,0x60,
  301. 0x3F,0x1F,0x00,0x00,0x1F,0x3F,0x60,0x40,0x60,0x3F,0x1F,0x00,0x00,0x38,0x7C,0x47,
  302. 0x47,0x44,0x7F,0x7F,0x40,0x00,0x20,0x60,0x5F,0x5F,0x44,0x7F,0x7F,0x40,0x40,0x70,
  303. 0x7E,0x4F,0x01,0x47,0x7F,0x78,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  304. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  305. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  306. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  307. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  308. 0x00,0x00,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0xFC,0x00,0x00,0x00,0x08,0x1C,
  309. 0x7C,0xE0,0x80,0x80,0xE0,0x78,0x9C,0x84,0xFC,0xFC,0x40,0x40,0x40,0x40,0x00,0x78,
  310. ……………………

  311. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表