色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 用集成芯片MAX038實現(xiàn)智能信號發(fā)生器

          用集成芯片MAX038實現(xiàn)智能信號發(fā)生器

          作者: 時間:2016-11-18 來源:網(wǎng)絡 收藏
          單片機不僅在控制系統(tǒng)有很大的應用,在信號的產(chǎn)生方面也有獨特的應用。在現(xiàn)代電子學的各個領域中,常常需要高精度切頻率方便可調(diào)節(jié)的信號發(fā)生器,可以利用單片集成芯片實現(xiàn)函數(shù)信號發(fā)生器,這種信號發(fā)生器風產(chǎn)生多種波形信號,達到較高的頻率,且易于調(diào)試。在參考有關資料下,學習設計了利用集成芯片MAX038實現(xiàn)智能信號發(fā)生器。

          本文引用地址:http://cafeforensic.com/article/201611/315969.htm

          主要器件:

          1、AT89C52單片機芯片,用于控制信號發(fā)生芯片,實現(xiàn)不同波形的選擇和輸出。

          2、高頻波形發(fā)生器MAX038,具有高頻率、高精度、低輸出電阻、驅動能力強等特點。

          3、簡單的按鍵選擇電路。

          試驗流程圖:



          試驗電路圖:

          試驗程序代碼:

          //SignalGen.h程序

          #ifndef_SIGNALGEN_H//防止SignalGen.h被重復引用

          #define_SIGNALGEN_H

          #include //引用標準庫的頭文件

          #define uchar unsigned char

          uchar key;//按鍵值

          sbit A0 = P2^0;// MAX038的波形選擇位A0

          sbit A1 = P2^1;// MAX038的波形選擇位A1

          void delay();

          uchar keyscan();

          #endif

          //SignalGen.c程序

          #include "SignalGen.h"

          /*用于鍵消抖的延時函數(shù)*/

          void delay()

          {

          uchar i;

          for (i=400;i>0;i--);

          }

          /*鍵掃描函數(shù)*/

          uchar keyscan(void)

          {

          uchar scancode,tmpcode;

          P1 = 0xf0;//發(fā)全0行掃描碼

          if ((P1&0xf0)!=0xf0)//若有鍵按下

          {

          delay();//延時去抖動

          if ((P1&0xf0)!=0xf0)//延時后再判斷一次,去除抖動影響

          {

          scancode = 0xfe;

          while((scancode&0x10)!=0)//逐行掃描

          {

          P1 = scancode;//輸出行掃描碼

          if ((P1&0xf0)!=0xf0)//本行有鍵按下

          {

          tmpcode = (P1&0xf0)|0x0f;

          /*返回特征字節(jié)碼,為1的位即對應于行和列*/

          return((~scancode)+(~tmpcode));

          }

          else scancode = (scancode<<1)|0x01;//行掃描碼左移一位

          }

          }

          }

          return(0);//無鍵按下,返回值為0

          }

          /*主程序*/

          void main()

          {

          uchar key;

          while(1)

          {

          key = keyscan();//調(diào)用鍵盤掃描函數(shù)

          delay();

          switch(key)

          {

          case 0x11://第1行第1列,選擇正弦波輸出

          A0 = 0;

          A1 = 1;

          break;

          case 0x21://第1行第2列,選擇矩形波輸出

          A0 = 0;

          A1 = 0;

          break;

          case 0x41://第1行第3列,選擇三角波輸出

          A0 = 1;

          A1 = 0;

          break;

          default:break;

          }

          }

          }



          評論


          技術專區(qū)

          關閉