⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 方波发生器.c

📁 基于Proteus的51系列单片机设计与仿真
💻 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;   //数据
sbit SCL=P1^5;   //时序脉冲
sbit CS=P1^6;    //选通
void TLC5615()
{  
	uchar i;
	SCL = 0;//置零SCL,为写bit做准备,芯片规定要开始为低电平,上升沿有效
	CS = 0;                //选通
	for(i=0;i<2;i++)//循2次,发送高两位;
	{   
		if(m7)				//高位先发;
			{
				SDA = 1;	//将数据送出; 
				SCL = 1;	//提升时钟,写操作在时钟上升沿触发;
				SCL = 0;	//结束该位传送,为下次写作准备;
				}
		else
			{
				SDA = 0;
				SCL = 1;
				SCL = 0;
				}
		bpqh <<= 1;
		}	 
	for(i=0;i<8;i++)//循环八次,发送低八位;
	{   
		if(l7)
			{
				SDA = 1;	//将数据送出;
				SCL = 1;	//提升时钟,写操作在时钟上升沿触发;
				SCL = 0;	//结束该位传送,为下次写作准备;
				}
		else
			{
				SDA = 0;
				SCL = 1;
				SCL = 0;
				}
		bpql <<= 1;
		}	   
	for(i=0;i<2;i++)//循环2次,发送两个虚拟位;
	{
		SDA = 0;
		SCL = 1;
		SCL = 0;
		}
	CS = 1;
	SCL = 0;
	}
void delay(void)
{  uint i;
      for(i=0;i<4105;i++);
}
void main(void)
{
     uint i;
	    while(1)
		  {  i=0;
            bpqh=i/bpq;
			bpql=i%bpq;
			bpqh<<= 6;  
			TLC5615();
			delay();  delay();  delay();delay();	 
            i=1023;
            bpqh=i/bpq;
			bpql=i%bpq;
			bpqh<<= 6;  
			TLC5615();
			delay();  delay();delay();delay(); 
			}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -