如何使用Arduino和AD9833构建信号发生器

如果您是像我这样想要调整不同电子电路的电子爱好者,那么拥有一个像样的函数发生器有时是必不可少的。但是拥有一个是个问题,因为这样的基本设备可能要花一大笔钱。构建自己的测试设备不仅更便宜,而且是提高知识的好方法。

因此,在本文中,我们将使用Arduino和AD9833DDS函数发生器模块构建一个简单的信号发生器,它可以在输出端产生最大频率为12MHz的正弦波、方波和三角波。最后,我们将在示波器的帮助下测试输出频率。

什么是DDS函数发生器?

顾名思义,函数发生器是一种可以通过设置输出特定频率的特定波形的设备。例如,假设您有一个想要测试输出频率响应的LC滤波器,您可以在函数发生器的帮助下轻松做到这一点。您需要做的就是设置所需的输出频率和波形,然后您可以调低或调高它以测试响应。这只是一个例子,随着列表的继续,你可以用它做更多的事情。

DDS代表直接数字合成。它是一种波形发生器,使用数模转换器(DAC)从头构建信号。此方法专门用于生成正弦波。但是我们使用的IC可以产生方波或三角波信号。DDS芯片内部发生的操作是数字的,因此它可以非常快速地切换频率,也可以非常快速地从一个信号切换到另一个信号。该设备具有良好的频率分辨率和宽频谱。

了解AD9833函数发生器IC的工作原理

我们项目的核心是由模拟设备设计和开发的AD9833可编程波形发生器IC。它是一种低功耗、可编程波形发生器,能够产生最大频率为12MHz的正弦波、三角波和方波。这是一款非常独特的IC,只需一个软件程序即可改变输出频率和相位。它有一个3线SPI接口,这就是为什么与这个IC通信变得非常简单和容易的原因。该IC的功能框图如下所示。

该IC的工作非常简单。如果我们看一下上面的功能框图,我们会发现我们有一个相位累加器,它的工作是存储从0到2π的所有可能的正弦波数字值。接下来,我们有SINROM,其工作是将相位信息转换为以后可以直接映射到幅度的信息。SINROM使用数字相位信息作为查找表的地址,并将相位信息转换为幅度。最后,我们有一个10位数模转换器,它的工作是从SINROM接收数字数据并将其转换为相应的模拟电压,这就是我们从输出中得到的电压。在输出端,我们还有一个开关,只需一点软件代码就可以打开或关闭它。我们将在本文后面讨论。AD9833数据表,您也可以查看它以获取更多信息。

构建基于AD9833的函数发生器所需的组件

下面列出了构建基于AD9833的函数发生器所需的组件,我们使用非常通用的组件设计了这个电路,这使得复制过程非常容易。

Arduino纳米-1

AD9833DDS函数发生器-1

128X64OLED显示屏-1

通用旋转编码器-1

DC桶形千斤顶-1

LM7809稳压器-1

470uF电容-1

220uF电容-1

104pF电容-1

10K电阻-6

轻触开关-4

螺丝端子5.04mm-1

女头-1

12V电源-1

基于AD9833的函数发生器-原理图

AD9833和基于Arduino的函数发生器的完整电路图如下所示。

我们将使用带有Arduino的AD9833来生成我们想要的频率。在本节中,我们将借助原理图解释所有细节;让我简要概述一下电路发生的情况。让我们从AD9833模块开始。AD9833模块为函数发生器模块,按照原理图与Arduino连接。为了给电路供电,我们使用了LM7809稳压器IC,它带有一个不错的去耦电容,这是必要的,因为电源噪声会干扰输出信号,从而导致不需要的输出。与往常一样,Arduino是这个项目的大脑。为了显示设定频率和其他有价值的信息,我们连接了一个128X64OLED显示模块。为了改变频率范围,我们使用了三个开关。第一个将频率设置为Hz,第二个将输出频率设置为KHz,第三个将频率设置为MHz,我们还有另一个按钮可用于启用或禁用输出。最后,我们有旋转编码器,我们必须连接一些上拉电阻,否则这些开关将不起作用,因为我们正在检查池方法上的按钮按下事件。旋转编码器用于改变频率,旋转编码器内部的轻触开关用于选择设定的波形。

基于AD9833的函数发生器-Arduino代码

此项目中使用的完整代码可在此页面底部找到。添加所需的头文件和源文件后,应该可以直接编译Arduino文件了。您可以从下面给出的链接下载ad9833Arduino库和其他库,或者您可以使用板管理器方法安装库。

ino中的代码说明。文件如下。首先,我们首先包含所有必需的库。AD9833DDS模块库首先是OLED库,我们的一些计算需要数学库。

#include//AD9833模块库#include//OLED线库#include//OLED支持库#include//OLED库#include//数学库

接下来,我们为按钮、开关、旋转编码器和OLED定义所有必要的输入和输出引脚。

#defineSCREEN_WIDATA_PINH128//OLED显示宽度(以像素为单位)#defineSCREEN_HEIGHT64//OLED显示高度,以像素为单位#defineSET_FREQUENCY_HZA2//以Hz为单位设置频率的按钮#defineSET_FREQUENCY_KHZA3//以Khz为单位设置频率的按钮#defineSET_FREQUENCY_MHZA6//以Mhz为单位设置频率的按钮#defineENABLE_DISABLE_OUTPUT_PINA7//启用/禁用输出的按钮#defineFNC_PIN4//AD9833模块需要的Fsync#defineCLK_PIN8//编码器的时钟引脚#defineDATA_PIN7//编码器的数据引脚#defineBTN_PIN9//编码器上的内部按钮

接下来,我们有我们的setup()函数,在该setup函数中,我们首先启用Serial进行调试。我们借助begin()方法初始化AD9833模块。接下来,我们将所有分配的旋转编码器引脚设置为输入。而我们将时钟引脚的值存储在clockPinState变量中,这是旋转编码器的必要步骤。

接下来,我们将所有按钮引脚设置为输入,并在display.begin()方法的帮助下启用OLED显示,我们还使用if语句检查是否有任何错误。完成后,我们清除显示并打印启动启动画面,我们添加2秒的延迟,这也是启动画面的延迟,最后,我们调用update_display()函数清除屏幕并更新再次显示。update_display()方法的细节将在本文后面讨论。

接下来,我们有我们的loop()函数,所有主要功能都写在循环部分。

无效循环(){clockPin=digitalRead(CLK_PIN);if(clockPin!=clockPinState&&clockPin==1){if(digitalRead(DATA_PIN)!=clockPin){柜台-;}别的{counter++;//编码器顺时针旋转,因此递增}如果(计数器<1)计数器=1;Serial.println(计数器);更新显示();}

最后,我们有了update_display()函数。在此功能中,我们所做的不仅仅是更新此显示器,因为显示器的某些部分无法在OLED中更新。要更新它,您必须使用新值重新绘制它。这使得编码过程变得更加困难。

在这个函数中,我们从清除显示开始。接下来,我们设置所需的文本大小。此后,我们设置光标并使用display.println("FunctionFunction");打印函数生成器;命令。在display.setCursor(0,20)函数的帮助下,我们再次将文本大小设置为2,将光标设置为(0,20)。

这是我们打印波浪信息的地方。

display.clearDisplay();//首先清除显示display.setTextSize(1);//设置文字大小display.setCursor(10,0);//设置光标位置display.println("函数生成器");//打印文本display.setTextSize(2);//设置文字大小display.setCursor(0,20);//设置光标位置

接下来,我们检查布尔变量以获取频率详细信息并更新moduleFrequency变量中的值。我们对Hz、kHz和MHz值执行此操作。接下来,我们检查waveSelect变量并确定选择了哪个波。现在,我们有了设置波形类型和频率的值。

我们再次设置光标并更新计数器值。我们再次检查布尔值以更新显示器上的频率范围,我们必须这样做,因为OLED的工作原理非常奇怪。

display.setCursor(45,20);display.println(计数器);//在显示器上打印计数器信息。如果(set_frequency_hz==1&&set_frequency_khz==0&&set_frequency_mhz==0){display.setCursor(90,20);display.println("Hz");//在显示器上打印Hz显示.显示();//当所有设置更新显示}如果(set_frequency_hz==0&&set_frequency_khz==1&&set_frequency_mhz==0){display.setCursor(90,20);display.println("Khz");显示.显示();//当所有设置更新显示}if(set_frequency_hz==0&&set_frequency_khz==0&&set_frequency_mhz==1){display.setCursor(90,20);display.println("Mhz");显示.显示();//当所有设置更新显示}

接下来,我们检查按钮按下变量以将输出打开/输出关闭到OLED。由于OLED模块,这再次需要完成。

如果(btn_state){display.setTextSize(1);display.setCursor(65,45);display.print("输出开启");//打印输出到显示器显示.显示();display.setTextSize(2);}别的{display.setTextSize(1);display.setCursor(65,45);display.print("输出关闭");//打印输出到显示器显示.显示();display.setTextSize(2);}

这标志着我们编码过程的结束。如果此时有疑惑,可以查看代码中的注释进一步理解。

测试基于AD9833的函数发生器

为了测试电路,使用上述设置。如您所见,我们已将12V直流电源适配器连接到DC筒形插孔,并将Hantek示波器连接到电路的输出端。我们还将示波器连接到笔记本电脑,以可视化和测量输出频率。

完成后,我们在旋转编码器的帮助下将输出频率设置为5Khz,并测试输出正弦波,果然,输出端是5Khz正弦波。

接下来,我们将输出波形改为三角波,但频率保持不变,输出波形如下图所示。

然后我们把输出改成方波,观察输出,是一个完美的方波。

我们还改变了频率范围并测试了输出,它运行良好。

进一步增强

该电路只是概念验证,需要进一步增强。首先,我们需要一块优质的PCB和一些优质的BNC连接器用于输出,否则我们无法获得更高的频率。模块的幅度非常低,因此为了增强它,我们需要一些运算放大器电路来放大输出电压。可以连接电位计以改变输出幅度。可以连接一个用于抵消信号的开关;这也是必备功能。此外,代码需要大量改进,因为它有点错误。最后,OLED显示器需要更换,否则无法编写易于理解的代码。

#include//AD9833模块

库#include//OLED线库

#include//OLED支持库

#include//OLED库

#include//数学库

#defineSCREEN_WIDATA_PINH128//OLED显示屏宽度,以像素为单位

#defineSCREEN_HEIGHT64//OLED显示屏高度,以像素为单位

#defineSET_FREQUENCY_HZA2//设置频率的按钮,以Hz为单位

#defineSET_FREQUENCY_KHZA3//以Khz为单位设置频率

的按钮#defineSET_FREQUENCY_MHZA6//以Mhz为单位设置频率的按钮

#defineENABLE_DISABLE_OUTPUT_PINA7//启用/禁用输出的按钮

#defineFNC_PIN4//AD9833模块所需的Fsync

#defineCLK_PIN8//编码器时钟引脚

#defineDATA_PIN7//编码器数据引脚

#defineBTN_PIN9//编码器内部按钮

intcounter=1;//如果旋转编码器转动

intclockPin;//这个Counter值会增加或减少//旋转编码器使用的占位符por引脚状态

intclockPinState;//旋转编码器使用的占位符por引脚状态

unsignedlongtime=0;//用于去抖动

unsignedlongmoduleFrequency;//用于设置输出频率

longdebounce=220;//去抖动延迟

boolbtn_state;//用于启用AD98333模块的禁用输出

boolset_frequency_hz=1;//AD9833模块的默认频率

boolset_frequency_khz;

boolset_frequency_mhz;

字符串waveSelect="SIN";//模块启动波形

intencoder_btn_count=0;//用于检查编码器按钮按下

Adafruit_SSD1306display(SCREEN_WIDATA_PINH,SCREEN_HEIGHT,&Wire,-1);

AD9833gen(FNC_PIN);

无效设置(){

序列.开始(9600);

pinMode(CLK_PIN,INPUT)后的第一个命令;

pinMode(DATA_PIN,输入);

pinMode(BTN_PIN,INPUT_PULLUP);

clockPinState=digitalRead(CLK_PIN);

pinMode(SET_FREQUENCY_HZ,输入);

pinMode(SET_FREQUENCY_KHZ,输入);

pinMode(SET_FREQUENCY_MHZ,输入);

pinMode(ENABLE_DISABLE_OUTPUT_PIN,输入);

if(!display.begin(SSD1306_SWITCHCAPVCC,0x3C)){//地址0x3Dfor128x64

Serial.println(F("SSD1306allocationfailed"));

为了(;;);

}

display.clearDisplay();//清屏

display.setTextSize(2);//设置文本大小

display.setTextColor(WHITE);//设置LCD颜色

display.setCursor(30,0);//设置光标位置

display.println("AD9833");//打印这个文本

display.setCursor(17,20);//设置光标位置

display.println("Function");//打印这个文本

display.setCursor(13,40);//设置光标位置

display.println("Generator");//打印这个文本

显示.显示();//更新显示

延迟(2000);//延迟2秒

update_display();//调用update_display函数

voidloop()

{

clockPin=digitalRead(CLK_PIN);

if(clockPin!=clockPinState&&clockPin==1){

if(digitalRead(DATA_PIN)!=clockPin){

计数器--;

else{

counter++;//编码器顺时针旋转,所以递增

if(counter<1)counter=1;

Serial.println(计数器);

更新显示();

时钟引脚状态=时钟引脚;//记住最后的CLK_PIN状态

//如果我们检测到LOW信号,按钮被按下

if(digitalRead(BTN_PIN)==LOW&&millis()-time>debounce){

encoder_btn_count++;//增加值

if(encoder_btn_count>2)//如果值大于2将其重置为0

encoder_btn_count=0;

if(encoder_btn_count==0){//如果值为0则选择正弦波

waveSelect="SIN";//用sin值更新字符串变量

update_display();//更新显示

if(encoder_btn_count==1){//如果值为1则选择方波

waveSelect="SQR";//使用SQR值更新字符串变量

if(encoder_btn_count==2){//如果值为1则选择三角波

waveSelect="TRI";//用TRI值更新字符串变量

//使用analogread方法检查按钮按下动作

//稍微延迟以帮助消除读数

if(analogRead(SET_FREQUENCY_HZ)<30&&millis()-time>debounce){//检查analogpin有去抖延迟

//更新布尔值

set_frequency_hz=1;

设置频率khz=0;

set_frequency_mhz=0;

if(analogRead(SET_FREQUENCY_KHZ)<30&&millis()-time>debounce){//使用debouncedelay检查analogpin

set_frequency_hz=0;

set_frequency_khz=1;

模块频率=计数器*1000;

if(analogRead(SET_FREQUENCY_MHZ)<30&&millis()-time>debounce){//使用debouncedelay检查analogpin

//update布尔值

set_frequency_mhz=1;

模块频率=计数器*1000000;

if(analogRead(ENABLE_DISABLE_OUTPUT_PIN)<30&&millis()-time>debounce){//使用debouncedelay检查analogpin

btn_state=!btn_state;//反转按钮状态

gen.EnableOutput(btn_state);//根据按钮状态启用/禁用函数发生器的输出

voidupdate_display()

display.clearDisplay();//首先清除显示

display.setTextSize(1);//设置文本大小

display.setCursor(10,0);//设置光标位置

display.println("FunctionGenerator");//打印文本

display.setCursor(0,20);//设置光标位置

if(set_frequency_hz==1&&set_frequency_khz==0&&set_frequency_mhz==0){//检查是否按下了以Hz为单位设置频率的按钮

moduleFrequency=counter;//更新模块频率变量与当前计数器值

if(set_frequency_hz==0&&set_frequency_khz==1&&set_frequency_mhz==0){//检查是否按下了设置KHz频率的按钮

moduleFrequency=counter*1000;//更新模块频率变量与当前计数器值但我们相乘1000tosetitonKHZ

if(set_frequency_hz==0&&set_frequency_khz==0&&set_frequency_mhz==1){//检查设置频率的按钮是否被按下

moduleFrequency=counter*1000000;

if(moduleFrequency>12000000)

moduleFrequency=12000000;//不要让频率大于12Mhz

计数器=12;

if(waveSelect=="SIN"

display.println("SIN");

gen.ApplySignal(SINE_WAVE,REG0,moduleFrequency);

Serial.println(moduleFrequency);

if(waveSelect=="SQR"){//选择Sqr波

display.println("SQR");

gen.ApplySignal(SQUARE_WAVE,REG0,moduleFrequency);

if(waveSelect=="TRI"){//选择三波

display.println("TRI");

gen.ApplySignal(TRIANGLE_WAVE,REG0,moduleFrequency);//更新AD9833模块。

display.setCursor(45,20);

display.println(计数器);//在显示屏上打印计数器信息。

if(set_frequency_hz==1&&set_frequency_khz==0&&set_frequency_mhz==0){

display.setCursor(90,20);

display.println("Hz");//在显示器上打印Hz

display.display();//当所有设置更新显示

if(set_frequency_hz==0&&set_frequency_khz==1&&set_frequency_mhz==0){

display.println("Khz");

显示.显示();//当所有设置更新显示

if(set_frequency_hz==0&&set_frequency_khz==0&&set_frequency_mhz==1){

THE END
1.海报模板软件排行榜前十名海报制作app有哪些,好用的海报制作app推荐免费制作海报的app制作海报app手机海报设计app放假通知制作海报app简历模板软件短视频模板软件ppt模板免费下载软件菜单设计模板app手机海报制作app海报软件app做海报的手机app免费制作海报软件手机海报软件做海报的手机软件免费设计海报app做海报软件免费海报制作app宣传海报制作软件app制作https://m.pianwan.com/s/zj-1479614
2.冬至将至,一键生成海报,超级简单,让你的来自国货美妆秘笈冬至将至,一键生成海报,超级简单,让你的节日氛围瞬间升级! (本内容由AI生成)#AI探索计划# #AI创造营# http://t.cn/A6uv7tGZ https://weibo.com/6212580255/5113725725967814
3.设计师必备的6大类33个工具网站1、Pngpix——免费png透明图层分类图库 2、Cleanpng——高质量免抠素材 3、Easyicon——60w+矢量图标 D、字体素材 3、第一字体——字体在线转换器 4、识字体网——支持截图搜字体 E、配色素材 1、Coolors——快速配色方案生成器 2、Colordrop——新颜色整合平台 https://zhuanlan.zhihu.com/p/549630672
4.听说C站还有人缺图片素材?一篇跟UI设计师要来的——图片网址整理球体纹路生成器 网址:https://wangyasai./Play-a-ball/ 介绍:可以给球体搭配不同的颜色形成不同的效果 一键生成西文搭配:https:// 向量画笔重绘器:模拟梵高油画质感https://wangyasai./Noise-flow-field-painter/ 散射渐变光效背景:https://wangyasai./Stars-Emmision/ http://www.360doc.com/content/21/1201/13/77937936_1006683531.shtml
5.Logo设计软件:商标海报生成器MakerShopvAppStoruPostupy v oblasti ochrany osobních údaj? se mohou li?it, nap?íklad v závislosti na funkcích, které pou?íváte, nebo na va?em věku.Dal?í informace Informace 提供者 PIXO Incorporation Velikost 368,8 MB Kategorie https://apps.apple.com/cn/app/logo-maker-shop/id1190077343?l=cs
6.AppStore中国iPhone图形和设计免费榜实时排名iOS榜单AI绘画 Unidream - AI梦境生成器 妙李 - 总榜 - 应用 27 图形和设计 5840/436 4.5 1.74万个评分 2024-11-25 28 CAD快速看图-CAD手机看图软件 AD 存旺 姜 - 总榜 - 应用 28 图形和设计 3 1284/8 4.6 786个评分 2024-09-18 29 MAKA设计-海报设计&H5邀请函制作 MAKA (Guangzhouhttps://www.qimai.cn/rank/index/brand/free/device/iphone/country/cn/genre/6027
7.DCloud插件市场uni_modules ai ai写真 写真生成器 写真照 写真照相馆 分类:uniCloud 云端一体项目模板 更新日期:2024-11-28 米然 创意海报生成器(强烈推荐) 收藏4 赞赏0 购买0 当下很火的AI应用,每日订单过百,创意海报生成,一键生成海报,现阶段接口免费使用,强烈推荐 (1 ) uni_modules 创意海报 AI海报 海报生成 宣https://ext.dcloud.net.cn/publisher?id=1059716&type=TotalSupport
8.文案人必上的45个网站策划总舵3.阿里妈妈创意中心-图文工具、智能生成文案、创意研究 网址:chuangyi.taobao.com/pages/template 4.古籍馆-在线古籍资源共享平台,让你的文字富有诗书气 1.秀米-最常用的编辑神器:海报、公众号、H5排版一应俱全 网址:xiumi.us/#/ 2.365编辑器-一键文章排版美化 网址:www.365editor.com https://www.shangyexinzhi.com/article/details/id-2468447/
9.探火导航·媒体人必备站点收录/微信视频号/设计师/短视频/抖音特别适用学习视频教程,这个工具可以把视频教程一键生成文字总结,免费额度60分钟 左脉梦幻师 左脉?梦幻师是一款基于前沿AI大模型的在线内容生成工具,擅长理解文本和生成内容,可用于处理和解决几乎任何涉及语言的任务 Sloyd Sloyd是一个3D建模工具,可以帮助用户快速轻松地为他们的项目创建3D资产。它使用参数生成器和机http://hao.tanhuoo.com/
10.阿德查询工具学会这些链接片段生成器免费使用技巧 2024-12-11 14:47:14作者:admin49 次 链接片段生成器的介绍链接片段生成器是一种非常实用的工具,专门用于将长链接转换为更短且易于分享的链接。这种工具在个人和商业方面都非常有用,能够帮助用户节省字符数、提高链接可读性,甚至追踪链接的点击情况。无论你是在社交媒体上分享内http://www.change-ad.cn/
11.ChatGPT免费网站在线体验列表导航站无论是用于产品照片、人像、图形、风景照片、动物照片还是物体,背景擦除器都能帮助用户实现理想的效果。 100 BGM 猫 BGM 猫提供版权背景音乐一站式服务,正版商业授权,AI 智能生成曲库,免费无限,快捷授权,一键下载。 101 BibiGPT 一键总结B站音视频内容 102 Bigjpg AI图片在线无损放大 103 Bing Image https://lzw.me/x/chatgpt-sites/
12.自媒体家园专业自媒体导航,专注自媒体人效率资源技能提升!AI营销海报、AI商品图 创客贴AI设计 1分钟生成高质量可商用设计!AI商品图、AI文案、智能抠图、图片修复、智能改图,开启AI智能设计新时代! 比格AIPPT AI一键生成PPT AI绘画 输入主题,一键生成PPT!135编辑器旗下在线制作PPT工具,只需输入PPT主题,AI就能够一键生成内容大纲并辅助完成PPT的设计制作。 iSlide AI一键https://www.zmthome.com/
13.火爆全网的AI绘画5万字AI绘画SDsdxlcomfyuiAnimatediff换脸inviteCode=6597612 自动生成 PPT 根据大纲内容 M365 设计器:https://www.microsoft.com/zh-cn/microsoft-365/premium-templates-with-microsoft-365 丢进文字和图片,自动美化排版 PPT Flourish:https://flourish.studio/ 输入数据表格,自动生成 PPT 动态可视化图表 SlidesGPT:仅需一句话,人工智能就能一键生成 PPT https://bbs.huaweicloud.com/blogs/424515
14.人工智能Ai工具集CN一键抠图免费试用在线抠图工具 凡科快图-Ai工具集 图片编辑器,免费在线图片工具箱 487 0 CN图片Ad有言3D视频 有言3D视频官网简介: 一站式 2,703 0 3D虚拟人角色3D视频生成CN视频创作平台https://ai-321.com/
15.GitHubmuzihuaner/chatgpt[?] https://firefly.adobe.comAdobe Firefly。Adobe推出的一款AI图片生成器。 [?] https://flair.aiFlair AI。你的私人AI设计师!一键生成精美产品照片 [?] https://fronty.comFronty。支持图像到 HTML CSS 转换器 [?] https://github.com/Boese0601/MagicDanceMagicDance。MagicDance是一种新颖有https://github.com/muzihuaner/chatgpt-nav/tree/823fabecf3740a5b8e81cea45dcc1dc2e382ff79
16.AI艺术二维码生成器3. 活动邀请:艺术二维码可以用于活动邀请,用户可以将二维码添加到活动海报、邀请函等上面,方便参与者扫描获取活动信息。 AI艺术二维码生成器官网入口网址 https://speech.actoncode.cn/ad/ AI聚合大数据显示,AI艺术二维码生成器官网非常受用户欢迎,请访问AI艺术二维码生成器网址入口(https://speech.actoncode.cn/ad/)https://aijuh.com/sites/aiyishuerweimashengchengqi.html
17.8个最佳WordPress网站广告管理插件横幅广告代码生成器 视觉编辑器 自定义CSS 专业版增加了点击检测,地理位置,报告,点击欺诈保护以及展示次数和点击次数限制。 价格:免费,专业版€20起 |更多信息 2.Advanced Ads Advanced Ads是Google AdSense合作伙伴,可以与所有广告类型和广告网络一起使用,包括Google AdSense,Google Ad Manager,media.net,亚马逊广告等https://www.wbolt.com/8-best-advertising-plugins.html
18.红黄色西安剪纸投影风简洁城市系列文化宣传中文海报在线设计软件Canva提供的原创红黄色西安剪纸投影风简洁城市系列文化宣传中文海报设计模板。点击“使用此模板”后即可在线设计制作海报(竖版)。 Canva可画支持所有素材的自主编辑:你可以进行删除素材、编辑文字、调整字号、字体、颜色、对齐等操作;还可以添加插画、形状、图表、图标以及替换背景图片或背景颜色等。 完成海报(https://www.canva.cn/templates/EAEnD5CgGKQ
19.ExpenseReportGenerator海报/平面广告营销案例ADGuider广告费用报告生成器 案例简介:看看: http://www.expenseasteak.com 这是纽约市一家高端牛排餐厅的所在地。输入你的餐费,它会神奇地产生一张假的良性收据,与你的费用报告一起提交。 简要说明: 高档牛排餐厅 Maloney & Porcelli 的客户一直认为他们是享受 24英寸牛排的首选,但考虑到金融危机 (首席财务官关注每一分钱https://www.adguider.com/case?id=8647078d00c0f6ae35d2c042cf714d83
20.非公版GTX1080哪个好?8款GeForceGTX1080全面深度对比评测显卡GTX 1080 烈焰战神X Top AD是七彩虹最新力作,换上了Silver Shark散热器,全金属的导风罩和中央红色涡轮式外形设计,看起来质感和美观程度都很不错。镂空造型背板创意略显不足,但PCB上拥有iGame LOGO灯效。 索泰GTX 1080 PGF 至尊OC 碳纤维外壳加上合金骨骼结构,越肩式PCB的宽大造型,营造出一种硬朗而霸气的感觉,https://www.jb51.net/hardware/xianka/527498_all.html
21.飞卢论坛精彩帖子大列表50页飞卢论坛【下载】adbook通讯录专家v1.15final标准版下载 2009-10-29 00:32:52 【下载】同学通讯录v1.0下载【下载】一键静音v0.3免费版下载 2009-10-28 22:38:21 【下载】抽奖程序(gift)2.0&5.5下载 2009-【下载】oemskinmaker(oem软件界面生成器)v0.55[发布]下载 2009-10-28 19:37:35 【下载】photocoolhttps://bbs.faloo.com/analog/index50.html
22.纯干货100个运营工具推荐dcci互联网数据中心官网11、 广告放肆:http://adfuns.com/ 12、 梅花网:http://www.meihua.info/c 八、短链生成工具 新浪微博短链接生成器: http://www.surl.sinaapp.com/ 站长工具 : 二十三、海报制作工具 1、 Adobe Photoshop(PS,需下载安装) 2、 Adobe Illustrator(AI,需下载安装) https://blog.csdn.net/techzio/article/details/116750263
23.隐私政策服务日志信息:当您使用我们的网站或客户端提供的产品或服务时,我们会自动收集您对我们服务的详细使用情况,作为服务日志保存,包括浏览、点击查看、搜索查询、收藏、添加至购物车、交易、售后、关注分享信息、发布信息,以及IP地址、浏览器类型、电信运营商、使用语言、访问日期和时间。 https://cftweb.3g.qq.com/privacy/privacyPolicy?content_id=99f500bbfdab4474d996157acee265c2
24.米兰发布125周年纪念海报:马尔蒂尼巴雷西等多名传奇出镜2024年12月16日是AC米兰俱乐部成立125周年的纪念日,在此之际,米兰俱乐部发布了海报,纪念这一特殊的时刻2019免费白菜网站大全,天盈彩科技,pc28怎么玩比较稳,中国竞彩网计算器,pc加拿大2.0网站必一体育运动hai2406ad6.top 加拿大28微信群扫码jnd96碘西OM www.32766aa.com 万能彩王彩票安卓版 2019旧版本手机http://m.huifengxinchang.cn/QJW/moa/jqorBfETQkV.html
25.2024最全美国Target百货网站购物攻略及省钱指南Target每周(周日至周六为一个周期)都会推出各种产品的折扣优惠的海报Weekly Ad,想知道有哪些好折扣一定要仔细翻海报,说不定心仪的产品正有大力折扣,购买下来很划算哟! 应节商品可以趁清仓时扫货 很多应节商品在节日过后的第2天起,价格会直降50%(糖果和杂货类会降30%),但如果你耐心等上7-10天,折扣力度会再加到https://www.extrabux.cn/chs/guide/4203670
26.MindMaster亿图脑图移动端支持AI生成海报,手机阅读更轻松 支持将思维导图智能生成故事脚本及对应的音视频 免费下载 跨平台云储存随时随地想用就用 支持网页在线、电脑桌面、手机、平板、微信小程序 多端实时同步,随时分享多人编辑 无需下载,不受设备限制,绘制专业脑图 免费下载 高颜值主题样式一键轻松绘制 33种主题样式,一键美化脑图,https://www.edrawsoft.cn/mind/ad/mindmap.html?channel=baidu&bd_vid=9450962655273921760
27.收藏营销人必备网站:6大类,41个网站报告查一查这个网站是可以直接搜索关键词的。比如你正在从事婚庆行业,那么你就可以在搜索框搜索“婚庆”两个字,你就可以得到近几年大量关于婚庆行业的各种数据啦,并且还会有很多关联的数据,当然,依然是免费的。 4、普华永道(https://www.pwccn.com/zh.html) https://www.niaogebiji.com/article-73940-1.html