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

📄 yalixianshi.c

📁 压力程序实现,用数码管实时显示
💻 C
字号:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};																		                        
//uchar tab1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};//带小数点
sbit ST = P3^0;
sbit OE = P3^1;
sbit EOC = P3^2;
sbit CLK = P3^3;
/*sbit p10=P1^0;
sbit p11=P1^1;
sbit p12=P1^2;
sbit p13=P1^3;
sbit p14=P1^4;*/
 uchar getdata,i,sum=0,temp;
void clk() interrupt 1 using 0
{ // 软件延时产生ADC0809的时钟
CLK = ~ CLK;
}
void delay()
{
uint j;
for(j=0;j<500;j++)
{;}
}
void display(unsigned char read)
{  	
    uint t,k,a[4]; 
	while(1)
   {
    t=read*4000/256;
	for(k=0;k<4;k++)
	{
	  P1=0x08;
	  a[k]=t%10;
	  P0=tab[a[k]];
	  delay();
	  t=t/10;
	  P1=0x08>>1|(1<<4);
	 }
	 } 
    //delay();
    //p10=1;
	//P0=tab[t]
	//P0=tab1[read%10];
	//p10=0;
	//delay();
	//p11=1;
	//P0=tab[(int)(read*10)%10];
	//p11=0;
}
 
 
void main()
{
ST = 0;
OE = 0;

TMOD = 0x12; // 定时器0工作方式2,定时器1工作方式1
//TH0 = 216; // 定时器0赋初值
//TL0 = 216;
TH0 = (65536-4000)/256; //定时器1赋初值
TL0 = (65536-4000)%256;

TR0 = 1;
//TR1 = 1;
ET0 = 1;
//ET1 =1;
EA = 1;

ST = 1; // ST端产生正脉冲
ST = 0;

while(1)
{
if(EOC == 1) // 转换结束
{
OE = 1; // 输出转换得到的数据
getdata = P2; // 记下得到的数据
OE = 0;
for(i=0;i<10;i++)
{
  sum+=getdata;
 }
temp =sum/10;
}
display(temp);
}
}

⌨️ 快捷键说明

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