找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

求51單片機驅(qū)動tsl1401怎么搞?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:926010 發(fā)表于 2021-11-6 12:28 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
有大佬有代碼嗎?或者提供思路也行,要寫哪些部分呀!

IMG20211106122524.jpg (3.03 MB, 下載次數(shù): 77)

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

使用道具 舉報

沙發(fā)
ID:926010 發(fā)表于 2021-11-9 14:00 | 只看該作者
這幾天根據(jù)網(wǎng)上資料仿照了一個簡單的;但現(xiàn)在就是很有問題:
①只能顯示你要求的第一個像素點的值,再多就是統(tǒng)一為0了;
②顯示的數(shù)值不是在34與127兩個間不斷跳動,而且跳一會就不動了,怎么動tsl1401都沒用!
這是主要程序:
#include "reg52.h"
#include <intrins.h>
#include "ad.h"     //用的是串行的ad0832
#include "oled.h"

#define uchar unsigned char
#define uint  unsigned int
      
sbit CCD_CLK=P2^6;
sbit SI=P2^7;                                                                                                                                                                        
uchar n;
uchar adc[];

void Delayus(uchar x)
{  
while(x--)
{_nop_();}
}

void main()
{
        OLED_Init();
      
      
        while(1)
        {
                SI=1;
                Delayus(10);
                CCD_CLK=1;
                Delayus(10);
                SI=0;
                Delayus(10);
                CCD_CLK=0;
                Delayus(10);
               
                for(n=0; n<128;n++)
                {
                CCD_CLK=1;
                adc[n]=A_D();   //將采集到的每個像素點ad值保存起來
                CCD_CLK=0;
                        Delayus(1);
                }
               
                                OLED_ShowNum(0,0,adc[81],3,16);//輸出81號像素點的值
                OLED_ShowNum(0,2,adc[30],3,16);//輸出30號******
        }
}
有沒有大佬幫我看看什么問題。。。。十分感謝
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表