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

📄 tz.c

📁 电子密度计算小程序
💻 C
字号:
#include <formatio.h>
#include <userint.h>
#include <utility.h>
#include <ansi_c.h>

#define  DAC_port             0x16f             //output
#define  CONTROL_port         0x16e             //output
#define  DECIDE_TRIG_port	0x16d           //input



#define  VOLT_max       255
#define  VOLT_min       0
#define  VOLT_0         128

#define  V_1_set		0x09                   //0110  reverse 1001
#define  V_1_reset	0x08                   //0111          1000
#define  V_4_set		0x07                   //1000         0111
#define  V_4_reset	0x06                   //1001         0110
#define  V_5_set		0x05                   //1010         0101
#define  V_5_reset	0x04                   //1011         0100
#define  V_3_set		0x03                   //1100         0011
#define  V_3_reset	0x02                   //1101         0010
#define  V_2_set		0x01                   //1110         0001
#define  V_2_reset	0x00                   //1111         0000
#define  AD_trig		0x0a                   //0101         1010
#define  START_sys      0x0f                   //0000		  1111
#define  RESET_sys      0x0d			     //0011		  1100




main()
{
int i,j,k,dh,dl,ready;
int t;
int dat[32768];
char fname[30];
char f[10];
char num[10];

FILE *fp;
 	
  	outp(CONTROL_port,V_2_reset);
    outp(CONTROL_port,V_3_reset);
    outp(CONTROL_port,V_4_reset);
    outp(CONTROL_port,V_5_reset);
    outp(CONTROL_port,V_1_set);
    printf("\nInput delay data:");
	scanf ("%d", &t);
    printf("\nInput save file name:");
    scanf("%s",f);
	outp(0x161,0);   // Reset RAM Address
    for( k =0; k<2*t; k++);
	outp(0x163,0);           //Reset A/D system
	
	for(j=0;j<8;j++)
	{
	 while(inp(DECIDE_TRIG_port) & 0x01);   
	 outp(DAC_port,VOLT_min);
 	 for( k =0; k<(20*t); k++);
	 outp(CONTROL_port,AD_trig);
	 for( k =0; k<(50*t); k++);
     for(i=VOLT_min;i<=VOLT_max;i++)
		{
			outp(DAC_port,i);
			for( k =0; k<t; k++);

			
		}
	  for( k =0; k<(50*t); k++);
	 outp(DAC_port,VOLT_0);  
	 Delay(0.3);
     }
    ready = inp(0x167)&0x01;
	while(ready == 0)
		{
		outp(CONTROL_port,AD_trig);
		ready = inp(0x167) & 0x01;
		}  

  getchar();   
  printf("%s","Now Transfering Data of:... \n");
	for(j=0;j<9;j++)
	
		{
			printf("Channel No.%2d\n",j+1);
		
		outp(0x160,j+1);   //Channel number
		for( k=0; k<2*t; k++);

		outp(0x161,0);
		for( i=0;i<32768;i++)
			{
			    inp(0x164);          //Clock in Transfering Address
				outp(0x162,0);         //set low 8_bit
				for( k=0; k<t; k++);
				dl=inp(0x165);      //Read data
				
				inp(0x166);          // set High 8_bit
				for( k=0; k<t; k++);
				dh=inp(0x165);       //Read data
			
			  dat[i]=((dh<<4)&0xff0)+((dl>>4)&0x0f);
			}
		
			
   sprintf (num, ".%d", j+1); 
   strcpy (fname, f);     
   strcat (fname, num);     

   fp=fopen (fname, "w");       
   
   //fwrite (dat, 2, 32768, fp);
   for(i=0;i<32768;i++) fprintf(fp,"%d\n",dat[i]);
   fclose(fp);		
  	}
    	

}


⌨️ 快捷键说明

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