单片机C52系列之(DA)TLC5615

TLC5615介绍(挑了一些自己觉得有用的介绍)

  1. 单5V电源工作;
  2. 3线串行接口;
  3. 上电时内部自动复位;
  4. 10位DAC电路;
  5. 推荐工作条件:负载电阻不得小于2KΩ
  6. 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相关推荐

  1. 国产单片机GD32系列开坑,带你零死角玩转GD32 第六章

    [开坑国产单片机GD32系列,带你零死角玩转GD32] 第六章 GD32F103C8T6串口开发板设计指南(二) 目录 [开坑国产单片机GD32系列,带你零死角玩转GD32] 第六章 GD32F103 ...

  2. 国产单片机GD32系列开坑,带你零死角玩转GD32 第五章

    [开坑国产单片机GD32系列,带你零死角玩转GD32] 第五章 GD32F103C8T6串口开发板设计指南(一) 目录 [开坑国产单片机GD32系列,带你零死角玩转GD32] 第五章 GD32F103 ...

  3. 国产单片机GD32系列开坑,带你零死角玩转GD32 第二章

    [开坑国产单片机GD32系列,带你零死角玩转GD32] 第二章 GD32开发环境的搭建,常用资料的获取,以及点亮LED! 目录 [开坑国产单片机GD32系列,带你零死角玩转GD32] 第二章 GD32 ...

  4. ad15的stc元件库_STC单片机 STC15F系列单片机 Altium PROTEL 设计的器件原理图+PCB封装库文件...

    STC单片机 STC15F系列单片机 Altium PROTEL 设计的器件原理图+PCB封装库文件,Altium Designer.PROTEL原理图PCB封装文件,已经制板在实际项目中使用,可作为 ...

  5. 华大单片机HC32F460 系列MCU

    1 摘要 本篇应用笔记主要介绍如何使用华大单片机 HC32F460 系列MCU的 DMA 模块传输数据. 2 DMA 简介 什么是 DMA? DMA(直接内存访问控制器)功能块可以不通过 CPU 高速 ...

  6. 51单片机开发系列一-51单片机开发环境搭建以及入门汇编代码

    51单片机开发系列一 51单片机开发环境搭建以及入门汇编代码 象棋小子    1048272975 1. 51单片机概述 51单片机是对所有兼容Intel 8031指令系统的单片机的统称.目前教科书基 ...

  7. 国产单片机GD32系列开坑,带你零死角玩转GD32 第一章

    [开坑国产单片机GD32系列,带你零死角玩转GD32] 第一章 GD32基本资料介绍 目录 [开坑国产单片机GD32系列,带你零死角玩转GD32] 第一章 GD32基本资料介绍 前言 一.STM32 ...

  8. 国产单片机GD32系列开坑,带你零死角玩转GD32 第四章

    [开坑国产单片机GD32系列,带你零死角玩转GD32] 第四章 新朝雅政了属于是 目录 [开坑国产单片机GD32系列,带你零死角玩转GD32] 第四章 新朝雅政了属于是 (1)前言 (1)前言 知莫大 ...

  9. 国产单片机GD32系列开坑,带你零死角玩转GD32 第三章

    [开坑国产单片机GD32系列,带你零死角玩转GD32] 第三章 GD32F103xx时钟系统分析 目录 [开坑国产单片机GD32系列,带你零死角玩转GD32] 第三章 GD32F103xx时钟系统分析 ...

  10. 51单片机学习笔记AD/DA

    AD/DA AD(Analog to Digital):模拟-数字转换,将模拟信号转换为计算机可操作的数字信号.比如单片机只能识别0与5V数字信号,当输入为2.5V--模拟信号时,就需要转化为单片机所 ...

最新文章

  1. 微软 microsoft calendar control 11.0 控件下载
  2. cisco+++mysql_搭建cacti监控linux服务器,cisco,华为,mysql,
  3. 程序员面试题精选100题(62)-C/C++/C#面试题(5)
  4. unity开宝箱动画_[技术博客]Unity3d 动画控制
  5. javascript链式语法
  6. PHP API接口签名验证
  7. JavaScript脚本语言介绍并实现第一个Hello World程序
  8. java stream Interface BiFunction<T,U,R>
  9. Linux驱动编程--基于I2C子系统的I2C驱动
  10. 第二章 OpenHarmony工程介绍
  11. 7450清零_联想M7450F打印机加粉清零方法
  12. makefile中的隐含规则
  13. linux安装硬盘阵列卡驱动,centos7 RAID磁盘阵列卡驱动安装图文教程
  14. Win7 开机后3分钟内硬盘等狂闪解决办法
  15. 对新手严重不友好的强者——Nginx那些俯拾皆是的坑
  16. html5 驾考 答题样式,驾考科目一答题规律
  17. 应用程序正常初始化0xc0000135失败的解决办法
  18. NLP从入门到实战(三)
  19. [转] 一百本名著中的一百句话
  20. 工作常用的工具类JS+reset.css

热门文章

  1. ICEM使用经验与网格划分错误分析
  2. CentOS向日葵安装
  3. 微信小程序之扫一扫功能
  4. 数据集的划分--训练集、验证集和测试集
  5. 何謂 Raw Data ?
  6. 写给美术看的Unity全局光照详解
  7. 家长进课堂 计算机ppt,家长进课堂之中华传统美德 成品ppt 三井小学一10班出品.ppt...
  8. oracle查询第二个字为a,Oracle中SQL语句学习二(like,转义,order by)
  9. sas macro 入门
  10. 推荐一个下载简历模板的网站工具