找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2273|回复: 0
收起左侧

STM32+AD9833的信号发生器程序(4X4键盘控制)

[复制链接]
ID:724206 发表于 2020-12-19 08:38 | 显示全部楼层 |阅读模式
硬件资源:
        1,AD9833
        2,OLED显示屏
        3,4*4矩阵键盘

◆硬件连接:
                OLED显示屏------>stm32大黄板
                       VCC------>VCC
                       GND------>GND
                       SCL------>PB6
                       SDA------>PB7
          AD9833信号发生器------>stm32大黄板
                       VCC------>VCC
                       GND------>GND
                       FSY------>PB10
                       CLK------>PB11
                       DAT------>PA12
                       CSP------>A11
                       4*4矩阵键盘
                         PA0-PA7
        
◆实验现象:
        通过按键控制产生正弦波、方波、三角波,频率和幅值可通过按键输入数字设置

单片机源程序如下:
  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, 下载次数: 63)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表