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

📄 main.c

📁 基于Mini51板的数字示波器设计
💻 C
字号:
/*Mini51B数字示波器*/
/*作者:田开坤*/
/*时间:2009年1月*/

#include <reg52.h>
#include "osc.h"
#include "lcd12864.h"
#include "irm.h"
#include "timer2.h"
#include "dots.h"
#include "common.h"

void main()
{
   	char i=0,j=0,k=0;
	unsigned char dah,dal,dam;
	int tmp,tmp1;
	pointxA=10;
	pointxB=110;
	pointyA=14;
	pointyB=44;

	lcd12864_init();
	extern2_init();
	timer2_init();
	delay_ms(1);
	//lcd12864_put_xywhb(0,7,128,8,logo);
	//delay_ms(1000);

	lcd12864_put_xywhb(0,7,128,8,bg);	
	disp_vdiv();
  	disp_ypoint();
	
	while(1)
	{
		key_scan();
		if((da_finish)||(run_flag)) {			
			dah=0;dal=255;
			for(i=0;i<DATA_SIZE/2;i++) {
				if(da_buffer[i] > dah) dah = da_buffer[i]; //找出最大值
				if(da_buffer[i] < dal) dal = da_buffer[i]; //找出最小值
			}
			dam=(dah-dal)/2+dal; //计算出中间值
			i=0;
			while(da_buffer[i] <= dam) if(++i > (DATA_SIZE/2)) break;
			while(da_buffer[i]  > dam) if(++i > (DATA_SIZE/2)) break;
			while(da_buffer[i] <= dam) if(++i > (DATA_SIZE/2)) break;	
			while(da_buffer[i]  > dam) if(++i > (DATA_SIZE/2)) break;						
			for(j=0;j<WIDTH;j++) {				
				if(acdc_flag==0) {
					tmp = da_buffer[i+j+movx]-dam;
					tmp1 = da_buffer[i+j+movx+1]-dam;
					tmp = tmp/(vdiv[val_vdiv])+HEIGHT/2 + movy; //过滤直流成分
					tmp1 = tmp1/(vdiv[val_vdiv])+HEIGHT/2 + movy; //过滤直流成分
				}
				else {
					tmp = da_buffer[i+j+movx]/(vdiv[val_vdiv]) + movy;	
					tmp1 = da_buffer[i+j+movx+1]/(vdiv[val_vdiv]) + movy;	
				}
			if(tmp > HEIGHT-1) tmp = HEIGHT-1;	
			if(tmp1 > HEIGHT-1) tmp1 = HEIGHT-1;	
			if(tmp < 0) tmp =0;
			if(tmp1 < 0) tmp1 =0;
			k=tmp-tmp1;			 
			disp(j,tmp,k);
			}
			da_finish=0;
		}			
	}
}


⌨️ 快捷键说明

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