002_89C52_Proteus_DAC0832_输出50HZ,正弦波,三角波,矩形波,锯齿波
(一)非常感谢:89C51与ad0832 输出正弦波,三角波,矩形波,锯齿波
(二)在上面的情况下进行程序的修改,实现50HZ的输出
(三)电路图
(三)输出方波
(四)输出锯齿波
(五)输出三角波
(六)输出正玄波
(七)程序
#include <absacc.h>
#include <reg52.h>#define DA0832 P2
#define DATA 57 //定时器延时 #define uchar unsigned char
#define uint unsigned intsbit S1 = P1^0;
sbit S2 = P1^1;
//00锯齿波;01方波;10三角波;11正弦波uchar code sin_tab[] = //正弦波输出表
{0x80,0x83,0x86,0x89,0x8D,0x90,0x93,0x96,0x99,0x9C,0x9F,0xA2,0xA5,0xA8,0xAB,0xAE,0xB1,0xB4,0xB7,0xBA,0xBC,0xBF,0xC2,0xC5,0xC7,0xCA,0xCC,0xCF,0xD1,0xD4,0xD6,0xD8,0xDA,0xDD,0xDF,0xE1,0xE3,0xE5,0xE7,0xE9,0xEA,0xEC,0xEE,0xEF,0xF1,0xF2,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFD,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFD,0xFD,0xFC,0xFB,0xFA,0xF9,0xF8,0xF7,0xF6,0xF5,0xF4,0xF2,0xF1,0xEF,0xEE,0xEC,0xEA,0xE9,0xE7,0xE5,0xE3,0xE1,0xDF,0xDD,0xDA,0xD8,0xD6,0xD4,0xD1,0xCF,0xCC,0xCA,0xC7,0xC5,0xC2,0xBF,0xBC,0xBA,0xB7,0xB4,0xB1,0xAE,0xAB,0xA8,0xA5,0xA2,0x9F,0x9C,0x99,0x96,0x93,0x90,0x8D,0x89,0x86,0x83,0x80,0x80,0x7C,0x79,0x76,0x72,0x6F,0x6C,0x69,0x66,0x63,0x60,0x5D,0x5A,0x57,0x55,0x51,0x4E,0x4C,0x48,0x45,0x43,0x40,0x3D,0x3A,0x38,0x35,0x33,0x30,0x2E,0x2B,0x29,0x27,0x25,0x22,0x20,0x1E,0x1C,0x1A,0x18,0x16,0x15,0x13,0x11,0x10,0x0E,0x0D,0x0B,0x0A,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0D,0x0E,0x10,0x11,0x13,0x15,0x16,0x18,0x1A,0x1C,0x1E,0x20,0x22,0x25,0x27,0x29,0x2B,0x2E,0x30,0x33,0x35,0x38,0x3A,0x3D,0x40,0x43,0x45,0x48,0x4C,0x4E,0x51,0x55,0x57,0x5A,0x5D,0x60,0x63,0x66,0x69,0x6C,0x6F,0x72,0x76,0x79,0x7C,0x7E
};void stair(void);//锯齿波
void square(void);//方波
void trian();//三角波
void sin();//正弦波
void scan();//扫描函数
void Timer0Init(void); //75微秒@11.0592MHz
uchar flag = 0;void main()
{ P2 = 0xff;Timer0Init();while(1){//逐个测试 //stair(); /*锯齿波*/// square(); /*方波*/// trian(); /*三角波*/// sin(); /*正弦波*/scan();}
}void Timer0Init(void) //75微秒@11.0592MHz
{TMOD = 0x01; //设置定时器模式TH0 = (65536 - DATA) / 256; //设置定时初值TL0 = (65536 - DATA) % 256; //设置定时初值ET0 = 1; //TF0标志TR0 = 1; //定时器0开始计时EA = 1;
}
void timer0_ISR(void) interrupt 1
{TH0 = (65536 - DATA) / 256; //设置定时初值TL0 = (65536 - DATA) % 256; //设置定时初值TR0 = 0;flag = 1;
}void scan()
{if((0 == S1) &&(0 == S2))stair();else if((1 == S1) && (0 == S2))square();else if((0 == S1) && (1 == S2))trian();elsesin();}void stair(void)
{uchar i;for(i = 0 ;i < 255; i++){DA0832 = i;TR0 = 1;while(flag == 0);flag = 0;}}void square(void)
{int i;DA0832 = 0xff;for(i = 0;i < 125;i++){TR0 = 1;while(flag == 0);flag = 0; }DA0832 = 0x00;for(i = 0;i < 125;i++){TR0 = 1;while(flag == 0);flag = 0; }
}void trian(void)
{uchar i;for(i = 0 ;i < 125; i++){DA0832 = i;TR0 = 1;while(flag == 0);flag = 0;}for(i=125 ;i > 0; i--){DA0832 = i;TR0 = 1;while(flag == 0);flag = 0;}
}void sin()
{uchar i;for(i = 0; i < 255; i++){DA0832 = sin_tab[i];TR0 = 1;while(flag == 0);flag = 0; }
}
(八)工程源码下载
https://download.csdn.net/download/xiaoguoge11/10742925
002_89C52_Proteus_DAC0832_输出50HZ,正弦波,三角波,矩形波,锯齿波相关推荐
- 【51毕业设计案例】【006】波形发生器(正弦波、矩形波、三角波、锯齿波)-基于51单片机
功能介绍: 1.输出 正弦波.矩形波.三角波.锯齿波 波形 2.设定波形输出频率 3.设定修改频率的步进值 整体功能简述: 通过按键可以修改输出的波形,一共可以输出四种波形,分别是:正弦波.矩形波.三 ...
- 函数信号发生器:本设计中要求输出方波、三角波、锯齿波、正弦波,电压0-10V可调,调节精度0.1V;输出信号的频率0-100Hz;占空比可调
函数信号发生器:本设计中要求输出方波.三角波.锯齿波.正弦波,电压0-10V可调,调节精度0.1V:输出信号的频率0-100Hz:占空比可调. 本次课题设计将利用单片机控制来实现信号发生系统所要求的功 ...
- MATLAB输出四种常用波形(方波、正弦波、三角波、锯齿波)
1.我们在处理数学以及信号的时候经常会用到MATLAB,因为它可以使我们直观地观察到我们需要的信号的模型.因此掌握基本的MATLAB还是有必要的.这里我们来讲解一下如何用MATLAB产生四种常用波形( ...
- Verilog 代码编写 DDS信号发生器(幅频相可调正弦波、方波、三角波、锯齿波)纯VIVADO编写仿真
DDS(Direct Digital Synthesizer)即数字合成器,是一种新型的频率合成技术,具有相对带宽大,频率转换时间短.分辨率高和相位连续性好等优点.较容易实现频率.相位以及幅度的数控调 ...
- 基于stm32单片机的四种波形发生器正弦波、方波、三角波、锯齿波
基于stm32单片机的四种波形发生器(源程序+仿真+设计报告)全套资料 资料编号:010 具体功能: (1) 可以实现四种波形:正弦波.方波.三角波.锯齿波: (2) 通过按键进行选择,频率可以调整: ...
- MATLAB绘制正弦波、方波、三角波、锯齿波的mif文件
MATLAB绘制正弦波.方波.三角波.锯齿波的mif文件 % 对波形进行等间隔采样,以采样次数作为 ROM 存储 % 地址,将采集的波形幅值数据做为存储数据写入存储地址对应的存储空间 % 采样次数为 ...
- PWM呼吸灯之三角波、锯齿波、正弦函数波
脉冲宽度调制(PWM),是英文"Pulse Width Modulation" 的缩写,简称脉宽调制,是利用 微处理器(MCU)的数字输出来对模拟电路进行控制的一种非常有效的技术. ...
- 【51单片机】DAC0832制作信号发生器(方波,三角波,锯齿波)
[51单片机]DAC0832制作信号发生器(方波,三角波,锯齿波) 1 A/D与D/A 2 电路与元器件 3 源代码 3.1 程序开始 3.2 监视按钮操作 3.3 按钮控制显示波形 3.4 方波产生 ...
- matlab 实现三角波、倒锯齿波与锯齿波
matlab生成锯齿波.倒锯齿波和三角波的函数都是 sawtooth 生成锯齿波 使用的函数 f=sawtooth(2*pi*f*t); 其中 f 为频率 锯齿波的频率控制和正弦波和三角波函数的控制是 ...
最新文章
- Python进阶-----类、对象的相关知识
- pyinstaller 打包成exe
- 直播分享|邓文彬:如何在GPU/CPU/移动端高效训练和推断CNN网络
- 竖直手风琴导航菜单栏
- rocketmq 消息 自定义_RocketMQ的消息发送及消费
- 即构科技张靖雨:以最优的用户体验为第一评估要素
- 丁卓雅计算机学院,幼儿园音乐教育教学研讨会暨许卓雅教授音乐专题讲座
- 程序员面试金典——18.12最大和子矩阵
- 万科集团:掌握采购主动权,实现采购流程精细化管理
- 抖音开放平台开发记录
- oracle 软件证书错误,IE上ORACLE OEM 证书错误 , 导航阻止,无法”继续浏览此网站”...
- Q-Q图和P-P图傻傻整不明白?
- java win7 管理员权限_Win7系统如何一键取得管理员权限
- android 远程代码,Android 远程连接数据库。。。。。(示例代码)
- TypeScript入门与区块链项目实战(TypeScript Quickly)阅读记录
- 阴阳师哪些服务器可以跨系统转移,阴阳师怎么跨系统角色转移_阴阳师跨系统角色转移流程攻略_玩游戏网...
- Datatable 插件出现DataTable is not a function 错误
- 手把手教你做一个自己的chrome扩展程序
- Linux 虚拟文件系统(VFS)介绍
- 手机控必备网站,让自己拥有更好的智能手机