?? 鋸齒波發(fā)生器.c
字號:
?
+
#include "reg52.h"
#include "absacc.h"
#define uchar unsigned char
#define uint unsigned int
uchar bpq=0;
uchar bdata bpqh; //高地址
sbit m7 = bpqh^7; //高地址位
uchar bdata bpql; //底地址
sbit l7 = bpql^7; //地地址位
sbit SDA= P1^4; //數(shù)據(jù)
sbit SCL=P1^5; //時(shí)序脈沖
sbit CS=P1^6; //選通
void TLC5615()
{
uchar i;
SCL = 0; //置零SCL,為寫bit做準(zhǔn)備:芯片規(guī)定要開始為底電平,上升沿有效
CS = 0; //選通
for(i=0;i<2;i++)//循2次,發(fā)送高兩位;
{
if(m7) //高位先發(fā);
{
SDA = 1; //將數(shù)據(jù)送出;
SCL = 1; //提升時(shí)鐘,寫操作在時(shí)鐘上升沿觸發(fā);
SCL = 0; //結(jié)束該位傳送,為下次寫作準(zhǔn)備;
}
else
{
SDA = 0;
SCL = 1;
SCL = 0;
}
bpqh <<= 1;
}
for(i=0;i<8;i++)//循環(huán)八次,發(fā)送低八位;
{
if(l7)
{
SDA = 1; //將數(shù)據(jù)送出;
SCL = 1; //提升時(shí)鐘,寫操作在時(shí)鐘上升沿觸發(fā);
SCL = 0; //結(jié)束該位傳送,為下次寫作準(zhǔn)備;
}
else
{
SDA = 0;
SCL = 1;
SCL = 0;
}
bpql <<= 1;
}
for(i=0;i<2;i++)//循環(huán)2次,發(fā)送兩個(gè)虛擬位;
{
SDA = 0;
SCL = 1;
SCL = 0;
}
CS = 1;
SCL = 0;
}
void delay(void)
{ uchar i;
for(i=0;i<222;i++);
for(i=0;i<222;i++);
}
void main(void)
{
uint i;
while(1)
for(i=0;i<1024;i++)
{ bpqh=i/bpq;
bpql=i%bpq;
bpqh<<= 6;
TLC5615();//這個(gè)軟件要7.1版本菜可以
delay();
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -