標(biāo)題: 基于STM32的四種波形發(fā)生器設(shè)計(jì)和Proteus仿真 [打印本頁(yè)]
作者: YF12 時(shí)間: 2020-7-17 01:01
標(biāo)題: 基于STM32的四種波形發(fā)生器設(shè)計(jì)和Proteus仿真
(1) 可以實(shí)現(xiàn)四種波形:正弦波、方波、三角波、鋸齒波;
(2) 通過(guò)按鍵進(jìn)行選擇,頻率可以調(diào)整;
(3) LCD液晶顯示;
(4)設(shè)計(jì)出來(lái)之后用Proteus軟件仿真出效果;
主要硬件設(shè)備:STM32F103單片機(jī)、DAC0832數(shù)模轉(zhuǎn)換芯片、矩陣鍵盤、LCD12864液晶屏幕。
效果圖
1.png (203.07 KB, 下載次數(shù): 133)
下載附件
2020-7-17 00:20 上傳
正弦波
2.png (239.11 KB, 下載次數(shù): 121)
下載附件
2020-7-17 00:20 上傳
方波
3.png (197.05 KB, 下載次數(shù): 122)
下載附件
2020-7-17 00:20 上傳
三角波
4.png (210.1 KB, 下載次數(shù): 123)
下載附件
2020-7-17 00:20 上傳
鋸齒波
單片機(jī)源程序如下:
- #include "stm32f10x.h"
- #include "sys.h"
- #include "delay.h"
- #include "12864.h"
- #include "key4_4.h"
- #include "timer.h"
- //LYF
- #define KEY0 GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_10) //讀取按鍵0
- void Delay_Ms(u16 time);
- /*************** 配置Switch用到的I/O口 *******************/
- void Init_GPIO_Switch(void)
- {
- GPIO_InitTypeDef GPIO_InitStructure;
-
- GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);//關(guān)閉jtag,使能SWD,可以用SWD模式調(diào)試
-
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); // 使能PC端口時(shí)鐘
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; //PC0
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度為50MHz
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //設(shè)置成輸入
- GPIO_Init(GPIOB, &GPIO_InitStructure); //初始化PC0
- }
- /* Private functions ---------------------------------------------------------*/
- /*******************************************************************************
- *功能名稱:main
- *描述:主程序。
- *輸入:無(wú)
- *輸出:無(wú)
- *返回:無(wú)
- *******************************************************************************/
- int main(void)
- {
- u8 i=0;
- RCC_ClocksTypeDef RCC_Clocks; //初始化程序
-
- RCC_Configuration(RCC_PLLMul_4); //8M*4 == 32M
- RCC_GetClocksFreq(&RCC_Clocks); //獲取片上時(shí)鐘
-
- Init_12864(); //初始化12864液晶
-
- Key_Init();
- Init_GPIO_Switch();
- Init_GPIO_DAC0832();
-
- Data0=25;
- TIM3_Int_Init(50+Data0,320); //頻率:32000000/ 320 ==100 000 /100 == 1000 /50==20
-
- LCD_P6x8Str(3,16," Sine Wave ");
- LCD_P6x8Str(7,6*2,"Frequency: 15 Hz");
-
- while (1)
- {
- if(KEY0)
- {
- if(i!=2)
- {
- __set_PRIMASK(1);
- GPIO_ResetBits(GPIOB, ((uint16_t)0xC000));
- }
- Key_Test();
-
- i=2;
- }
- else{
-
- if(i!=5)
- {
- TIM3_Int_Init(50+Data0,320);
- __set_PRIMASK(0); //使能TIMx外設(shè)
- GPIO_ResetBits(GPIOB, ((uint16_t)0xC000));
- }
-
- i=5;
- }
- }
- }
- //LYF
復(fù)制代碼
全部資料51hei下載地址:
波形發(fā)生器.7z
(2.29 MB, 下載次數(shù): 497)
2020-7-21 01:37 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者: 51hei團(tuán)團(tuán) 時(shí)間: 2020-7-21 01:38
好資料,51黑有你更精彩!!!
作者: 烤魚c 時(shí)間: 2020-7-26 19:46
請(qǐng)問(wèn)一下為什么仿真里報(bào)一萬(wàn)個(gè)警告,顯示總線錯(cuò)誤
作者: YF12 時(shí)間: 2020-8-9 21:36
重新裝載一下hex文件,還不行就根據(jù)提升配置一下供電網(wǎng)
作者: 拔胡蘿貝 時(shí)間: 2021-1-30 19:51
你好請(qǐng)問(wèn)一下,仿真過(guò)程中如何更換顯示的波形啊,按鍵按了都沒(méi)有反應(yīng)呢
作者: 袁木子愛(ài)學(xué)習(xí) 時(shí)間: 2021-2-1 16:48
我也想知道
怎么切換波形
作者: 袁木子愛(ài)學(xué)習(xí) 時(shí)間: 2021-2-1 16:49
請(qǐng)問(wèn)這個(gè)如何切換波形 按了按鍵沒(méi)有反應(yīng)
作者: BlueFox 時(shí)間: 2021-3-7 14:09
下載下來(lái)學(xué)習(xí)學(xué)習(xí)!!謝謝分享!!
作者: neomuzoahea 時(shí)間: 2021-4-20 15:24
感覺(jué)方波有一點(diǎn)畸形 這怎么解決
作者: YF12 時(shí)間: 2021-5-29 11:10
先把開(kāi)關(guān)打開(kāi)關(guān)閉波形輸出,(不然電腦帶不動(dòng))在按A,B,C,D切換
作者: YF12 時(shí)間: 2021-5-29 11:11
把方波輸出電壓調(diào)低一點(diǎn)點(diǎn)就可以
作者: RDH 時(shí)間: 2021-6-13 11:19
矩陣按鍵中0-9有什么用呢,急急急求解!
作者: RDH 時(shí)間: 2021-6-13 12:18
那個(gè)按鍵0-9怎么使用,非常著急,求解
作者: RDH 時(shí)間: 2021-6-15 15:18
neomuzoahea 發(fā)表于 2021-4-20 15:24
感覺(jué)方波有一點(diǎn)畸形 這怎么解決
請(qǐng)問(wèn)矩陣按鍵中0-9有什么用呢
作者: RDH 時(shí)間: 2021-6-15 15:19
YF12 發(fā)表于 2020-8-9 21:36
重新裝載一下hex文件,還不行就根據(jù)提升配置一下供電網(wǎng)
請(qǐng)問(wèn)矩陣按鍵中0-9有什么用呢,如何使用,急急急求解
作者: YF12 時(shí)間: 2021-6-27 21:34
測(cè)試用的
作者: 大麥豆 時(shí)間: 2021-6-30 14:52
感覺(jué)有點(diǎn)復(fù)雜
作者: 2464079027 時(shí)間: 2021-8-9 13:28
怎么調(diào)高輸出頻率呀,有沒(méi)有大神能講講

作者: YF12 時(shí)間: 2021-8-13 11:19
關(guān)閉開(kāi)關(guān)(關(guān)閉波形),#鍵+,*鍵-,要改頻率上限到key4_4.c和Timer.c文件上該
作者: YF12 時(shí)間: 2021-8-13 14:02
main函數(shù)73行:TIM3_Int_Init(50+Data0,320/2);
sine_wave函數(shù):double x=(double)location/25*PI;//把0-100放縮到0-2派
TIM3_IRQHandler中斷函數(shù):case W_SINE:sine_wave((u8)(time*freq/50)%50);break;//計(jì)算出波的位置
3個(gè)地方改一下就可以,要波形好看,頻率高就把TIM3中斷關(guān)掉,里面的程序放到mian里面的死循環(huán)里面就可以,注意電腦性能可以跟得上
作者: zkgl 時(shí)間: 2022-5-9 10:24
好資料,51黑有你更精彩!!!
作者: zkgl 時(shí)間: 2022-5-9 12:33
矩陣按鍵中0-9有什么用呢,急急急求解!
作者: Thinking-227 時(shí)間: 2024-12-8 09:45
報(bào)錯(cuò)說(shuō):VCC and GND nets are connected check net GND! 這要怎么解決?
作者: Thinking-227 時(shí)間: 2024-12-8 09:46
VCC and GND nets are connected check net GND!
出現(xiàn)這個(gè)報(bào)錯(cuò)要怎么解決?
作者: 456745@ 時(shí)間: 2025-5-8 19:47
基于STM32的四種波形發(fā)生器設(shè)計(jì)和Proteus仿真,代碼是用keil4編譯運(yùn)行嗎?
歡迎光臨 (http://m.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
av网址在线免费观看
|
日韩网站免费观看
|
中国特级毛片
|
www四虎
|
青青草国产在线视频
|
99精品网站
|
国产一区二区三区免费
|
免费在线国产
|
五月婷婷婷
|
国产黄色免费
|
日韩在线一区二区三区
|
欧美亚洲一区二区三区
|
精品1区2区3区
|
黄色网页免费
|
99一区二区三区
|
久久这里都是精品
|
av免费看网站
|
日本中文字幕在线播放
|
免费av大片|
国产综合自拍
|
黄色一级片免费看
|
国产成人三级一区二区在线观看一
|
精品国产欧美一区二区三区成人
|
蜜臀av性久久久久av蜜臀妖精
|
538精品视频
|
一级毛片久久久
|
一级大片免费看
|
成人在线视频观看
|
美女黄色小说
|
日韩在线中文字幕
|
男女啪啪网站
|
国产高潮在线
|
成年人免费在线观看
|
成人看
|
九色在线播放
|
日韩av一二三区
|
日韩一级淫片
|
在线视频一区二区
|
免费黄色小网站
|
欧美激情视频一区二区
|
欧美在线免费观看
|