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

📄 复件 zq9712驱动测试程序.c

📁 ZQ9712与SC16722的驱动程序
💻 C
字号:

/*晶振22.1184M,AT89S52*/
/*包含的库文件*/
#pragma small
#pragma CODE DEBUG SYMBOLS OBJECTEXTEND
//#include "..\includes\TypeDef.h"
#include <reg52.h>
#include <stdio.h>
#include <math.h>
#define  uchar  unsigned  char
#define  ulint  unsigned  long int
#define  uint   unsigned  int
/***********************************************/
 //uchar code color_data[8]={7,6,5,3,4,2,1,0};//黑,红,绿,蓝,黄,紫,青,白//阳码
 uchar code color_data[8]={0,4,2,1,6,5,3,7};//黑,红,绿,蓝,黄,紫,青,白//阳码
/***************************************************/
			  /*定义颜色控制端口*/
sbit   DIN_ZQ9712=P1^3;/*蓝线 ZQ9712的数据输入*/
sbit   CKIN_ZQ9712=P1^2;/*绿线  ZQ9712的时钟*/
sbit   LIN_ZQ9712=P1^1;/*红线  ZQ9712的数据锁存*/
sbit   OEIN_ZQ9712=P1^0;/*黄线  ZQ9712的数据使能*/
 /*********************延时函数*************
函数原型:void dely(ulint timepara);
功    能:延时等待,参数timepara为延时时间*/
void delay(ulint timepara)
{ulint mpara;
 	mpara=0;
 	do
    {
	mpara=mpara+1;
 	}
 	while (mpara!=timepara);
}
/*********************延时函数*************
函数原型:void dely(ulint timepara);
功    能:延时等待,参数timepara为延时时间*/
void delays(ulint timepara)
{ulint i;
 	for(i=0;i<timepara;i++)
	{delay(207);//22.1184M ---207---0.005S=5ms 
	}
}
/*********************ZQ9712数据锁存函数*************
函数原型:void stb_data_ZQ9712(void);
功    能:ZQ9712数据锁存*/
void stb_data_ZQ9712(void)
{   uchar i;
	LIN_ZQ9712=1;
    for(i=0;i<2;i++);
	LIN_ZQ9712=0;
}
/*********************向由低位到高位ZQ9712发送一个像素的数据函数*************
函数原型:send_byte_lsbtomsb(uint8 bt);
功    能:向ZQ9712发送一个像素,参数bt为要发送的数据*/
void send_3bit_lsbtomsb( uchar bt1)
{     uint i;
	 CKIN_ZQ9712 = 0;//将时钟线置低
	 bt1=7-bt1;
    for(i=0;i<3;i++)
	 { 
		 DIN_ZQ9712 =(bt1 & 0x01)?1:0;//判断当前位为1还是为0;当为1时将数据线置高;当为0时将数据线置低;
	     CKIN_ZQ9712 = 1;//将时钟线置高
         CKIN_ZQ9712 = 0;//将时钟线置低
	     bt1>>=1;//将当前数据右移一位,准备与0x01进行比较
     }
	 OEIN_ZQ9712=1;
	 OEIN_ZQ9712=0;
}
/*********************向ZQ9712发送N个某像素的函数*************
函数原型:void send_n_byte(n,bt);
功    能:向ZQ9712发送n个bt字节*/
void send_n_3bit(register uint k,uchar bt1)
{ 
 while(k!=0) 
  {
   send_3bit_lsbtomsb(bt1);
   k--;
  }
}

//ZQ9712颜色跳变函数
//i是当前颜色的地址
//num有多少个像素点
tiaobian(uchar i,num)
{
 send_n_3bit(num,color_data[i]);
 stb_data_ZQ9712();
 delays(500);

}
liushui(uchar i,j,num)
{uchar k;
for(k=1;k<num+1;k++)
  {
   send_n_3bit(k,color_data[i]);
   send_n_3bit(num-k,color_data[j]);
   stb_data_ZQ9712();
   delays(100);
  }
}
/****主程序*******************/
void  main(void)
{
	//OEIN_ZQ9712=0;//使能ZQ9712
   OEIN_ZQ9712=1;
   //OEIN_ZQ9712=0;
	tiaobian(0,3);
	while(1)
		{ 
	    	tiaobian(1,3);
			tiaobian(2,3);
			tiaobian(3,3);
			tiaobian(4,3);
			tiaobian(5,3);
			tiaobian(6,3);
			tiaobian(7,3);
			tiaobian(0,3);
			liushui(0,1,3);
			liushui(0,2,3);
			liushui(0,3,3);
			liushui(0,4,3);
			liushui(0,5,3);
			liushui(0,6,3);
			liushui(0,7,3);
			liushui(1,0,3);
			liushui(2,0,3);
			liushui(3,0,3);
			liushui(4,0,3);
			liushui(5,0,3);
			liushui(6,0,3);
			liushui(7,0,3);
  		}
}

⌨️ 快捷键说明

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