国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【單片機(jī)】51單片機(jī),TLC2543,驅(qū)動(dòng)程序,讀取adc

這篇具有很好參考價(jià)值的文章主要介紹了【單片機(jī)】51單片機(jī),TLC2543,驅(qū)動(dòng)程序,讀取adc。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

【單片機(jī)】51單片機(jī),TLC2543,驅(qū)動(dòng)程序,讀取adc,單片機(jī),單片機(jī),51單片機(jī),TLC2543,ADC
TLC2543 是一款 12 位精密模數(shù)轉(zhuǎn)換器 (ADC)。

1~9、11、12——AIN0~AIN10為模擬輸入端;

15——CS 為片選端;

17——DIN 為串行數(shù)據(jù)輸入端;(控制字輸入端,用于選擇轉(zhuǎn)換及輸出數(shù)據(jù)格式)

16——DOUT為A/D轉(zhuǎn)換結(jié)果的三態(tài)串行輸出端;(A/D轉(zhuǎn)換結(jié)果的輸出端。)

19——EOC為轉(zhuǎn)換結(jié)束端;

18——CLK為I/O時(shí)鐘;(控制輸入輸出的時(shí)鐘,由外部輸入。)

14——REF+為正基準(zhǔn)電壓端;

13——REF-為負(fù)基準(zhǔn)電壓端;

20——VCC為電源;

10——GND為地。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-626965.html

/***********************************************************************
 * 說(shuō)明:搖桿實(shí)驗(yàn)。搖動(dòng)搖桿,查看顯示屏上AD值變化。
 **********************************************************************/

#include "STC89C5xRC.h"                 /* 此文件中定義了單片機(jī)的一些特殊功能寄存器 */
#include "OLED.h"                       /* OLED頭文件 */
/* #include "Codedat.h" */
#define uint	unsigned int            /* 對(duì)數(shù)據(jù)類(lèi)型進(jìn)行聲明定義 */
#define uchar	unsigned char


sbit beep = P2 ^ 4;                     /* 定義蜂鳴器觸發(fā)腳 */

/**************************************
 *      2543控制引腳宏定義
 *************************************/
sbit	CLOCK	= P3 ^ 5;               /*2543時(shí)鐘*/
sbit	D_IN	= P4 ^ 0; /*2543輸入*/    /* 【注意:此處是口袋實(shí)驗(yàn)室連接引腳】 */
sbit	D_OUT	= P0 ^ 2;               /*2543輸出*/
sbit	_CS	= P3 ^ 4;               /*2543片選*/


sbit	DIG1	= P0 ^ 0;               /* 數(shù)碼管位選1 */
sbit	DIG2	= P0 ^ 1;               /* 數(shù)碼管位選2 */
sbit	key1	= P3 ^ 2;               /* 搖桿A按鍵 */
sbit	key2	= P3 ^ 3;               /* 搖桿B按鍵 */

#define led P1                          /* 將P1口定義為led 后面就可以使用led代替P0口 */


/*******************************************************************************
* 函 數(shù) 名         : delay
* 函數(shù)功能		   : 延時(shí)函數(shù),本延時(shí)函數(shù)延時(shí)較短,可以較快刷新屏幕
*					 當(dāng)然也可以使用OLED.h定義的delay_ms()函數(shù)
*******************************************************************************/
void delay( int ms )
{
    int ii, jj;
    if ( ms < 1 )
        ms = 1;
    for ( ii = 0; ii < ms; ii++ )
        for ( jj = 0; jj < 500; jj++ )
            ;
}


/*******************************************************************************
* 函 數(shù) 名         : read2543
* 函數(shù)功能		   : TLC2543驅(qū)動(dòng)模塊
* 輸    入         : port		通道號(hào)
* 輸    出         : ad			轉(zhuǎn)換值
* 說(shuō)    明         :請(qǐng)結(jié)合TLC2543芯片手冊(cè)和下方注釋理解
*******************************************************************************/
uint read2543( uchar port )
{
    uint ad = 0, i;
    CLOCK	= 0;
    _CS	= 0;
    port	<<= 4;                          /*選通道。高四位代表AD通道,低四位自動(dòng)補(bǔ)0 */


    /*這里的for,其實(shí)就算_CS變低后,時(shí)鐘IO_Clock和Data_Input使能,Data_Out脫離高阻狀態(tài)。
     * 12個(gè)時(shí)鐘信號(hào)依次輸入。隨著時(shí)鐘信號(hào)的輸入,控制字從Data_Input一位一位地在時(shí)鐘信號(hào)上升沿時(shí)
     * 送入TLC2543(注意:高位先入),這里的控制字是通道選擇(port),從A0-A10共11個(gè)通道,
     * (分別對(duì)應(yīng)0000至1010,高四位就是存放模擬通道輸入選擇的數(shù)據(jù))
     * 同時(shí),上一周期轉(zhuǎn)換的AD數(shù)據(jù),即輸出數(shù)據(jù)寄存器中的數(shù)據(jù)從Data_Out一位一位地移出(下降沿時(shí))
     * (第一次_CS=0時(shí)輸出第一位,其他的跟著for內(nèi)的下降沿輸出)*/

    for ( i = 0; i < 12; i++ )              /* 進(jìn)行12次(12位)的數(shù)據(jù)推送 */
    {
        if ( D_OUT )
            ad |= 0x01;             /* 相當(dāng)于每次檢出輸出1時(shí)。最低位就給1,否則給0 */
        D_IN	= (bit) (port & 0x80);  /* 相當(dāng)于只取最高位進(jìn)行與運(yùn)算 */
        CLOCK	= 1;                    /* 電平抬高 */
        delay( 3 );                     /* 延時(shí) */
        CLOCK = 0;                      /* 給低電平 */
        delay( 3 );                     /* 延時(shí)。這里是給一個(gè)完整周期的脈沖 */
        port	<<= 1;
        ad	<<= 1;                  /* 左移一位,為下一次for循環(huán)做準(zhǔn)備 */
    }
    _CS	= 1;                            /* 片選端置高,則IO_Clock和Data_Input禁止,Data_Out高阻,EOC置高 */
    ad	>>= 1;                          /*上面最后一次for循環(huán)多移了一次現(xiàn)在移回來(lái) */
    return(ad);                             /* 返回轉(zhuǎn)換值 */
}


/*******************************************************************************
* 函 數(shù) 名         : ad_number
* 函數(shù)功能		   : AD值數(shù)值拆分函數(shù)
* 輸    入         : i	通道   y 顯示行坐標(biāo)
* 輸    出         : 無(wú)
*******************************************************************************/
void ad_number( uchar i, uchar y )
{
    uint ad;
    ad = read2543( i ); /* 這里得到的是AD值(0~4095) */
    OLED_ShowNum( 63, y, ad, 4, 16 );
}


/*******************************************************************************
* 函 數(shù) 名         : Int1Init()
* 函數(shù)功能		   : 設(shè)置外部中斷1    [P3.3]
* 輸    入         : 無(wú)
* 輸    出         : 無(wú)
*******************************************************************************/
void Int0Init()
{
    /* 設(shè)置INT0 */
    IT0	= 1;    /* 跳變沿出發(fā)方式(下降沿) */
    EX0	= 1;    /* 打開(kāi)INT0的中斷允許。 */
    EA	= 1;    /* 打開(kāi)總中斷 */
}


/*******************************************************************************
* 函 數(shù) 名         : Int1Init()
* 函數(shù)功能		   : 設(shè)置外部中斷1    [P3.3]
* 輸    入         : 無(wú)
* 輸    出         : 無(wú)
*******************************************************************************/
void Int1Init()
{
    /* 設(shè)置INT1 */
    IT1	= 1;    /* 跳變沿出發(fā)方式(下降沿) */
    EX1	= 1;    /* 打開(kāi)INT1的中斷允許。 */
    EA	= 1;    /* 打開(kāi)總中斷 */
}


/*******************************************************************************
* 函 數(shù) 名       : main
* 函數(shù)功能		 : 主函數(shù)
* 輸    入       : 無(wú)
* 輸    出         : 無(wú)
*******************************************************************************/
void main( void )
{
    Int0Init();     /* 外部中斷0初始化 */
    Int1Init();     /* 外部中斷1初始化 */
    beep	= 0;    /* 蜂鳴器不響 */
    DIG1	= 0;    /* 禁止數(shù)碼管十位亮 */
    DIG2	= 0;    /* 禁止數(shù)碼管個(gè)位亮 */
    delay( 300 );   /*上電后等待系統(tǒng)穩(wěn)定 */
    OLED_Init();    /* OLED初始化 */

    OLED_ShowString( 24, 0, "A-X:", 16 );
    OLED_ShowString( 24, 2, "A-Y:", 16 );
    OLED_ShowString( 24, 4, "B-X:", 16 );
    OLED_ShowString( 24, 6, "B-Y:", 16 );

    led = 0xff;     /* LED全滅 */

    while ( 1 )
    {
        ad_number( 7, 4 );

        ad_number( 8, 2 );

        ad_number( 9, 0 );

        ad_number( 10, 6 );
    }
}


/*******************************************************************************
* 函 數(shù) 名         : Int0()	interrupt 0
* 函數(shù)功能		   : 外部中斷1的中斷函數(shù)
* 輸    入         : 無(wú)
* 輸    出         : 無(wú)
*******************************************************************************/

void Int0()

interrupt 0                     /* 外部中斷1的中斷函數(shù) */
{
delay( 40 );            /* 延時(shí)消抖 */
if ( key1 == 0 )        /* 如果按鍵按下 */
{
beep = ~beep;   /* 蜂鳴器響/不響 */
}
}


/*******************************************************************************
* 函 數(shù) 名         : Int1()	interrupt 2
* 函數(shù)功能		   : 外部中斷1的中斷函數(shù)
* 輸    入         : 無(wú)
* 輸    出         : 無(wú)
*******************************************************************************/
void Int1() interrupt 2         /* 外部中斷1的中斷函數(shù) */
{
delay( 40 );            /* 延時(shí)消抖 */
if ( key2 == 0 )        /* 如果按鍵按下 */
{
led = ~led;     /* LED全亮/滅 */
}
}



到了這里,關(guān)于【單片機(jī)】51單片機(jī),TLC2543,驅(qū)動(dòng)程序,讀取adc的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀(guān)點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【51單片機(jī)】直流電機(jī)驅(qū)動(dòng)(PWM)(江科大)

    【51單片機(jī)】直流電機(jī)驅(qū)動(dòng)(PWM)(江科大)

    · 直流電機(jī)是一種將電能轉(zhuǎn)換為機(jī)械能的裝置。一般的直流電機(jī)有兩個(gè)電極,當(dāng)電極正接時(shí),電機(jī)正轉(zhuǎn),當(dāng)電極反接時(shí),電機(jī)反轉(zhuǎn) · 直流電機(jī)主要由永磁體(定子)、線(xiàn)圈(轉(zhuǎn)子)和換向器組成 · 除直流電機(jī)外,常見(jiàn)的電機(jī)還有步進(jìn)電機(jī)、舵機(jī)、無(wú)刷電機(jī)、空心杯電機(jī)等 電機(jī)的驅(qū)動(dòng)無(wú)法

    2024年02月20日
    瀏覽(20)
  • 51單片機(jī)驅(qū)動(dòng)TCS3200顏色識(shí)別傳感器

    51單片機(jī)驅(qū)動(dòng)TCS3200顏色識(shí)別傳感器

    TCS3200顏色傳感器是一款全彩的顏色檢測(cè)器,包括了一塊TAOS TCS3200RGB感應(yīng)芯片和4個(gè)白色LED燈,TCS3200能在一定的范圍內(nèi)檢測(cè)和測(cè)量幾乎所有的可見(jiàn)光。TCS3200有大量的光檢測(cè)器,每個(gè)都有紅綠藍(lán)和清除4種濾光器。每種顏色濾光器均勻地按數(shù)組分布來(lái)清除顏色中偏移位置的顏色分

    2023年04月14日
    瀏覽(44)
  • 【51單片機(jī)】直流電機(jī)的驅(qū)動(dòng)和PWM調(diào)速

    【51單片機(jī)】直流電機(jī)的驅(qū)動(dòng)和PWM調(diào)速

    51單片機(jī)驅(qū)動(dòng)直流電機(jī)與 PWM 調(diào)速是通過(guò)使用 51 單片機(jī)來(lái)控制直流電機(jī)的轉(zhuǎn)速和方向。51 單片機(jī)通過(guò)控制電機(jī)的電流來(lái)實(shí)現(xiàn)驅(qū)動(dòng),并通過(guò)生成 PWM 信號(hào)來(lái)調(diào)節(jié)電機(jī)的轉(zhuǎn)速。使用 PWM 調(diào)速可以使得直流電機(jī)的轉(zhuǎn)速精確可控,并且減少了電機(jī)的功率損耗。在 51 單片機(jī)的控制系統(tǒng)中,

    2023年04月09日
    瀏覽(26)
  • 基于51單片機(jī)的步進(jìn)電機(jī)驅(qū)動(dòng),親測(cè)無(wú)誤

    基于51單片機(jī)的步進(jìn)電機(jī)驅(qū)動(dòng),親測(cè)無(wú)誤

    這一次要分享的項(xiàng)目是最近接單做的一個(gè)小玩意兒,基于51單片機(jī)的步進(jìn)電機(jī)驅(qū)動(dòng)。最近積壓了兩個(gè)月的小項(xiàng)目會(huì)在后面陸續(xù)發(fā)出,好了回歸正題。本次步進(jìn)電機(jī)驅(qū)動(dòng)的話(huà)主要實(shí)現(xiàn)的功能就是實(shí)現(xiàn): 步進(jìn)電機(jī)的加速和減速,正轉(zhuǎn)反轉(zhuǎn)和開(kāi)啟或者停止工作。用LCD1602顯示當(dāng)前工作

    2023年04月09日
    瀏覽(26)
  • 51單片機(jī)驅(qū)動(dòng)8位數(shù)碼管(74HC595驅(qū)動(dòng))滾動(dòng)顯示

    51單片機(jī)驅(qū)動(dòng)8位數(shù)碼管(74HC595驅(qū)動(dòng))滾動(dòng)顯示

    原文鏈接:https://www.yourcee.com/newsinfo/2929591.html 點(diǎn)擊圖片購(gòu)買(mǎi) 主要關(guān)注下供電電壓是3.0-5.0v(建議5V),請(qǐng)?jiān)谝?guī)定范圍內(nèi)供電。 模塊上芯片引出5個(gè)引腳,芯片引腳與模塊引腳對(duì)應(yīng)關(guān)系是:VCC-VCC SCK-SCLK, RCK-RCLK,SER-DIO,GND-GND 可以對(duì)比程序?qū)W習(xí)時(shí)序圖,便于理解。 1.顯示異常可排除

    2024年02月15日
    瀏覽(41)
  • 基于51單片機(jī)驅(qū)動(dòng)MPU6050模塊(LCD1602顯示)

    基于51單片機(jī)驅(qū)動(dòng)MPU6050模塊(LCD1602顯示)

    @TOC MPU-6050集成了3軸MEMS陀螺儀,3軸MEMS加速度計(jì),以及一個(gè)可擴(kuò)展的數(shù)字運(yùn)動(dòng)處理器DMP,可用IIC接口連接一個(gè)第三方的數(shù)字傳感器。MPU-6050對(duì)陀螺儀和加速度計(jì)分別用了三個(gè)16位的ADC,將其測(cè)量的模擬量轉(zhuǎn)化為可輸出的數(shù)字量。為了精確跟蹤快速和慢速的運(yùn)動(dòng),傳感器的測(cè)量范

    2024年02月11日
    瀏覽(25)
  • 【Proteus仿真】| 51單片機(jī)——MAX7219 驅(qū)動(dòng)數(shù)碼管

    【Proteus仿真】| 51單片機(jī)——MAX7219 驅(qū)動(dòng)數(shù)碼管

    系列文章 todo: 該文章目的:讓大家快速上手——知道如何使用MAX7219。故MAX7219就不做詳細(xì)介紹了(需要了解的話(huà)可以看其他博文及數(shù)據(jù)手冊(cè))。 max7219是一個(gè)串行輸入/輸出 共陰極 數(shù)碼管(點(diǎn)陣)驅(qū)動(dòng)芯片。1個(gè)MAX7219最多可以驅(qū)動(dòng)8位數(shù)碼管。它具有自動(dòng)掃描(切換位),BCD譯碼器(即

    2024年02月15日
    瀏覽(28)
  • 51單片機(jī)使用TM1638驅(qū)動(dòng)的數(shù)碼管鍵盤(pán)模塊

    51單片機(jī)使用TM1638驅(qū)動(dòng)的數(shù)碼管鍵盤(pán)模塊

    前幾天差不多把清翔的視頻教程寫(xiě)完了,然后玩了兩天,這次準(zhǔn)備把以前買(mǎi)的TM1638芯片驅(qū)動(dòng)的數(shù)碼管按鍵模塊用在51單片機(jī)上。 這個(gè)模塊我在pdd上買(mǎi)的,用了2塊的優(yōu)惠券后付款7元包郵,價(jià)格還行吧,對(duì)比了下這個(gè)價(jià)格幾乎就是最低價(jià)了。TM1638芯片都要1塊多,再加上PCB,焊接

    2024年02月03日
    瀏覽(25)
  • 51單片機(jī)驅(qū)動(dòng)SG90舵機(jī)抖動(dòng)或者無(wú)反應(yīng)問(wèn)題解決方案

    51單片機(jī)驅(qū)動(dòng)SG90舵機(jī)抖動(dòng)或者無(wú)反應(yīng)問(wèn)題解決方案

    1、自制的51單片機(jī)最小系統(tǒng)板。 ? ?2、加入了一個(gè)7805CV穩(wěn)壓模塊,使用12V直流供電,隨便找了個(gè)電源適配器。輸出12V,1A 3、問(wèn)題:確保程序無(wú)誤,接線(xiàn)無(wú)誤,上電之后舵機(jī)有輕微咔咔聲,無(wú)法正確運(yùn)行。或者有時(shí)候反復(fù)重新執(zhí)行。根據(jù)觀(guān)察判斷是單片機(jī)運(yùn)行幾條指令之后就

    2024年02月14日
    瀏覽(31)
  • 【單片機(jī)】51單片機(jī)串口的收發(fā)實(shí)驗(yàn),串口程序

    【單片機(jī)】51單片機(jī)串口的收發(fā)實(shí)驗(yàn),串口程序

    這段代碼是使用C語(yǔ)言編寫(xiě)的用于8051單片機(jī)的串口通信程序。它實(shí)現(xiàn)了以下功能: 引入必要的頭文件,包括reg52.h、intrins.h、string.h、stdio.h和stdlib.h。 定義了常量FSOC和BAUD,分別表示系統(tǒng)時(shí)鐘頻率和波特率。 定義了一個(gè)發(fā)送數(shù)據(jù)的函數(shù)send,該函數(shù)將數(shù)據(jù)發(fā)送到串口,等待數(shù)據(jù)

    2024年02月14日
    瀏覽(24)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包