国产免费AV|泡泡玛特欧洲总部将设在伦敦|中文天堂网www新版资源在线|一本久道综合在线中文|国精产品一二三产区的使用方法|香蕉鱼在线观看|www.27eee
ELEOK
標題:
51單片機+TLC5628信號發生器Proteus仿真圖與程序
[打印本頁]
作者:
eng
時間:
2021-7-20 17:19
標題:
51單片機+TLC5628信號發生器Proteus仿真圖與程序
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
1.jpg
(101.62 KB)
下載附件
2021-7-20 17:17 上傳
部分源碼:完整見附件
#include <reg52.h>
#include <intrins.h>
/*定義I/O端口*/
sbit CLK = P0^0; //串行時鐘,下降沿有效
sbit DAT = P0^1; //串行數據
sbit LOAD = P0^7; //串行數據加載,下降沿有效
sbit LDAC = P0^3; //DAC更新鎖存控制,下降沿有效
/*函數申明*/
void delayms(unsigned char ms);
void TCL5628_Write(unsigned char addr, bit rng, unsigned char dat);
void Init_TLC5628();
void jichiWave();
void delay5us(void); //誤差 0us
/*函數定義*/
/*延時函數*/
void delayms(unsigned char ms)
{
unsigned char i;
while(ms--)
{
for(i = 0; i < 250; i++)
{
_nop_();
_nop_();
_nop_();
_nop_();
}
}
}
void delay5us(void) //誤差 0us
{
unsigned char a;
for(a=1;a>0;a--);
}
/*TCL5628 driver*/
void TCL5628_Write(unsigned char addr, bit rng, unsigned char dat)
{
unsigned char n;
// 發送通道地址
n = 3;
do
{
DAT = (bit)(addr & 0x02);
addr <<= 1;
CLK = 0;
CLK = 1;
}while(--n != 0);
//發送RNG位
DAT = rng;
CLK = 0;
CLK = 1;
//發送8位DAC數據
n = 8;
do
{
DAT = (bit)(dat & 0x80);
dat <<= 1;
CLK = 0;
CLK = 1;
}while(--n != 0);
//加載數據
LOAD = 0;
// delay5us();
LOAD = 1;
// delay5us();
LDAC = 0;
// delay5us();
LDAC = 1;
}
/*初始化TLC5628*/
void Init_TLC5628()
{
DAT = 1;
CLK = 1;
LDAC = 1;
LOAD = 1;
}
///*方法一:采樣設計
// TLC5628轉換一次大概要12.5us
// 即最高80KHz
// 但是用51單片機,晶振為12MHz
// 最快產生一個方波為2us,即最高頻率為500KHz
//
// 正弦波產生函數
// 用32個點
//*/
//void juchiWave()
//{
// /*根據曲線光滑來選取采樣點*/
// code unsigned char juchiTab[] =
// {
// 0,10,20,30,40,50,60,70,80,90,100,110,120,130,140,150,160,170,180,190,200,210,220,230,240,250
// };
// unsigned char n;
// for(n = 0; n < 25; n++)
// {
// TCL5628_Write(0,0,juchiTab[n]);
// delayms(1);
// }
//}
//void main()
//{
// Init_TLC5628();
// while(1)
// {
// juchiWave();
// }
//
//}
/*方法二:算法設計*/
void juchiwave()
{
unsigned char n;
for(n=0;n<50;n++)
{
TCL5628_Write(0,0,n);
delayms(1);
}
}
void main()
{
Init_TLC5628();
while(1)
{
juchiWave();
}
}
復制代碼
完整源碼和proteus仿真文件:
信號發生器.zip
(108.2 KB, 售價: 2 E幣)
2021-7-20 17:18 上傳
點擊文件名下載附件
售價: 2 E幣
[記錄]
[
購買
]
歡迎光臨 ELEOK (http://m.afoofa.cn/)
Powered by Discuz! X5.0