久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3128|回復: 0
打印 上一主題 下一主題
收起左側

單片機+TLC5628正弦波發生器代碼與Proteus仿真圖

[復制鏈接]
跳轉到指定樓層
樓主
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)

利用已知器件完成一個簡易信號發生器的設計。
二、設計內容
請利用你熟悉的單片機和8路輸出串行8位D/A轉換器TLC5628設計一個鋸齒波信號發生器,相關TLC5628資料請自行檢索資料,設參考電壓,電源電壓,運算放大器型號任意。
設計要求及指標: (1)輸出幅度。
                          (2)輸出頻率之間任意。
            (3)畫出設計簡略電路。
四、設計步驟
1.通過TLC5628引腳圖以及邏輯功能圖,設計出符合要求的電路圖(通過protus仿真)
電路圖設計結果:
2.程序設計,通過TLC5628參數資料中的時序仿真,設計出產生鋸齒波的程序
程序如下:
#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 TCL5620_Write(unsigned char addr, bitrng, unsigned char dat);
void Init_TLC5620();
void jichiWave();
void delay5us(void);   //誤差 0us
/*函數定義*/
/*延時函數*/
void delayms(unsigned char ms)
{
       unsignedchar 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--);
}
/*TCL5620 driver*/
void TCL5620_Write(unsigned char addr, bitrng, unsigned char dat)
{
       unsignedchar 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;
}
/*初始化TLC5620*/
void Init_TLC5620()
{
       DAT= 1;
       CLK= 1;
       LDAC= 1;
       LOAD= 1;
}
/*
       TLC5620轉換一次大概要12.5us
       即最高80KHz
       但是用51單片機,晶振為12MHz
       最快產生一個方波為2us,即最高頻率為500KHz
      
       正弦波產生函數
       用32個點
*/
void SinWave()
{
       /*根據曲線光滑來選取采樣點*/
       codeunsigned char SinTab[] =
       {
        255,240,230,220,210,200,190,180,170,160,150,140,130,120,110,100,90,80,70,60,50,40,30,20,10,0
       };
       unsignedchar n;
       for(n= 0; n < 25; n++)
       {
              TCL5620_Write(0,0,SinTab[n]);
              delayms(1);
       }
}
void main()
{
       Init_TLC5620();
       while(1)
       {
              SinWave();
       }
      
}
3.燒錄HEX文件
五、實驗結果的仿真與驗證
信號為鋸齒波,符合設計要求。
六、實驗總結
本系統的硬件電路非常簡單,關鍵在于軟件算法的設計。信號發生器的最重要指標就是頻率的穩定性,因此,如何通過單片機來產生精確的控制信號以使頻率穩定是其關鍵所在。本設計在程序中已設計好數據表格,每個周期的采樣點數為40個。這樣就將頻率穩定問題轉換為采樣周期的精確定位問題了。
本設計采用定時器中斷方式來產生精確的采樣間隔,具體的算法。
首先是設定一個定時器中斷的基準時間,然后將采樣時間間隔,設置為定時器中斷基準時間的整數倍,倍數參量可根據頻率按鍵掃描函數的結果以及初值來確定。
D/A作為一種常見的應用電子儀器設備,傳統的波形產生一般可以完全由硬件電路搭接而成,如采用555振蕩電路發生正弦波、三角波和方波的電路便是可取的路徑之一,不用依靠單片機。但是這種電路存在波形質量差,控制難,可調范圍小,電路復雜和體積大等缺點。在科學研究和生產實踐中,如工業過程控制,生物醫學,地震模擬機械振動等領域常常要用到低頻信號源。而由硬件電路構成的低頻信號其性能難以令人滿意,而且由于低頻信號源所需的RC要很大。大電阻,大電容在制作上有困難,參數的精度亦難以保證。體積大,漏電,損耗顯著更是其致命的弱點。一旦工作需求功能有增加,則電路復雜程度會大大增加。
利用單片機采用程序設計方法來產生低頻信號,其頻率底線很低。具有線路相對簡單,結構緊湊,價格低廉,頻率穩定度高,抗干擾能力強,用途廣泛等優點,并且能夠對波形進行細微調整,改良波形,使其滿足系統的要求。只要對電路稍加修改,調整程序,即可完成功能升級。
(1)分析確定設計方案。在分析的過程中一定要多查資料多聽取意見,盡量站在別人的肩膀上少走彎路。對所選的也大概有了一些了解,下一步就是在這樣一個基礎上,綜合已有的資料來更透徹的分析。
(2)查閱資料。上網查資料是必不可少的,目前各大搜索引擎都推出有自己特色的搜索服務,一定要找到適合自己的東西。
(3)學習的能力。明確了問題并且分析了然后就是如何實現的問題了。這個時候學習能力顯得特別的重要。如何通過自己的努力把不明白的東西搞明白,這對學習的能力有很高的要求。接著自己開始編寫簡單的程序來檢驗一下學習的效果,理論學習和工作實際緊密結合起來。
(4)要實際動手,防止眼高手底。


仿真代碼51hei下載地址:
prj.zip (49.23 KB, 下載次數: 33)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂1 踩
回復

使用道具 舉報

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

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 激情影院久久 | 国产精品一区二区在线 | 久久综合九九 | 亚洲视频网 | 欧美日韩1区 | 中文字幕日韩一区二区 | 国产一级视频在线观看 | 成人h电影在线观看 | 久久久精品久久久 | 精品日韩在线 | 一级毛片在线看 | 日韩不卡视频在线观看 | 国产麻豆一区二区三区 | 91久久久久 | 日韩在线 | 久久精品亚洲一区二区三区浴池 | 国产欧美精品一区二区三区 | 欧美日韩国产精品一区二区 | 日本一卡精品视频免费 | 免费中文字幕 | 久久久久久久久久久久久久av | 精品欧美激情精品一区 | 在线免费观看亚洲 | 日韩一区二区三区在线视频 | 欧美精品91 | 国产视频二区在线观看 | 国产精品视频一区二区三 | 在线看国产 | 在线视频 亚洲 | 欧美日韩国产高清 | 欧美亚洲视频在线观看 | 精品久久影院 | 久久国产一区二区三区 | 一级毛片免费完整视频 | 黄色片免费看视频 | 免费一级黄色电影 | 久久精品亚洲精品国产欧美 | 成人免费观看男女羞羞视频 | 日本二区| 久久免费精品 | 亚洲成人黄色 |