找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 992|回复: 0
打印 上一主题 下一主题
收起左侧

单片机电能表测量生成hex文件在仿真里运行不了 求帮助

[复制链接]
跳转到指定楼层
楼主
ID:747887 发表于 2020-5-9 19:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
源程序
include"IIC.C"
sbit rs=P1^2;
sbit rw=P1^1;
sbit e=P1^0;
sbit key=P2^2;
//sbit set=P3^
//sbit jia=P3^
//sbit jian=P3^


sbit jdq=P3^6;


#define LCD1602_BUS P0
uint z=0,w=0,l=0;
uint dianya,dianliu,gonglv;
uchar code shuju[]="0123456789";
void delay(uint e)
{
        uint i;
        for(i=e;i>0;i--);
}
void Delay()
{
        uchar i;
        for(i=0;i<90;i++);
}
void Check_Busy()
{
        uchar statue;                                       
        while(1){
        rs=0;rw=1;
        e=1;
        statue=LCD1602_BUS;
        statue&=0x80;
        if(statue==0){
        e=0;
        break;
        }
        }
}
void w_com(uchar com)
{
        Check_Busy();
          rs=0;
          rw=0;Delay();
        LCD1602_BUS=com;
          e=1; Delay();               
          e=0; Delay();
}
void w_date(uchar date)
{
        Check_Busy();
          rs=1;
          rw=0;Delay();
        LCD1602_BUS=date;
          e=1;Delay();
          e=0;Delay();
}
void chushihua()
{
        rs=0;
        delay(1000);
        rw=0;
        delay(1000);
        e=0;
        delay(1000);
        w_com(0x38);
        delay(1000);
        w_com(0x38);
        delay(1000);
        w_com(0x38);
        delay(1000);
        w_com(0x0c);
        delay(1000);
        w_com(0x06);
        delay(1000);
        w_com(0x01);
        delay(1000);
        w_com(0x02);
}
void jishushezhi()
{
   TMOD=0x25;
   TH0=0xff;
   TL0=0xff;
   IT0=0;
   TR0=1;
   ET0=1;
   EA=1;
}
void jishu() interrupt 1
  {
           TH0=0xff;
          TL0=0xff;
        l++;
        if(l==1)   
        {
        l=0;
        z++;      
        }
  }
void shujuxianshi()  
{
        uint a,b,c,d,e,f,g,h;
        uchar code shuju[]="0123456789";
                        w_com(0x01);
                        delay(1000);
                        w_com(0x80+0x4c);
                        w_date(shuju[z%10]);
      
                        a=z/10;
                        w_com(0x80+0x4b);
                        w_date(shuju[a%10]);
      
                        b=a/10;
                        w_com(0x80+0x4a);
                        w_date(shuju[b%10]);
      
                        c=b/10;
                        w_com(0x80+0x48);
                        w_date(shuju[c%10]);
      
                        d=c/10;
                        w_com(0x80+0x47);
                        w_date(shuju[d%10]);
      
                        e=d/10;
                        w_com(0x80+0x46);
                        w_date(shuju[e%10]);
               
                        f=d/10;
                        w_com(0x80+0x45);
                        w_date(shuju[f%10]);


                        g=f/10;
                        w_com(0x80+0x44);
                        w_date(shuju[g%10]);


                        h=g/10;
                        w_com(0x80+0x43);
                        w_date(shuju[h%10]);


        w_com(0x80+0x4d);
        w_date('K');
        w_com(0x80+0x4e);
        w_date('W');
        w_com(0x80+0x4f);
        w_date('h');
        w_com(0x80+0x49);
        w_date('.');
           
}
void main()
{
        uint x,y,i;
        uint a,b,c,d,e,f,g,h;
        init();
        delay(100);
        chushihua();
        x=read_add(1023);
        delay(300);
        for(i=0;i<=x;i++)
        {
                y=read_add(i);
                delay(300);
                z=z+y;  
        }
                shujuxianshi();
                delay(500);
        jishushezhi();
        jdq=0;
        delay(100);
        while(1)
         {
        if(z<=255)
                {
                write_add(0,z),
                delay(300);      
                write_add(1023,0),         
                delay(300);      
                }
        if(z>255)                                
                {
                w=z/255;                        
                for(i=w;i>0;i--)         
                {
                        write_add(i,255);        
                        delay(300);
                }      
                        write_add(1023,w);                  
                        delay(300);                                          
                        write_add(0,z%255);                 
                        delay(300);
                }
         if(key==0)                        
                {
                delay(200);
                if(key==0)
                {
                init();
                delay(100);
                for(i=0;i<1024;i++)
                {
                        write_add(i,0);
                        delay(10);
                }
                z=0;
                write_add(1023,0);
                w_com(0x80+0x4c);
                w_date('0');
                w_com(0x80+0x4b);
                w_date('0');
                w_com(0x80+0x4a);
                w_date('0');
                w_com(0x80+0x48);
                w_date('0');
                w_com(0x80+0x47);
                w_date('0');
                w_com(0x80+0x46);
                w_date('0');
                w_com(0x80+0x45);
                w_date('0');
                w_com(0x80+0x44);
                w_date('0');
                w_com(0x80+0x43);
                w_date('0');
                }
                }
                {
                        w_com(0x80+0x4c);
                        w_date(shuju[z%10]);
      
                        a=z/10;
                        w_com(0x80+0x4b);
                        w_date(shuju[a%10]);
      
      
                        b=a/10;
                        w_com(0x80+0x4a);
                        w_date(shuju[b%10]);
      
      
                        c=b/10;
                        w_com(0x80+0x48);
                        w_date(shuju[c%10]);
      
               
                        d=c/10;
                        w_com(0x80+0x47);
                        w_date(shuju[d%10]);
      
               
                        e=d/10;
                        w_com(0x80+0x46);
                        w_date(shuju[e%10]);
               
               
                        f=d/10;
                        w_com(0x80+0x45);
                        w_date(shuju[f%10]);




                        g=f/10;
                        w_com(0x80+0x44);
                        w_date(shuju[g%10]);


                        h=g/10;
                        w_com(0x80+0x43);
                        w_date(shuju[h%10]);      
        }
                if(z%3==0&&z!=0)
                {
                        dianya=220;
                        dianliu=1;
                }
                else if(z%2==0&&z!=0)
                {
                        dianya=218;
                        dianliu=2;
                }
                else if(z==0)
                {
                        dianya=0;
                        dianliu=0;
                }
                gonglv=dianya*dianliu;
                w_com(0x80);
                w_date('U');
                w_com(0x81);
                w_date(shuju[dianya/100]);
                w_com(0x82);
                w_date(shuju[dianya/10%10]);
                w_com(0x83);
                w_date(shuju[dianya%100]);
                w_com(0x84);
                w_date('V');
                w_com(0x85);
                w_date('I');
                w_com(0x86);
                w_date(shuju[dianliu/10]);
                w_com(0x87);
                w_date(shuju[dianliu%10]);
                w_com(0x88);
                w_date('A');
                w_com(0x89);
                w_date('W');
                w_com(0x8a);
                w_date(shuju[gonglv/1000]);
                w_com(0x8b);
                w_date(shuju[gonglv/100%10]);
                w_com(0x8c);
                w_date(shuju[gonglv/10%10]);
                w_com(0x8d);
                w_date(shuju[gonglv%10]);
                w_com(0x8e);
                w_date('W');
         }      
}  


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

快速回复 返回顶部 返回列表