標(biāo)題: STM32+AD9833的信號(hào)發(fā)生器程序(4X4鍵盤(pán)控制) [打印本頁(yè)]

作者: 苦撐a    時(shí)間: 2020-12-19 08:38
標(biāo)題: STM32+AD9833的信號(hào)發(fā)生器程序(4X4鍵盤(pán)控制)
硬件資源:
        1,AD9833
        2,OLED顯示屏
        3,4*4矩陣鍵盤(pán)

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

單片機(jī)源程序如下:
  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. }
復(fù)制代碼

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





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1