
谁能帮我画一下流程图,有程序,有程序,流程图要主程序,中断子程序,显示程序3个,谢谢了
#include"reg51.h"#include"absacc.h"#include"math.h"#defineuintunsignedint#defineuchar...
#include "reg51.h"
#include "absacc.h"
#include "math.h"
#define uint unsigned int
#define uchar unsigned char
sbit D1=P1^0;
sbit D2=P1^1;
sbit D3=P1^2;
sbit D4=P1^3;
sbit D5=P1^4;
sbit S0=P3^1;
sbit CS=P3^2;
sbit SCK=P3^3;
bit flag;
uchar time;
uchar period=200;
uint Time_z=0,Time_h=0,Time_m=0,Time_l=0;
uint a,b,c;
uint P_Temp1,P_Temp;
Const uint
tab1[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,
0x83,0xC6,0xA1,0x86,0x8E};
/***************************************************************/
timer0 () interrupt 1 using 1
{
TH0=56320/256;
TL0=56320%256;
if(++time==period)
{
flag=1;
time=0;
}
}
/*******************************************/
void Delay_50us(uint t) /*延时程序*/
{
uint j;
for(;t>0;t--)
for(j=25;j>0;j--);
}
/*******************热电偶转换程序********************************/
uint Re_Convert (void)
{
uint i;
uint P_Temp2 =0;
SCK =0;
S0 =0;
CS =0;
for(i=0;i<16;i++)
{
SCK =1;
if(S0==1)
{
P_Temp2 =P_Temp2 | 0x01;
}
Delay_50us(1);
SCK =0;
Delay_50us(1);
P_Temp2 <<=1;
}
CS =1;
P_Temp2 =(P_Temp2 & 0x7fff) >>3;
return(P_Temp2);
}
/******************显示程序*********************/
void Disp_temp(uint x)
{
Time_z=x/1000;
Time_h=x/100%10;
Time_m=x/10%10;
Time_l=x%10;
if(Time_z==0)
{
a=1;
if(Time_h==0)
{
b=1;
if(Time_m==0)
{
c=1;
}
else c=0;
}
else b=0,c=0;
}
else a=0,b=0,c=0;
D1=a;
D2=1;
D3=1;
D4=1;
D5=1;
P0=tab1[Time_z];
Delay_50us(10);
D1=1;
D2=b;
D3=1;
D4=1;
D5=1;
P0=tab1[Time_h];
Delay_50us(10);
D1=1;
D2=1;
D3=c;
D4=1;
D5=1;
P0=tab1[Time_m];
Delay_50us(10);
D1=1;
D2=1;
D3=1;
D4=0;
D5=1;
P0=tab1[Time_l];
Delay_50us(10);
D1=1;
D2=1;
D3=1;
D4=1;
D5=1;
P0=tab1[Time_l];
Delay_50us(1);
}
void main(void) /*主程序*/
{
TMOD=0x01;
TH0=56320/256;
TL0=56320%256;
EA=1;
ET0=1;
TR0=1;
S0 =0;
while(1)
{
if(flag)
{
P_Temp=Re_Convert();
P_Temp1=(int) (0.25*P_Temp);
flag=0;
}
Disp_temp(P_Temp1);
}
}
非常抱歉,我的悬赏金没有了·····希望能帮帮我
我的邮箱hongshaorou1775@hotmail.com 展开
#include "absacc.h"
#include "math.h"
#define uint unsigned int
#define uchar unsigned char
sbit D1=P1^0;
sbit D2=P1^1;
sbit D3=P1^2;
sbit D4=P1^3;
sbit D5=P1^4;
sbit S0=P3^1;
sbit CS=P3^2;
sbit SCK=P3^3;
bit flag;
uchar time;
uchar period=200;
uint Time_z=0,Time_h=0,Time_m=0,Time_l=0;
uint a,b,c;
uint P_Temp1,P_Temp;
Const uint
tab1[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,
0x83,0xC6,0xA1,0x86,0x8E};
/***************************************************************/
timer0 () interrupt 1 using 1
{
TH0=56320/256;
TL0=56320%256;
if(++time==period)
{
flag=1;
time=0;
}
}
/*******************************************/
void Delay_50us(uint t) /*延时程序*/
{
uint j;
for(;t>0;t--)
for(j=25;j>0;j--);
}
/*******************热电偶转换程序********************************/
uint Re_Convert (void)
{
uint i;
uint P_Temp2 =0;
SCK =0;
S0 =0;
CS =0;
for(i=0;i<16;i++)
{
SCK =1;
if(S0==1)
{
P_Temp2 =P_Temp2 | 0x01;
}
Delay_50us(1);
SCK =0;
Delay_50us(1);
P_Temp2 <<=1;
}
CS =1;
P_Temp2 =(P_Temp2 & 0x7fff) >>3;
return(P_Temp2);
}
/******************显示程序*********************/
void Disp_temp(uint x)
{
Time_z=x/1000;
Time_h=x/100%10;
Time_m=x/10%10;
Time_l=x%10;
if(Time_z==0)
{
a=1;
if(Time_h==0)
{
b=1;
if(Time_m==0)
{
c=1;
}
else c=0;
}
else b=0,c=0;
}
else a=0,b=0,c=0;
D1=a;
D2=1;
D3=1;
D4=1;
D5=1;
P0=tab1[Time_z];
Delay_50us(10);
D1=1;
D2=b;
D3=1;
D4=1;
D5=1;
P0=tab1[Time_h];
Delay_50us(10);
D1=1;
D2=1;
D3=c;
D4=1;
D5=1;
P0=tab1[Time_m];
Delay_50us(10);
D1=1;
D2=1;
D3=1;
D4=0;
D5=1;
P0=tab1[Time_l];
Delay_50us(10);
D1=1;
D2=1;
D3=1;
D4=1;
D5=1;
P0=tab1[Time_l];
Delay_50us(1);
}
void main(void) /*主程序*/
{
TMOD=0x01;
TH0=56320/256;
TL0=56320%256;
EA=1;
ET0=1;
TR0=1;
S0 =0;
while(1)
{
if(flag)
{
P_Temp=Re_Convert();
P_Temp1=(int) (0.25*P_Temp);
flag=0;
}
Disp_temp(P_Temp1);
}
}
非常抱歉,我的悬赏金没有了·····希望能帮帮我
我的邮箱hongshaorou1775@hotmail.com 展开
若以下回答无法解决问题,邀请你更新回答
2010-11-10
展开全部
发给你了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |