51 单片机实战教程(14 外围芯片驱动程序之LTC1658芯片驱动)
生活随笔
收集整理的這篇文章主要介紹了
51 单片机实战教程(14 外围芯片驱动程序之LTC1658芯片驱动)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ? ? ? ? LTC1658是一款14bit軌到軌DAC芯片。可選用3V或5V供電,采用3線串口通信(兼容SPI與MICROWIRE),其應用場景為數字校準、工業控制、自動測試設備等。它采用SOP8封裝,Pin腳定義如下:
?
?串口通信的時序圖,及操作說明如下:
?這款DAC芯片不存在多種操作模式,主要就是輸入數據,并使輸入數據生效(即按輸入數據輸出轉換電壓)。因而其驅動庫函數十分簡單,下面就來寫庫函數。新建兩個文件,分別以LTC1658.h,.LTC1658.c存入存入C51 Template文件夾下Library文件夾中。完成后的頭文件如下:
/*ltc1658.hDesigned by Bill LiuVersion 0.0 Modified last by Bill Liu on 12/11/2021 */ #ifndef __LTC1658_H__ #define __LTC1658_H__#include "myport.h" //defined ltc1658DIN,ltc1658CS,ltc1658CLK #include "mtype.h" #include "delay.h"extern FSYSCLOCK FSCLK; //FSCLK was defined in main.h/********************************************************************** Function: LTC1658_InClk(); Return value: void Discription: input a clk to LTC1658 Example:LTC1658_InClk(); **********************************************************************/ void LTC1658_InClk();/********************************************************************** Function: LTC1658_DacOutput(ui16 mData); Return value: void Discription: let LTC1658 output mData's dac voltage Example:LTC1658_DacOutput(1024); **********************************************************************/ void LTC1658_DacOutput(ui16 mData);#endif完成后的源文件如下:
/*ltc1658.cDesigned by Bill LiuVersion 0.0 Modified last by Bill Liu on 12/11/2021 */#include "ltc1658.h"//*********************************************************** void LTC1658_InClk() {ltc1658CLK = 1;Delayxus(1,8);ltc1658CLK = 0;Delayxus(1,8); } //End of LTC1658_InClk()//************************************************************ void LTC1658_DacOutput(ui16 mData) {ui8 i;ltc1658CS = 0;ltc1658CLK = 0;Delayxus(1,8);for(i = 0; i < 16; i++){mData <<= 1;if(CY)ltc1658DIN = 1;elseltc1658DIN = 0;Delayxus(1,8);LTC1658_InClk();}ltc1658CS = 1;ltc1658CLK = 1; } //End of LTC1658_DacOutput(ui16 mData)以上代碼及LTC1658 Datasheet 已上傳到CSDN,文件名為LTC 1658 Diver Code & Datasheet.rar。如需離線查看可搜索下載。
總結
以上是生活随笔為你收集整理的51 单片机实战教程(14 外围芯片驱动程序之LTC1658芯片驱动)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql脏数据_mysql的刷脏
- 下一篇: 测试USB 读写速度