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

📄 test.c

📁 基于at89s51和adc0809的5v数字电压表
💻 C
字号:
#include <REGX51.H>

unsigned char code dispbitcode[]={0xf1,0xf2,0xf4,0xf8,
0x1f,0x2f,0x4f,0x8f};
unsigned char code dispcode[]={0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90,0xff};
unsigned char dispbuf[8]={10,10,10,10,0,0,0,0};
unsigned char dispcount;
unsigned char getdata;
unsigned int temp;
unsigned char i;
unsigned char k,l;

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


void main(void)
{

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;

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]=10;
		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=dispbitcode[dispcount];
if(dispcount==7)
{
P1=P1 | 0x80;
}
dispcount++;
if(dispcount==8)
{
dispcount=0;

}

}


⌨️ 快捷键说明

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