立即注册 登录
返回首页

uid:208134的个人空间

日志

数字电压表程序,大神们看看对不对

已有 425 次阅读2017-6-5 19:01 | 电压表, 程序

include<reg52.h>#include<intrins.h>         //调用_nop_();延时函数用
#define uchar unsigned char#define uint unsigned int
uchar code table[]="0123456789.";//定义显示的数组
   
sbit lcden=P3^5;//定义管脚
sbit lcdrs=P3^3;
sbit lcdrw=P3^4;
sbit a=P2^1;
sbit b=P2^2;
sbit c=P2^3;
sbit st=P2^4;
sbit eoc=P2^5;
sbit oe=P2^6;
uchar num,flag;
void delay(uint z)//延时函数
{
 uint x,y;
 for(x=z;x>0;x--)
 for(y=110;y>0;y--);
}
void write_com(uchar com)//1602读指令
{ lcdrw=0;
 lcdrs=0;
 P1=com;
 delay(5);
 lcden=1;
 delay(5);
 lcden=0;
}

 
void write_data(uchar date)//1602读数据
{ lcdrw=0;
 lcdrs=1;
 P1=date;
 delay(5);
 lcden=1;
 delay(5);
 lcden=0;
}

 
void lcd_init()//1602初始化函数
{
 
 lcden=0;
 write_com(0x38);
 write_com(0x0c);
 write_com(0x06);
 write_com(0x01);
 
}

 
void main()
 uchar date=0;
 float temp=0.0;
    uchar q,b,s,g;
  a=1;//选着ADC0809的第7通道
  b=1;
  c=1;
     lcd_init();   
     oe=0;
    while(1) 
   {
       st=0;
    st=1;
    st=0;
       delay(5); 
    while(!eoc)
     {
       oe=1;
    date=P0;
    oe=0;
 temp= (float) date*5.0/256;//数据处理
    
 
 temp=temp/100.0;
 temp=temp*100000.0;
 q=(int)temp/1000;
 b=(int)temp%1000/100;
 s=(int)temp%1000%100/10;
 g=(int)temp%10;
   

 
     write_com(0x80);//1602显示处理好的数据
  write_data(table[q]);
  delay(20);
  write_data(table[11]);
  delay(20);
  write_data(table[b]);
  delay(20);
  write_data(table[s]);
  delay(20);
  write_data(table[g]);
  delay(20);
     }
   
   }    
       
}


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

返回顶部