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

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

QQ登錄

只需一步,快速開始

搜索
查看: 6222|回復(fù): 5
打印 上一主題 下一主題
收起左側(cè)

基于stc15單片機(jī)+fdc2214手勢(shì)識(shí)別系統(tǒng),ti杯源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:413838 發(fā)表于 2018-10-23 09:30 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
本代碼是TI杯省賽手勢(shì)識(shí)別代碼,如果需要原理圖的話,我回去整理,畫出來,再分享,顯示用的是串口屏


單片機(jī)源程序如下:
  1. #include "FDCIIC.h"
  2. #include "FDCdelay.h"
  3. //uint8 dis[6];                                        //顯示數(shù)字(-511至512)的字符數(shù)組
  4. //int        dis_data;                                        //變量
  5. //********************************************************************************
  6. //整數(shù)轉(zhuǎn)字符串
  7. //********************************************************************************
  8. //void lcd_printf(uint8 *s,int temp_data)
  9. //{
  10. //        if(temp_data<0)
  11. //        {
  12. //                temp_data=-temp_data;
  13. //                *s='-';
  14. //        }
  15. //        else *s=' ';

  16. //        *++s =temp_data/10000+0x30;
  17. //        temp_data=temp_data%10000;     //取余運(yùn)算

  18. //        *++s =temp_data/1000+0x30;
  19. //        temp_data=temp_data%1000;     //取余運(yùn)算

  20. //        *++s =temp_data/100+0x30;
  21. //        temp_data=temp_data%100;     //取余運(yùn)算
  22. //        *++s =temp_data/10+0x30;
  23. //        temp_data=temp_data%10;      //取余運(yùn)算
  24. //        *++s =temp_data+0x30;        
  25. //}






  26. //*************************************************************************************************
  27. //I2C起始信號(hào)
  28. //*************************************************************************************************
  29. void I2C_Start()
  30. {
  31.     SDA = 1;                    //拉高數(shù)據(jù)線
  32.     SCL = 1;                    //拉高時(shí)鐘線
  33.     Delay5us();                 //延時(shí)
  34.     SDA = 0;                    //產(chǎn)生下降沿
  35.     Delay5us();                 //延時(shí)
  36.     SCL = 0;                    //拉低時(shí)鐘線
  37. }
  38. //*************************************************************************************************
  39. //I2C停止信號(hào)
  40. //*************************************************************************************************
  41. void I2C_Stop()
  42. {
  43.     SDA = 0;                    //拉低數(shù)據(jù)線
  44.                 SCL = 0;
  45.                 Delay5us();
  46.     SCL = 1;                    //拉高時(shí)鐘線
  47.     Delay5us();                 //延時(shí)
  48.     SDA = 1;                    //產(chǎn)生上升沿
  49.     //Delay5us();                 //延時(shí)
  50. }
  51. //**************************************************************************************************
  52. //I2C發(fā)送應(yīng)答信號(hào)
  53. //入口參數(shù):ack (0:ACK 1:NAK)
  54. //**************************************************************************************************
  55. void I2C_SendACK(bit ack)
  56. {
  57.     SDA = ack;                  //寫應(yīng)答信號(hào)
  58.     SCL = 1;                    //拉高時(shí)鐘線
  59.     Delay5us();                 //延時(shí)
  60.     SCL = 0;                    //拉低時(shí)鐘線
  61.     Delay5us();                 //延時(shí)
  62. }
  63. //****************************************************************************************************
  64. //I2C接收應(yīng)答信號(hào)
  65. //****************************************************************************************************
  66. bit I2C_RecvACK()
  67. {
  68.     SCL = 1;                    //拉高時(shí)鐘線
  69.     Delay5us();                 //延時(shí)
  70.     CY = SDA;                   //讀應(yīng)答信號(hào)
  71.     SCL = 0;                    //拉低時(shí)鐘線
  72.     Delay5us();                 //延時(shí)
  73.     return CY;
  74. }
  75. //*****************************************************************************************************
  76. //向I2C總線發(fā)送一個(gè)字節(jié)數(shù)據(jù)
  77. //*****************************************************************************************************
  78. void I2C_SendByte(uint8 dat)
  79. {
  80.     uint8 i;
  81.     for (i=0; i<8; i++)         //8位計(jì)數(shù)器
  82.     {
  83.         dat <<= 1;              //移出數(shù)據(jù)的最高位
  84.         SDA = CY;               //送數(shù)據(jù)口
  85.         SCL = 1;                //拉高時(shí)鐘線
  86.         Delay5us();             //延時(shí)
  87.         SCL = 0;                //拉低時(shí)鐘線
  88.         Delay5us();             //延時(shí)
  89.     }
  90.     I2C_RecvACK();
  91. }
  92. //*****************************************************************************************************
  93. //從I2C總線接收一個(gè)字節(jié)數(shù)據(jù)
  94. //******************************************************************************************************
  95. uint8 I2C_RecvByte()
  96. {
  97.     uint8 i;
  98.     uint8 dat = 0;
  99.     SDA = 1;                    //使能內(nèi)部上拉,準(zhǔn)備讀取數(shù)據(jù),
  100.     for (i=0; i<8; i++)         //8位計(jì)數(shù)器
  101.     {
  102.         dat <<= 1;
  103.         SCL = 1;                //拉高時(shí)鐘線
  104.         Delay5us();             //延時(shí)
  105.         dat |= SDA;             //讀數(shù)據(jù)               
  106.         SCL = 0;                //拉低時(shí)鐘線
  107.         Delay5us();             //延時(shí)
  108.     }
  109.     return dat;
  110. }


  111. /*******************************************************************************
  112. * 函數(shù)名        : WriteRegfdc2214
  113. * 描述            : 寫寄存器數(shù)據(jù)
  114. * 輸入?yún)?shù)  : add,value
  115. * 返回參數(shù)  : 無
  116. *******************************************************************************/
  117. void WriteRegfdc2214(unsigned char add,unsigned int value)
  118. {
  119.     I2C_Start();
  120.     I2C_SendByte(0X54);         //ADDR=0時(shí),地址0X2A<<1+0=0X54  
  121.     I2C_SendByte(add);      //寫地址
  122.     I2C_SendByte(value>>8); //
  123.     I2C_SendByte(value&0xff);//寫低8位
  124.     I2C_Stop();               //產(chǎn)生一個(gè)停止條件
  125.     delay_ms();         
  126. }
  127. /*******************************************************************************
  128. * 函數(shù)名        : ReadRegLDC
  129. * 描述            : 讀寄存器數(shù)據(jù)
  130. * 輸入?yún)?shù)  : add地址
  131. * 返回參數(shù)  : 無
  132. *******************************************************************************/
  133. unsigned int ReadRegfdc2214(unsigned char add)
  134. {
  135.     unsigned   int status;
  136.     unsigned    int a,b;
  137.     I2C_Start();
  138.     I2C_SendByte(0X54);           //寫命令A(yù)DDR=0
  139.     I2C_SendByte(add);     //
  140.     I2C_Start();            //重新開始
  141.     I2C_SendByte(0X55);           //發(fā)送讀命令A(yù)DDR=0
  142.    
  143.     a=I2C_RecvByte();     //讀高位
  144.         I2C_SendACK(0);
  145.     b=I2C_RecvByte();                 //讀低位
  146.         I2C_SendACK(1);
  147.     status=a*256+b;
  148.     I2C_Stop();
  149.     return (status);
  150. }
  151. /*******************************************************************************
  152. * 函數(shù)名        : InitSingleLDC1314
  153. * 描述            : 初始化單通道
  154. * 輸入?yún)?shù)  : 無
  155. * 返回參數(shù)  : 無
  156. *******************************************************************************/
  157. void InitSinglefdc2214(void)
  158. {
  159.     WriteRegfdc2214(0x08,0x0fa0);//設(shè)置轉(zhuǎn)換時(shí)間  設(shè)置達(dá)到最高精度

  160.     WriteRegfdc2214(0x10,0x000f);//FDC2214_SETTLECOUNT_CH0 穩(wěn)定技計(jì)數(shù)計(jì)數(shù)
  161.    
  162.     WriteRegfdc2214(0x14,0x08); //參考分頻系數(shù)
  163.     //    LDC_Write_Reg(0x0C,0x0F00); //調(diào)零
  164.     WriteRegfdc2214(0x19,0x0000); //ERROE_CONFIG
  165.        
  166.     WriteRegfdc2214(0x1B,0x020D); //通道配置
  167.     WriteRegfdc2214(0x1E,0xF800); //配置驅(qū)動(dòng)電流
  168.     WriteRegfdc2214(0x1A,0x1C81); //參數(shù)配置
  169.           //以下自己//
  170.           WriteRegfdc2214(0x18,0x02); //使用外部時(shí)鐘
  171. }
  172. /*******************************************************************************
  173. * 函數(shù)名        : InitMultiLDC1314
  174. * 描述            : 初始化多通道
  175. * 輸入?yún)?shù)  : 無
  176. * 返回參數(shù)  : 無
  177. *******************************************************************************/
  178. void InitMultifdc2214(void)//雙通道
  179. {
  180.     WriteRegfdc2214(0x08,0x0fa0);//轉(zhuǎn)換時(shí)間           \\穩(wěn)定參考計(jì)數(shù)值、||原值為0x04D6
  181.           WriteRegfdc2214(0x09,0x0fa0);
  182.           WriteRegfdc2214(0x0A,0x0fa0);//轉(zhuǎn)換時(shí)間
  183.           WriteRegfdc2214(0x0B,0x0fa0);
  184.        
  185.                 WriteRegfdc2214(0x0C,0x0F00); //調(diào)0值         CH0
  186.                 WriteRegfdc2214(0x0D,0x0F00); //調(diào)0值   CH1
  187.                 WriteRegfdc2214(0x0E,0x0F00); //調(diào)0值   CH2
  188.                 WriteRegfdc2214(0x0F,0x0F00); //調(diào)0值   CH3
  189.                        
  190.                 WriteRegfdc2214(0x10,0x000A);//作用時(shí)間 CH1
  191.           WriteRegfdc2214(0x11,0x000A);//CH2
  192.                 WriteRegfdc2214(0x12,0x000A);//CH3
  193.                 WriteRegfdc2214(0x13,0x000A);//CH4
  194.          
  195.                 WriteRegfdc2214(0x14,0x08);//分頻                      \\修改分頻系數(shù)可改變數(shù)值大小     原值為0x2002
  196.           WriteRegfdc2214(0x15,0x08);
  197.     WriteRegfdc2214(0x16,0x08);//分頻
  198.           WriteRegfdc2214(0x17,0x08);
  199.        
  200.           WriteRegfdc2214(0x19,0x0000);
  201.           WriteRegfdc2214(0x1B,0xC20D);//配置多通道   2通道--0x820D
  202.        
  203.           WriteRegfdc2214(0x1E,0x9000); //驅(qū)動(dòng)電流 CH0
  204.           WriteRegfdc2214(0x1F,0x9000); //CH1
  205.                 WriteRegfdc2214(0x20,0x9000); //CH2
  206.           WriteRegfdc2214(0x21,0x9000); //CH3
  207.                   

  208.         WriteRegfdc2214(0x1A,0x1C81);//配置寄存器
  209.        
  210.        
  211. }
  212. /*********************************END FILE*************************************/
復(fù)制代碼

所有資料51hei提供下載:
新建文件夾.zip (379.37 KB, 下載次數(shù): 131)


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:1 發(fā)表于 2018-10-23 15:04 | 只看該作者
好東東 希望能分享原理圖
回復(fù)

使用道具 舉報(bào)

板凳
ID:464433 發(fā)表于 2019-1-8 11:05 | 只看該作者
樓主可以分享一下電路圖嗎?謝謝
回復(fù)

使用道具 舉報(bào)

地板
ID:597773 發(fā)表于 2019-8-8 15:33 | 只看該作者
樓主樓主求主函數(shù)
回復(fù)

使用道具 舉報(bào)

5#
ID:611455 發(fā)表于 2019-9-14 16:55 | 只看該作者
你好,我現(xiàn)在正在學(xué)習(xí)手勢(shì)識(shí)別中fdc2214的用法,感覺里面單通道和多通道的初始化代碼不太明白,能詳細(xì)的解釋一下嗎?
回復(fù)

使用道具 舉報(bào)

6#
ID:511461 發(fā)表于 2019-10-12 19:04 | 只看該作者
樓主,求原理圖
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩和的一区二区 | 男人的天堂久久 | 国产色爽| 欧美日韩看片 | 欧美一级艳情片免费观看 | 刘亦菲国产毛片bd | 久久新视频 | 国产不卡一区在线观看 | 欧美久久精品一级c片 | 免费av在线| 欧美jizzhd精品欧美巨大免费 | 丝袜久久 | 亚洲一区二区三区观看 | 本地毛片 | 国产视频一视频二 | 亚洲精品www久久久 www.蜜桃av | 久久久久久久一级 | 视频一区二区三区四区五区 | 午夜在线视频一区二区三区 | 一区二区三区高清 | 999精品视频| 成人午夜网站 | 国产午夜精品一区二区三区嫩草 | 国产精品入口麻豆www | 免费久| 日韩电影一区 | 国产美女高潮 | 国产精品福利在线观看 | 一区二区三区在线观看免费视频 | 亚洲欧美日韩激情 | 国产精品无 | 亚洲精品在线免费观看视频 | 日本久久福利 | 91精品久久久久久久99 | 懂色中文一区二区在线播放 | 在线欧美亚洲 | 成年免费大片黄在线观看岛国 | 国产日韩精品在线 | 中文字幕高清av | www.99热这里只有精品 | 国产精品一区二区欧美黑人喷潮水 |