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

📄 dac.#2

📁 TS12864液晶驱动
💻 #2
字号:
/************************************************************
 *	Copyright (C) 2006, 华中科技大学电气与电子科技创新中心  *
 *	All Rights Reserved.                                    *
 *	                                                        *
 *	文件名:		dac.c                                       * 
 *	文件描述:	用于简易逻辑分析仪的波形显示函数            *
 *			                                                *
 *	当前版本:	1.0                                         * 
 *	作者:		王璠(wang.fan@smail.hust.edu.cn)            *
 *	完成日期:	2008年7月22日                               *
 ************************************************************/
//#include"dac.h"
#include"main.h"

unsigned char xdata fifowindow[8][20];               //FIFO寄存器
unsigned int keyW;                              //存储键值 
unsigned char time_flag = 9;                    //时间标志线                        






void DisplayLogicWave(unsigned int delaytime)
{
	unsigned int i,j,n=0,trig,k,time,time1,tflag;         


    unsigned char idata bias0[2][8] = {{0,32,64,96,128,160,192,224},{20,52,84,116,148,180,212,244}};     //8通道偏置电平,第一行为低,第二行为高
    unsigned char idata bias1[2][8] = {{224,192,160,128,96,64,32,0},{244,212,180,148,116,84,52,20}};
    unsigned int idata wire0[2][8] = {{0,32,64,96,128,160,192,224},{60,92,124,156,188,220,242,255}};     //触发位置标志线
    unsigned int idata wire1[2][8] = {{224,212,160,128,96,64,32,0},{255,242,220,188,156,124,92,60}};

    unsigned int xdata timewire0[2][8] = {{0,32,64,96,128,160,192,224},{30,62,94,126,158,190,212,225}};     //时间标志线
    unsigned int xdata timewire1[2][8] = {{224,212,160,128,96,64,32,0},{225,212,190,158,126,94,62,30}};


	unsigned char xdata temp[320];         


//将fifo中的数据按扫描顺序存入temp中
///////////////////////////////////////////////
    for(i=0;i<8;i++)                                
	{
		for(j=0;j<20;j++)
		{
			temp[n] = bias0[fifowindow[i][j]][i];
			n++;
		}
	}
	for(i=0;i<8;i++)
	{   k = 7-i;
		for(j=0;j<20;j++)
		{
			temp[n] = bias1[fifowindow[k][j]][i];
			n++;
		}
	}
///////////////////////////////////////////////

	trig = trig_delay*5+3;           //将触发延迟转化为触发标志线的位置

    tflag = time_flag*5+3;
//if(trig_delay>19)
//
//
//
//
    
    for(time=0;time<delaytime;time++)
	for(time1=0;time1<1000;time1++)		

//	while(1)
	{
		n = 0;
//从CH0扫到CH7
//////////////////////////////////////////
		for(i=0;i<8;i++)
		{
			for(j=0;j<100;j++)
			{
				SFRPAGE   = DAC0_PAGE;
				DAC0H = j;
                if(j%5==0)
				{
					SFRPAGE  = DAC1_PAGE;
					DAC1H =	temp[n];
					n++;
				}
				if(j==trig)
				{
					SFRPAGE  = DAC1_PAGE;
					DAC1H = wire0[1][i];
					DAC1H = wire0[0][i];	
				}
				if(j==tflag)
				{
					SFRPAGE  = DAC1_PAGE;
					DAC1H = timewire0[1][i];
					DAC1H = timewire0[0][i];	
				}
			}
		}

	
//从CH7扫到CH0,先正向扫描后反向扫描防止波形过冲
///////////////////////////////////////////////////
		for(i=0;i<8;i++)
		{
			for(j=0;j<100;j++)
			{
				SFRPAGE   = DAC0_PAGE;
				DAC0H = j;
                if(j%5==0)
				{
			    	SFRPAGE  = DAC1_PAGE;
					DAC1H =	temp[n];
					n++;
				}
				if(j==trig)
				{
					SFRPAGE  = DAC1_PAGE;
					DAC1H = wire1[1][i];
					DAC1H = wire1[0][i];	
				}
				if(j==tflag)
				{
					SFRPAGE  = DAC1_PAGE;
					DAC1H = timewire1[1][i];
					DAC1H = timewire1[0][i];	
				}
			}
		}


	
	}					
}







⌨️ 快捷键说明

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