单片机C52系列之(DA)TLC5615
单片机C52系列之(DA)TLC5615
TLC5615介绍(挑了一些自己觉得有用的介绍)
- 单5V电源工作;
- 3线串行接口;
- 上电时内部自动复位;
- 10位DAC电路;
- 推荐工作条件:负载电阻不得小于2KΩ
- TLC时序电路图
硬件连接(仿真显示)
TLC5615输出正弦波(频率可变)
若不想改变频率可自行删改
#include "reg52.h"
#include "intrins.h"
sbit sclk = P2^0; //串行时钟输入端
sbit cs = P2^1; //芯片选择,低有效
sbit din = P2^2; //串行二进制数输入端
sbit key1 = P2^7; //控制频率的加按键
sbit key2 = P2^6; //控制频率的减按键
int code table[]={512,518,525,531,537,543,550,556,562,568,575,581,587,593,599,606,612,618,624,630,636,642,648,654,660,666,672,678,684,690,696,702,708,713,719,725,730,736,742,747,753,758,764,769,775,780,785,791,796,801,806,811,816,821,826,831,836,841,846,850,855,860,864,869,873,878,882,886,891,895,899,903,907,911,915,919,922,926,930,933,937,940,944,947,950,953,957,960,963,966,968,971,974,977,979,982,984,986,989,991,993,995,997,999,1001,1003,1004,1006,1008,1009,1011,1012,1013,1014,1015,1017,1017,1018,1019,1020,1021,1021,1022,1022,1022,1023,1023,1023,1023,1023,1023,1023,1022,1022,1022,1021,1021,1020,1019,1018,1017,1017,1015,1014,1013,1012,1011,1009,1008,1006,1004,1003,1001,999,997,995,993,991,989,986,984,982,979,977,974,971,968,966,963,960,957,953,950,947,944,940,937,933,930,926,922,919,915,911,907,903,899,895,891,886,882,878,873,869,864,860,855,850,846,841,836,831,826,821,816,811,806,801,796,791,785,780,775,769,764,758,753,747,742,736,730,725,719,713,708,702,696,690,684,678,672,666,660,654,648,642,636,630,624,618,612,606,599,593,587,581,575,568,562,556,550,543,537,531,525,518,512,506,499,493,487,481,474,468,462,456,449,443,437,431,425,418,412,406,400,394,388,382,376,370,364,358,352,346,340,334,328,322,316,311,305,299,294,288,282,277,271,266,260,255,249,244,239,233,228,223,218,213,208,203,198,193,188,183,178,174,169,164,160,155,151,146,142,138,133,129,125,121,117,113,109,105,102,98,94,91,87,84,80,77,74,71,67,64,61,58,56,53,50,47,45,42,40,38,35,33,31,29,27,25,23,21,20,18,16,15,13,12,11,10,9,7,7,6,5,4,3,3,2,2,2,1,1,1,1,1,1,1,2,2,2,3,3,4,5,6,7,7,9,10,11,12,13,15,16,18,20,21,23,25,27,29,31,33,35,38,40,42,45,47,50,53,56,58,61,64,67,71,74,77,80,84,87,91,94,98,102,105,109,113,117,121,125,129,133,138,142,146,151,155,160,164,169,174,178,183,188,193,198,203,208,213,218,223,228,233,239,244,249,255,260,266,271,277,282,288,294,299,305,311,316,322,328,334,340,346,352,358,364,370,376,382,388,394,400,406,412,418,425,431,437,443,449,456,462,468,474,481,487,493,499,506,512 }; //正弦波
int val = 1000; //初始值void delay(unsigned int y)
{unsigned int x,z;for(x = y;x>0;x--);for(z = 120;z>0;z--);
}
void key_scan() //按键扫描程序
{if(key1==0) //key1按下{delay(10);while(!key1);val+=1000; //频率加if(val==10000) //上界{val = 1000;}}
else if(key2==0) //key2按下{delay(10);while(!key2);val-=100; //频率减if(val==100) //下界{val = 1000;}}}void DAC( unsigned int val)
{int a;cs = 0;val <<= 6;for(a = 0;a<12;a++) //从高到低发送{sclk = 1;_nop_();_nop_();if((val&0x8000) != 0) //判断是否有数据输入{din = 1; //信号1写入芯片}else din = 0; //信号0写入芯片_nop_();_nop_();val <<= 1;sclk = 0; //开启下一个数据写入}cs = 1;//芯片关闭
}
void main()
{TMOD = 0x01;TH0 = (65536 - val)/256;TL0 = (65536 - val)%256;TR0 = 1;ET0 = 1;EA = 1;while(1){ key_scan();}
}
void Timer0_isr() interrupt 1
{int i;TH0 = (65536 - val)/256;TL0 = (65536 - val)%256;DAC(table[i++]);if(i>512) i = 0;
}
TLC5615输出三角波
void sanjiaobo() //三角波
{unsigned int i;for(i = 0;i < 200;i++){DAC(i); //上}for(i=200;i>0;i--){DAC(i); //下}
}
- TLC5615周期取值方法(我这里一个周期采了512个点)
- 用EXCEL公式 =INT(SIN( A2 *2 * 3.1415926)/512) * 512+0.5)
- TLC5615判断最高频率或最低频率
- KEIL5先设置系统时钟为12MHZ
- 运行DEBUG,观察左侧SEC的差值
- 用差值乘以采样的数值算出来的值是被测信号最低时刻的周期
- 再把所设变量数值加到最大再次运行DUBUG得出来的是最高时刻的周期
单片机C52系列之(DA)TLC5615相关推荐
- 国产单片机GD32系列开坑,带你零死角玩转GD32 第六章
[开坑国产单片机GD32系列,带你零死角玩转GD32] 第六章 GD32F103C8T6串口开发板设计指南(二) 目录 [开坑国产单片机GD32系列,带你零死角玩转GD32] 第六章 GD32F103 ...
- 国产单片机GD32系列开坑,带你零死角玩转GD32 第五章
[开坑国产单片机GD32系列,带你零死角玩转GD32] 第五章 GD32F103C8T6串口开发板设计指南(一) 目录 [开坑国产单片机GD32系列,带你零死角玩转GD32] 第五章 GD32F103 ...
- 国产单片机GD32系列开坑,带你零死角玩转GD32 第二章
[开坑国产单片机GD32系列,带你零死角玩转GD32] 第二章 GD32开发环境的搭建,常用资料的获取,以及点亮LED! 目录 [开坑国产单片机GD32系列,带你零死角玩转GD32] 第二章 GD32 ...
- ad15的stc元件库_STC单片机 STC15F系列单片机 Altium PROTEL 设计的器件原理图+PCB封装库文件...
STC单片机 STC15F系列单片机 Altium PROTEL 设计的器件原理图+PCB封装库文件,Altium Designer.PROTEL原理图PCB封装文件,已经制板在实际项目中使用,可作为 ...
- 华大单片机HC32F460 系列MCU
1 摘要 本篇应用笔记主要介绍如何使用华大单片机 HC32F460 系列MCU的 DMA 模块传输数据. 2 DMA 简介 什么是 DMA? DMA(直接内存访问控制器)功能块可以不通过 CPU 高速 ...
- 51单片机开发系列一-51单片机开发环境搭建以及入门汇编代码
51单片机开发系列一 51单片机开发环境搭建以及入门汇编代码 象棋小子 1048272975 1. 51单片机概述 51单片机是对所有兼容Intel 8031指令系统的单片机的统称.目前教科书基 ...
- 国产单片机GD32系列开坑,带你零死角玩转GD32 第一章
[开坑国产单片机GD32系列,带你零死角玩转GD32] 第一章 GD32基本资料介绍 目录 [开坑国产单片机GD32系列,带你零死角玩转GD32] 第一章 GD32基本资料介绍 前言 一.STM32 ...
- 国产单片机GD32系列开坑,带你零死角玩转GD32 第四章
[开坑国产单片机GD32系列,带你零死角玩转GD32] 第四章 新朝雅政了属于是 目录 [开坑国产单片机GD32系列,带你零死角玩转GD32] 第四章 新朝雅政了属于是 (1)前言 (1)前言 知莫大 ...
- 国产单片机GD32系列开坑,带你零死角玩转GD32 第三章
[开坑国产单片机GD32系列,带你零死角玩转GD32] 第三章 GD32F103xx时钟系统分析 目录 [开坑国产单片机GD32系列,带你零死角玩转GD32] 第三章 GD32F103xx时钟系统分析 ...
- 51单片机学习笔记AD/DA
AD/DA AD(Analog to Digital):模拟-数字转换,将模拟信号转换为计算机可操作的数字信号.比如单片机只能识别0与5V数字信号,当输入为2.5V--模拟信号时,就需要转化为单片机所 ...
最新文章
- 微软 microsoft calendar control 11.0 控件下载
- cisco+++mysql_搭建cacti监控linux服务器,cisco,华为,mysql,
- 程序员面试题精选100题(62)-C/C++/C#面试题(5)
- unity开宝箱动画_[技术博客]Unity3d 动画控制
- javascript链式语法
- PHP API接口签名验证
- JavaScript脚本语言介绍并实现第一个Hello World程序
- java stream Interface BiFunction<T,U,R>
- Linux驱动编程--基于I2C子系统的I2C驱动
- 第二章 OpenHarmony工程介绍
- 7450清零_联想M7450F打印机加粉清零方法
- makefile中的隐含规则
- linux安装硬盘阵列卡驱动,centos7 RAID磁盘阵列卡驱动安装图文教程
- Win7 开机后3分钟内硬盘等狂闪解决办法
- 对新手严重不友好的强者——Nginx那些俯拾皆是的坑
- html5 驾考 答题样式,驾考科目一答题规律
- 应用程序正常初始化0xc0000135失败的解决办法
- NLP从入门到实战(三)
- [转] 一百本名著中的一百句话
- 工作常用的工具类JS+reset.css