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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

VK1056技術手冊與驅動程序下載

[復制鏈接]
跳轉到指定樓層
樓主
VK1056驅動程序,在STM32F103下可以運行,51單片機可以自己小改,后面附上封裝和數據手冊


單片機源程序如下:
  1. #include "vk1056b.h"
  2. #include "delay.h"
  3.   

  4. const u8 vk1056B_segtab[9]={14,15,16,17,18,19,20,21,22};
  5. u8 vk1056B_addrbit=6;//驅動ic的ram地址線數A5-A0,
  6. u8 vk1056B_segi,vk1056B_comi;
  7. u8 vk1056B_dispram[14];//顯示RAM buffer只使用低4位,bit0->com0,bit1->com1,bit2->com2,bit3->com3
  8. u8 vk1056B_myram[4]={0x00,0x00,0x00,0x00};



  9. /**
  10.   * @brief  配置Vk1056B通信線GPIO.
  11.   * @param  None
  12.   * @retval None
  13.   */
  14. void Vk1056B_Lowlevel_Init(void)
  15. {
  16.         GPIO_InitTypeDef  GPIO_InitStructure;
  17.        
  18.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB, ENABLE);

  19.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14|GPIO_Pin_15;//通訊線電平不同,可設為開漏輸出,1056B有內部上拉電?                                                                                                       
  20.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;        //通信線電平一樣,可設為推挽輸出?
  21.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  22.   GPIO_Init(GPIOB, &GPIO_InitStructure);

  23.         GPIO_InitStructure.GPIO_Pin =GPIO_Pin_8;       
  24.         GPIO_Init(GPIOA, &GPIO_InitStructure);  
  25. }
  26. void Vk1056B_Init(void)
  27. {       
  28.         Vk1056B_Lowlevel_Init();
  29.         //基本配置
  30.         WriteCommandVk1056B(OSC_OFF);                //00
  31.         WriteCommandVk1056B(OSC_ON);                //01
  32.         WriteCommandVk1056B(DISP_ON);                //03
  33.        
  34.         WriteCommandVk1056B(0x04);
  35.         WriteCommandVk1056B(0x05);
  36.         WriteCommandVk1056B(0x08);

  37.        
  38.         WriteCommandVk1056B(RC32K);     //18
  39.         WriteCommandVk1056B(COM_1_3__4);//29
  40.        
  41.         WriteCommandVk1056B(0x80);
  42.        
  43. //        WriteCommandVk1056B(COM_1_3__3);vk1056B_maxcom=3;        //1/3bias 3com
  44. //        WriteCommandVk1056B(COM_1_3__2);vk1056B_maxcom=2;        //1/3bias 2com
  45. //        WriteCommandVk1056B(COM_1_2__4);vk1056B_maxcom=4;        //1/2bias 4com
  46. //        WriteCommandVk1056B(COM_1_2__3);vk1056B_maxcom=3;        //1/2bias 3com
  47. //        WriteCommandVk1056B(COM_1_2__2);vk1056B_maxcom=2;        //1/2bias 2com
  48.         //上電默認配置(以下未用功能關閉降低功耗)
  49. //        WriteCommandVk1056B(TIMER_DIS);
  50. //        WriteCommandVk1056B(WDT_DIS);
  51. //        WriteCommandVk1056B(BUZZ_OFF);
  52. //        WriteCommandVk1056B(IRQ_DIS);
  53. }
  54. /**
  55.   * @brief  Vk1056B clk
  56.   * @param  None
  57.   * @retval None
  58.   */
  59. void WriteClockVk1056B(void)
  60. {
  61.         WR=0;
  62.         delay_us(10);
  63.         WR=1;
  64.         delay_us(10);
  65. }
  66. /**
  67.   * @brief  Write Vk1056B Command
  68.   * @param  FunctonCode->功能/命令碼
  69.   * @retval None
  70.   */
  71. void WriteCommandVk1056B(unsigned char FunctonCode) //寫命令
  72. {
  73.         u8 Shift = 0x80;
  74.         u8 i;
  75.          
  76.         CS=0;
  77.         delay_us(5);
  78.        
  79.         DATA=1;
  80.         WriteClockVk1056B();
  81.         DATA=0;
  82.         WriteClockVk1056B();
  83.         DATA=0;
  84.         WriteClockVk1056B();

  85.         for(i = 0; i < 8; i++)
  86.         {
  87.          if(Shift & FunctonCode)         //與1000 0000
  88.                 DATA=1;         
  89.          else           
  90.                 DATA=0;
  91.          WriteClockVk1056B();
  92.          Shift = Shift >> 1;
  93.         }
  94.         DATA=0;
  95.         WriteClockVk1056B();        //發送一個 0 16xx中最后一位 X
  96.         CS=1;
  97.         delay_us(5);
  98.         DATA=1;
  99. }
  100. /**
  101.   * @brief  Write 1 data to Vk1056B
  102.   * @param  Addr->寫入ram的地址
  103.   * @param  Databuf->寫入ram的數據
  104.   * @retval None
  105.   */
  106. void Write1DataVk1056B(unsigned char Addr,unsigned char Dat)
  107. {
  108.         unsigned char i;                         //寫數據
  109.         unsigned char Shift;
  110.        
  111.         Shift = 0x20; //屏蔽高3位 只用5位  0010 0000
  112.        
  113.         CS=0;
  114.         delay_us(5);
  115.         DATA=1;
  116.         WriteClockVk1056B();  //101  
  117.         DATA=0;
  118.         WriteClockVk1056B();
  119.         DATA=1;
  120.         WriteClockVk1056B();

  121.         for( i = 0; i < vk1056B_addrbit; i++) //6
  122.         {                    
  123.                 if (Addr & Shift) //與0010 0000
  124.                         DATA=1;
  125.                 else  
  126.                 DATA=0;
  127.                 WriteClockVk1056B();               
  128.                 Shift = Shift >> 1;
  129.         }
  130.   Shift = 0x01;
  131.   for (i = 0; i < 4; i++)   //與0000 0001
  132.         {

  133.                 if( Dat & Shift)
  134.                         DATA=1;
  135.            else  
  136.                 DATA=0;
  137.                 WriteClockVk1056B();
  138.                 Shift = Shift << 1;
  139.         }   
  140.         CS=1;
  141.         delay_us(5);
  142.         DATA=1;
  143. }

  144. /**
  145.   * @brief  Write n data to Vk1056B
  146.   * @param  Addr->寫入ram的起始地址
  147.   * @param  Databuf->寫入ram的數據buffer
  148.   * @param  Cnt->寫入ram的數據個數
  149.   * @retval None                             連續寫模式
  150.   */
  151. void WritenDataVk1056B(unsigned char Addr,unsigned char *Databuf,unsigned char Cnt)
  152. {
  153.         unsigned char i,j;
  154.         unsigned char Shift;
  155.         unsigned char dataval;
  156.        
  157.         CS=0;
  158.         delay_us(5);

  159.         DATA=1;       
  160.         WriteClockVk1056B();  //101
  161.         DATA=0;
  162.         WriteClockVk1056B();  
  163.         DATA=1;
  164.         WriteClockVk1056B();

  165.         Shift = 0x20;    //0010 0000
  166.         for( i = 0; i < 6; i++)
  167.         {                    
  168.                 if (Addr & Shift)
  169.                         DATA=1;               
  170.                 else  
  171.                         DATA=0;
  172.                 WriteClockVk1056B();               
  173.                 Shift = Shift >> 1;
  174.         }
  175.         for (j = 0; j < Cnt; j++)
  176.         {
  177.                 Shift = 0x01;
  178.                 dataval=*Databuf++;
  179.                 for (i = 0; i < 4; i++)
  180.                 {
  181.                         if( dataval & Shift)
  182.                                 DATA=1;                       
  183.                         else  
  184.                                 DATA=0;
  185.                         WriteClockVk1056B();
  186.                         Shift = Shift << 1;
  187.                 }   
  188.         }
  189.         CS=1;       
  190.         delay_us(5);
  191.         DATA=1;
  192. }
  193. /**
  194.   * @brief  lcd全顯或全滅
  195.   * @param  state=1->lcd全亮
  196.   * @param  state=0->lcd全滅
  197.   * @retval None
  198.   */
  199. void Vk1056B_DisAll(unsigned char state)
  200. {
  201.         unsigned char i;
  202.        
  203.         for(i=0;i<14;i++)
  204.         {
  205.                 if(state==1)
  206.                 {
  207.                         vk1056B_dispram[i]=0x0f;
  208.                 }
  209.                 else
  210.                 {
  211.                         vk1056B_dispram[i]=0x00;
  212.                 }
  213.         }
  214.         WritenDataVk1056B(vk1056B_segtab[0],vk1056B_dispram,14);
  215. }


  216. //以下是根據段碼屏廠家給出的表格做的,不同廠家資料程序不同,此處可以跳過不看了
  217. //A顯示
  218. void Vk1056B_Display_A(u8 i)
  219. {
  220.         switch(i)
  221.         {
  222.                 case 0:
  223.                         Vk1056B_On(0,1);
  224.                         Vk1056B_On(0,2);
  225.                         Vk1056B_On(0,4);
  226.                         Vk1056B_On(0,8);

  227.                         Vk1056B_On(1,2);
  228.                         Vk1056B_OFF(1,4);
  229.                         Vk1056B_On(1,8);                               
  230.                         break;
  231.                 case 1:
  232.                         Vk1056B_OFF(0,1);
  233.                         Vk1056B_OFF(0,2);
  234.                         Vk1056B_OFF(0,4);
  235.                         Vk1056B_OFF(0,8);
  236.          
  237.                         Vk1056B_On(1,2);
  238.                         Vk1056B_OFF(1,4);
  239.                         Vk1056B_On(1,8);
  240.                         break;
  241.                 case 2:
  242.                         Vk1056B_On(0,1);
  243.                         Vk1056B_On(0,2);
  244.                         Vk1056B_OFF(0,4);
  245.                         Vk1056B_On(0,8);
  246.                
  247.                         Vk1056B_OFF(1,2);
  248.                         Vk1056B_On(1,4);
  249.                         Vk1056B_On(1,8);
  250.                         break;
  251.                 case 3:
  252.                         Vk1056B_On(0,1);
  253.                         Vk1056B_OFF(0,2);
  254.                         Vk1056B_OFF(0,4);
  255. ……………………

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

所有資料51hei提供下載:
VK1056驅動.zip (3.66 KB, 下載次數: 48)
VK1056技術手冊.zip (1.88 MB, 下載次數: 35)


評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:387856 發表于 2021-5-5 20:39 | 只看該作者
看官方的例程沒看懂,看了這個就看懂了。就是那個連續寫那個函數看不明白,官方的說明太含糊了。直接說連續發送數據不就得了,說的那么抽象。這個博主的一看就明白,點贊
回復

使用道具 舉報

板凳
ID:1041650 發表于 2022-8-8 17:59 | 只看該作者
一看就明白,點贊
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久国产成人午夜av影院武则天 | 久草在线在线精品观看 | 日干夜操| 国产中文字幕在线 | 午夜激情在线视频 | 一级黄色毛片子 | 日韩精品一区二区三区在线播放 | 午夜色播 | 亚洲电影在线播放 | 国产精品视频在线观看 | 黄色成人在线观看 | 亚洲精品自在在线观看 | 久久久成人精品 | 久久精品av | 91精品国产综合久久精品 | 国产情侣一区 | 中文字字幕一区二区三区四区五区 | 99热在这里只有精品 | 欧美黄色网 | 国产一区三区在线 | 日韩一区二区在线看 | 美女黄网 | 黄色在线免费看 | 日韩中文字幕在线视频 | 国产福利资源 | jav成人av免费播放 | 一级看片免费视频囗交动图 | 久久久婷婷| 黄色亚洲| 国产成人精品免高潮在线观看 | 伊人网站在线观看 | 中文字幕一区二区三区日韩精品 | 视频一区在线观看 | 国产欧美一区二区精品久导航 | 九九久久99 | 人人叉 | 国产精品美女久久久久久免费 | av看看| 国产精品国产a | 网站黄色在线免费观看 | 天堂视频中文在线 |