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

📄 0809.c

📁 基于单片机和0808的16位数据采集系统
💻 C
字号:
#include <reg51.h>
#include <absacc.h>
#include <math.h>
#define unit unsigned int
#define uchar unsigned char
#define AD XBYTE[0X7FF8]
#define AD2 XBYTE[0XBFF8]

unit a=0;
uchar xdata *ad_adr;
uchar n=0;

sbit led1=P2^0;
sbit led2=P2^1;
sbit led3=P2^2;
sbit led4=P2^3;
sbit led5=P2^4;
sbit ad_busy=P3^2;
bit bk=1;
bit turn=0;

sbit k1=P3^3;  
sbit k2=P3^4;


unsigned char LED1,LED2,LED3,LED4;
unsigned int ad_data;
unsigned char idata led_data[3];
uchar code led_segment[12]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x0,0x0};
uchar code led_segment2[12]={0xBF,0x86,0xDB,0xCF,0xE6};
void delay(unsigned int i)
{	
	while(i)i--;
}
void display(void)
{  
   /* P2 = 0xFF;
	delay(2);
	P1=led_segment[1];
	led1=0; */
   
	LED1=ad_data%10;
	LED2=(ad_data/10)%10;
	//LED2=ad_data/10;
	LED3=ad_data/100;
	LED4 = a;
	P2 = 0xff;
	delay(20);

	P1=led_segment[LED1];
	led1=0;
	delay(100);
	led1=1;

//	if((LED3==0)&&(LED2==0))LED2=10;
	P1=led_segment[LED2];
	led2=0;
	delay(100);
	led2=1;

//	if(LED3==0)LED3=10;
	P1=led_segment2[LED3];
	led3=0;
	delay(100);
	led3=1;

	P1=led_segment[LED4];
	led4=0;
	delay(100);
	led4=1;

	P1=led_segment[turn];
	led5=0;
	delay(100);
	led4=1;

	bk=!bk;
}
void ad0808(void) interrupt 0
{
	EA=0;
	EX0=0;
	ad_data=*ad_adr;

	EA=1;
	EX0=1;
}



void keyscan()
{
   k1=1 ;
  if(k1==0)
  {
   delay(4000);
   if(k1==1) 
    {a++;
  
    }; 
  };
  if(a>7){a=0;};


   k2=1 ;
  if(k2==0)
  {
   delay(4000);
   if(k2==1) 
    { turn= !turn ;}; 
  };
  

}


void main(void)
{
   // ad_adr=&AD;
	EA=1;
	EX0=1;
	//IT0=1;
	ad_data=0;
	ad_busy=0;
	while(1)
	{	
	    keyscan();
        
	    if(turn)ad_adr = &AD + a; else ad_adr=&AD2 + a;

		if(bk)*ad_adr=0;

		display();
		
	}
}

⌨️ 快捷键说明

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