找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

STM32+AD9833的信號發(fā)生器程序(4X4鍵盤控制)

[復制鏈接]
跳轉到指定樓層
樓主
ID:724206 發(fā)表于 2020-12-19 08:38 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
硬件資源:
        1,AD9833
        2,OLED顯示屏
        3,4*4矩陣鍵盤

◆硬件連接:
                OLED顯示屏------>stm32大黃板
                       VCC------>VCC
                       GND------>GND
                       SCL------>PB6
                       SDA------>PB7
          AD9833信號發(fā)生器------>stm32大黃板
                       VCC------>VCC
                       GND------>GND
                       FSY------>PB10
                       CLK------>PB11
                       DAT------>PA12
                       CSP------>A11
                       4*4矩陣鍵盤
                         PA0-PA7
        
◆實驗現(xiàn)象:
        通過按鍵控制產(chǎn)生正弦波、方波、三角波,頻率和幅值可通過按鍵輸入數(shù)字設置

單片機源程序如下:
  1. #include "key.h"
  2. #include "delay.h"
  3. #include "sys.h"
  4. #include "5110.h"
  5. #include "math.h"
  6. #include <stdlib.h>
  7. #include "ad9833.h"
  8. #include "source.h"
  9. #include "oled.h"

  10. #define CLK                         BIT_ADDR(GPIOA_ODR_Addr,10)

  11. extern u32 freq;
  12. extern u32 ampli;
  13. int main(void)
  14. {
  15.         u8 flag;
  16.         u8 keyval=0;
  17.         SystemInit();
  18.         delay_init();
  19.         AD9833_Init_GPIO();
  20.         OLED_Init();
  21.         OLED_Clear();
  22.        
  23. //        LCD_set_XY(0,0);
  24. //        LCD_write_str("Signal");
  25. //        LCD_set_XY(0,1);
  26. //        LCD_write_str("    Generator");
  27. //  LCD_set_XY(0,3);
  28. //        LCD_write_str("Sin");
  29. //        LCD_set_XY(0,4);
  30. //        LCD_write_str("Square");
  31. //        LCD_set_XY(0,5);
  32. //        LCD_write_str("Sawtooth");
  33.         OLED_ShowString(0,0,"SIGNAL CREATER",24);
  34.         OLED_ShowString(0,3,"Sin",24);
  35.         OLED_ShowString(0,4,"Square",24);
  36.         OLED_ShowString(0,5,"Sawtooth",24);
  37.         delay_ms(200);
  38.         while(1)
  39.         {
  40.                 keyval=HL_Scan();
  41.                 switch(keyval)
  42.                 {
  43.                         case 13:
  44.                                                 flag=1;
  45.                                                 break;
  46.                         case 14:
  47.                                                 flag=2;
  48.                                                 break;
  49.                         case 15:
  50.                                                 flag=3;
  51.                                                 break;
  52.                                 }
  53.                                 source_creat(flag);
  54.                                 flag=0;
  55.                         }
  56. }
復制代碼

所有資料51hei提供下載:
AD9833(4X4鍵盤控制).7z (194.59 KB, 下載次數(shù): 69)

評分

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

查看全部評分

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

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表