Proteus仿真:基于STM32的简易波形发生器设计
创作时间:
作者:
@小白创作中心
Proteus仿真:基于STM32的简易波形发生器设计
引用
CSDN
1.
https://m.blog.csdn.net/XCHardware/article/details/139872560
本文介绍了一个基于STM32单片机的简易波形发生器的Proteus仿真设计。通过按键可以调节输出波形的类型(方波、三角波、锯齿波),并在Proteus内置示波器上实时观察波形变化。文章详细介绍了系统设计和程序实现,适合电子工程和嵌入式系统开发领域的工程师和学生参考。
一.系统概述
系统内使用STM32单片机进行主控,proteus内部集成示波器,使用按键可以调节波形的输出方式,在示波器上可以实时观察波形的变化。
二.仿真概述
- 调出示波器且此时没有按下按键波形就是一条直线
2.按下方波按键就可以在示波器上看到方波波形 - 按下三角波按键就可以在示波器上看到三角波波形
4.按下锯齿波按键就能看到锯齿波波形,可以调节示波器的旋钮来移动查看和放大缩小
三.程序设计
#include <stm32f10x.h>
#include <delay.h>
#include <Lcd1602.h>
#include <DAC0832.h>
#include <Key.h>
int main(void)
{
u8 f=0,i=0,k=0;
Lcd1602_Init();
DAC0832_Init();
Key_Init();
while(1)
{
if(Key0==0||Key1==0||Key2==0||Key3==0)
{
delay_ms(100);
if(Key0==0)
{
k=1;
while(Key0);
}
if(Key1==0)
{
k=2;
while(Key1);
}
if(Key2==0)
{
k=3;
while(Key2);
}
if(Key3==0)
{
k=0;
while(Key3);
}
}
if(k==1)
{
//方波======================================
if(f==0)
{
i++;
DAC_com(255);
delay_us(19);
if(i==255)
{
f=1;
}
}
else
{
i--;
DAC_com(0);
delay_us(19);
if(i==0)
{
f=0;
}
}
}
if(k==2)
{
//三角波======================================
if(f==0)
{
i++;
DAC_com(i);
delay_us(19);
if(i==255)
{
f=1;
}
}
else
{
i--;
DAC_com(i);
delay_us(19);
if(i==0)
{
f=0;
}
}
}
if(k==3)
{
//锯齿======================================
if(f==0)
{
if(i<255)
{
i++;
DAC_com(i);
delay_us(19);
}else i=0;
}
}
}
}
热门推荐
运动后心率好不要超过多少
《庆余年》第一季特别版与原版:差异与特色深度剖析
送您一份老年人拔牙“安全攻略”
送您一份老年人拔牙“安全攻略”
人的三重脑:本能脑、情绪脑和理智脑
体寒湿气重能喝藏红花吗?藏红花是伤肝还是养肝?
第一次中东战争:新生的以色列如何击败阿拉伯联军?
光纤药物递送与光控释放:肿瘤化疗的新希望
英伟达显卡更新:全面指南与最新功能解析
个人养老保险的理赔流程是怎样的?
MAF180:一个被低估的跑步训练法,让你轻松慢跑,成绩却能“破圈”闪耀!
演讲的魔法:如何通过口才训练传递情感与感染力
网络搜索记录会被监控吗?这篇文章让人大开眼界
如何快速散去烟味?散烟味的方法有哪些优缺点?
Excel中按小数位筛选的多种方法
出入境通行证跟护照有什么区别
沟通的技巧和方法有哪些
韩国707特种部队公交车反劫持演练:从接近到控制的全流程解析
起诉诈骗案需要哪些证据?欺诈罪与诈骗罪有何区别?
诈骗能否提起附带民事诉讼请求
「SWOT分析法」完整指南,附Netflix案例及SWOT分析表
英超球迷文化与身份认同的多元性探讨:从激情到归属感的塑造
外贸独立站开发客户效果:多语言支持方案
怎么评估优化审批流程的效果?
房地产如何谈大客户管理
接触网工丨空中的“舞者”
中国四大救命中药丸
电感饱和现象是什么?电感的特性及关键参数
千万别小看非洲,不知道有多少人在那里做外贸发了
机械设计不可忽视的细节:如何巧妙设计高强度焊接结构件?