TLC5615可调波形程序和仿真图.docx
- 文档编号:11770528
- 上传时间:2023-04-01
- 格式:DOCX
- 页数:11
- 大小:39.84KB
TLC5615可调波形程序和仿真图.docx
《TLC5615可调波形程序和仿真图.docx》由会员分享,可在线阅读,更多相关《TLC5615可调波形程序和仿真图.docx(11页珍藏版)》请在冰豆网上搜索。
TLC5615可调波形程序和仿真图
#include
#include
#defineucharunsignedchar
#defineuintunsignedchar
sbitCS=P1^0;
sbitSCLK=P1^1;
sbitDIN=P1^2;
sbitkey0=P2^0;
sbitkey1=P2^1;
sbitkey2=P2^2;
sbitkey3=P2^3;
sbitkey4=P2^4;
ucharcodetable[]={0x00,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
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,0x52,0x55,0x57,0x5a,0x5d,
0x60,0x63,0x65,0x68,0x6a,0x6c,0x6f,
0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7d,0x7e,0x7e,0x7e,0x7f,0x80,
0x7f,0x7e,0x7e,0x7e,0x7d,0x7d,0x7c,0x7b,0x7a,0x79,0x78,0x77,0x76,0x75,0x74,0x73,0x72,0x71,0x70,
0x6f,0x6c,0x6a,0x69,0x65,0x63,0x60,
0x5d,0x5a,0x58,0x55,0x52,0x51,
0x4e,0x4c,0x48,0x45,0x43,0x40,
0x3d,0x3a,0x38,0x35,0x35,0x30,
0x2e,0x2b,0x29,0x27,0x25,0x22,0x20,
0x1e,0x1c,0x1a,0x18,0x16,0x15,0x13,0x11,0x10,
0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x00
};
voiddelay(uintz)
{uintx,y;
for(x=z;x>0;x--)
for(y=120;y>0;y--);
}
voidDAC(ucharw)//转换,将数据写入芯片
{
inta;
CS=0;
for(a=0;a<12;a++)
{
SCLK=1;
_nop_();
_nop_();
if((w&0x80)!
=0)//判断写入数据从第一位开始,看是否有数据输入
DIN=1;//将信号1写入芯片中
else
DIN=0;//将0写入芯片中
_nop_();
_nop_();
SCLK=0;//开启下一个写入数据
w<<=1;
}
CS=1;//关闭芯片
}
voidsanjiao()//三角波
{
inti;
while(key2!
=0)
{
for(i=0;i<200;i++)
{
DAC(i);
}
for(i=200;i>0;i--)
{
DAC(i);
}
}
}
voidjuchi()//锯齿波
{
intj;
while(key2!
=0)
{
for(j=0;j<200;j++)
{
DAC(j);
}
}}
voidfangbo()//方波
{
uintw,a;
uchardat;
while(key2!
=0)
{
dat=w;
CS=0;
for(a=0;a<12;a++)
{
SCLK=1;
DIN=(dat&0x80);//将信号1写入芯片中,从最高位开始
dat<<=1;
SCLK=0;//开启下一个写入数据
}
CS=1;//关闭芯片
delay(20);//低电平持续的时间
if(w==0)//当w的位移完时从新赋值
w=0x8f;//完成0和8f交换
else
w=0;
}}
voidzhengxuanbo()//正弦波
{
uinta,p;
uchardat;
while(key2!
=0)
{
for(p=0;p<150;p++)
{
dat=table[p];
CS=0;
for(a=0;a<12;a++)
{
SCLK=1;
DIN=(dat&0x80);//将信号1写入芯片中,从最高位开始
dat<<=1;
SCLK=0;//开启下一个写入数据
}
CS=1;//关闭芯片
delay
(1);
}
}
}
voidkeyscan()
{
if(key0==0)
{
delay(10);
if(key0==0)
{
juchi();
while(!
key0);
}
}
if(key1==0)
{
delay(10);
if(key1==0)
{
sanjiao();
while(!
key1);
}
}
if(key2==0)
{
delay(10);
if(key2==0)
{
key0=1;
key1=1;
while(!
key2);
}
}
if(key3==0)
{
delay(10);
if(key3==0)
{
fangbo();
while(!
key3);
}
}
if(key4==0)
{
delay(10);
if(key4==0)
{
zhengxuanbo();
while(!
key4);
}
}
}
voidmain()
{
keyscan();
}
Protues中仿真原理图,key1位锯齿波,key2位三角波,key3位终止位,key4位方波,key5位正弦波
三角波
方波
正弦波,在示波器下的波形图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- TLC5615 可调 波形 程序 仿真