?? tlc2543.c
字號:
//-----------------------函數聲明,變量定義--------------------------------------------------------
#include <reg51.h>
#include <intrins.h>
//--------------------------------------------------------------------------------------------------
// 2543控制引腳宏定義
//--------------------------------------------------------------------------------------------------
sbit SS1=P1^0; // 將p1.0口模擬片選
sbit SCK=P1^1; // 將p1.1口模擬時鐘輸出
sbit MOSI=P1^2; // 將p1.2口模擬主機輸出
sbit MISO=P1^3; // 將p1.3口模擬主機輸入
//-----------------------預定義控制字--------------------------------------------------------
#define CONTROL_WORD 0x00 //選擇通道0,輸出數據長度12bit,MSB,單極性二進制數
//--------------------------------------------------------------------------------------------------
// 函數名稱: delay
// 入口參數: N
// 函數功能:延時子程序,實現(16*N+24)us的延時
// 系統采用11.0592MHz的時鐘時,延時滿足要求,其它情況需要改動
//--------------------------------------------------------------------------------------------------
void delay(unsigned int N)
{
int i;
for(i=0;i<N;i++);
}
//--------------------------------------------------------------------------------------------------
// 名稱:read2543
// 功能:TLC2543驅動模塊
// 輸入參數:CON_WORD控制字
// 輸出參數:ad轉換值
//--------------------------------------------------------------------------------------------------
unsigned int read2543(unsigned char CON_WORD)
{
unsigned int ad=0,i;
SCK=0;
SS1=0;
for(i=0;i<12;i++)
{
if(MISO) ad|=0x01;
MOSI=(bit)(CON_WORD&0x80);
SCK=1;
delay(3);
SCK=0;
delay(3);
CON_WORD<<=1;
ad<<=1;
}
SS1=1;
ad>>=1;
return(ad);
}
//--------------------------------------------------------------------------------------------------
// 名稱:main
// 功能:主函數
// 輸入參數:無
// 輸出參數:無
//--------------------------------------------------------------------------------------------------
void main()
{unsigned int ad;
while(1)
{
ad=read2543(CONTROL_WORD);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -