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

📄 main.c

📁 一个很好的数字电压表的源程序~~~~~~~值得大家参考。
💻 C
字号:
#include <AT89X52.H>
 
unsigned char code dispbitcode[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
unsigned char code dispcode[]={0x3f,0x6f,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};
unsigned char dispbuf[8]={10,10,10,10,0,0,0,0};
unsigned char dispcount;
unsigned char getdata;
unsigned int temp;
unsigned char i;

sbit ST=P3^0;
sbit OE=P3^1;
sbit EOC=P3^2;
sbit CLK=P3^3;

void main()
{
 ST=0;
 OE=0;
 ET0=1;
 ET1=1;
 EA=1;
 TMOD=0X12;
 TH0=216;
 TL0=216;
 TH1=(65536-4000)/256;
 TL1=(65536-4000)%256;
 TR1=1;
 TR0=1;
 ST=1;
 ST=0;
 while(1)	 
  {
	  if(EOC==1)
	  {
	   OE=1;
	   getdata=P0;
	   OE=0;
	   temp=getdata*235;
	   temp=temp/128;
	   i=5;
	   dispbuf[0]=10;
	   dispbuf[1]=10;
	   dispbuf[2]=10;
	   dispbuf[3]=10;
	   dispbuf[4]=0;
	   dispbuf[5]=0;
	   dispbuf[6]=0;
	   dispbuf[7]=0;
	   while(temp/10)
	     {
		   dispbuf[i]=temp%10;
		   temp=temp/10;
		   i++;
		 }	   
	   dispbuf[i]=temp;
	   ST=1;
	   ST=0;		
	  }					  								
  }

}

void t0(void) interrupt 1 using 0
{
 CLK=~CLK;
}

void t1(void) interrupt 3 using 0
{
 TH1=(65536-4000)/256;
 TL1=(65536-4000)%256;
 P1=dispcode[dispbuf[dispcount]];
 P2=dispcode[dispcount];
 if(dispcount==7)
  {
   	P1=P1|0X80;
   }
 dispcount++;
 if(dispcount==8)
  {
   dispcount=0;
  }
}

			  

⌨️ 快捷键说明

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