迪文科技论坛

 找回密码
 立即注册
搜索
查看: 202|回复: 0

【开源】二次开发教学工程2_正弦波发生器

[复制链接]

9

主题

0

回帖

92

积分

注册会员

Rank: 2

积分
92
发表于 2023-6-1 21:28:17 | 显示全部楼层 |阅读模式
本帖最后由 Moonlight 于 2023-7-18 10:48 编辑

开发平台:EKT043开发板
正弦波发生器
一、作品功能介绍
  基于迪文显示屏的C51内核单片机的开发,使用1ms定时器中断,产生频率和幅值都可调的正弦波曲线。

二、工作原理
  本实验使用1ms定时器中断,即每1ms内产生一个脉冲。要使它产生1ms的脉冲需要对定时器2进行配置,定时器2计数时采用16位计数器,首先需要设定一个初值,每来一个脉冲,数值加1,当值为FFFF时,产生一个中断标志,同时从初值开始重新计数,如此往复即可以产生连续的1ms脉冲。产生正弦波的方法可以用查表法,利用相位计数器对正弦波的相位进行查表,首先需要利用正弦波频率、采样频率与步长之间的关系求出步长的大小,再用相位计数器从0度开始累加一直加到360度,每1ms计算一次,这样就可以产生相应频率的正弦波;产生正弦波也可以采用递推公式的计算方法,用前两个正弦函数的大小计算出第三个正弦函数的大小。
三、设计思路
1、硬件设计
  本实验所需模块主要有三部分:计算机、开发板、通讯板,需要将各个模块连接成系统。开发板引出了5路串口,所有IO口,IO口连接编码器开关。在没有外接编码器开关的情况下也可以正常运行本工程。
2、软件设计
  配置定时器2时的代码大致为T2CON=0X71;设置脉冲数为TH2=0TL2=0;设置计数初始值TRL2H=0XBCTRL2C=0XCD;打开定时器2 ET2=1TR2=1;打开总中断EA=1。然后进入中断服务程序。产生正弦波采用查表法,首先得出步长与频率的关系为步长是正弦波频率/65535*采样频率1000HZ,然后用相位计数器从0度开始累加一直加到360度,每1ms计算一次,这样就可以产生相应频率的正弦波。
3、GUI设计
  采用DGUS软件对界面进行了简单的设计,使界面简洁美观。
四、工程代码及演示视频
  工程文件、工程代码、演示视频打包见附件。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|迪文科技论坛 ( 京ICP备05033781号-1 )

GMT+8, 2024-11-23 01:42 , Processed in 0.066430 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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