找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机停车场程序2

[复制链接]
跳转到指定楼层
楼主
ID:918728 发表于 2024-3-27 11:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
        //错误界面
        if(mode==1)
        {
            OLED_Clear();               // 清屏
                                                OLED_ShowCHinese(0,0,0);//
                                                OLED_ShowCHinese(18,0,1);//
                                                OLED_ShowCHinese(36,0,2);//
                                                OLED_ShowCHinese(54,0,3);//
                                                OLED_ShowCHinese(72,0,4);//
                                                OLED_ShowCHinese(90,0,5);//
                                                OLED_ShowCHinese(108,0,6);//           
                                                OLED_ShowCHinese(0,2,10);//
                                                OLED_ShowCHinese(16,2,11);//
            OLED_ShowString(32,2,":");                                       
            ka_disp();//显示号
             //请重刷!
                                                OLED_ShowCHinese(0,4,12);//
                                                OLED_ShowCHinese(18,4,13);//
                                                OLED_ShowCHinese(36,4,14);//
            OLED_ShowString(54,4,"!");                                                        
        }
        if((mode>1)&&(mode<5))
        {              OLED_Clear();               // 清屏
                                                OLED_ShowCHinese(0,0,0);//
                                                OLED_ShowCHinese(18,0,1);//
                                                OLED_ShowCHinese(36,0,2);//
                                                OLED_ShowCHinese(54,0,3);//
                                                OLED_ShowCHinese(72,0,4);//
                                                OLED_ShowCHinese(90,0,5);//
                                                OLED_ShowCHinese(108,0,6);//           
                                                OLED_ShowCHinese(0,2,10);//
                                                OLED_ShowCHinese(18,2,11);//
            OLED_ShowString(36,2,":");                                       
            ka_disp();//显示号
                                                speaker1=1;
                                                speaker2=1;
                                                speaker3=1;
                                                speaker4=1;                                                        
        }
        //1记录、结算
        if(mode==2)
        {
            //判断进出
            j=At24c02Read(5);//C111
            i=At24c02Read(6);
            k=j*256+i;
            if(k>0)//结算
            {
                                                                speaker1=1;
                                                                speaker2=1;
                                                                speaker3=1;
                                                                speaker4=0;                                                        
                i=(TIME[2]>>4)*10+(TIME[2]&0X0F);
                j=(TIME[1]>>4)*10+(TIME[1]&0X0F);
                m=i*60+j;
                m=m-k;
                                                                OLED_ShowCHinese(0,4,15);//计时
                                                                OLED_ShowCHinese(16,4,16);//
                OLED_ShowString(36,4,":");        
                                                                OLED_ShowNum(48,4,m%1000/100,1,16);
                                                                OLED_ShowNum(56,4,m%100/10,1,16);                                                                                       
                                                                OLED_ShowNum(64,4,m%10,1,16);        
                OLED_ShowCHinese(72,4,30);    //分
                OLED_ShowCHinese(0,6,30);    //共计
                OLED_ShowString(36,6,":");        
                i=At24c02Read(0);
                m=m*i;//价格
                                                                OLED_ShowNum(48,6,m%1000/100,1,16);
                                                                OLED_ShowNum(56,6,m%100/10,1,16);               
                OLED_ShowString(64,6,".");                                                        
                                                                OLED_ShowNum(72,6,m%10,1,16);
                                                        
                OLED_ShowCHinese(88,6,29);//元
                At24c02Write(5,0);//默认0
                At24c02Write(6,0);
                j=At24c02Read(3);//剩余车位
                i=At24c02Read(4);
                k=j*256+i+1;
                At24c02Write(3,k/256);//默认100
                At24c02Write(4,k%256);
            }
            else//记录
            {
                                                                speaker1=0;
                                                                speaker2=1;
                                                                speaker3=1;
                                                                speaker4=1;
                i=(TIME[2]>>4)*10+(TIME[2]&0X0F);
                j=(TIME[1]>>4)*10+(TIME[1]&0X0F);
                m=i*60+j;
                At24c02Write(5,m/256);//默认0
                At24c02Write(6,m%256);

                OLED_ShowCHinese(0,4,25);//单价
                                                          OLED_ShowCHinese(16,4,26);
                                                          OLED_ShowString(32,4,":");        
                i=At24c02Read(0);
                                                                OLED_ShowNum(40,4,i%100/10,2,16);        
                OLED_ShowString(56,4,".");                                                        
                                                                OLED_ShowNum(64,4,i%10,1,16);
                                                          OLED_ShowCHinese(80,4,29);//元
                                                          OLED_ShowString(96,4,"/min");        
                //请停车!
                                                          OLED_ShowCHinese(8,6,12);
                                                          OLED_ShowCHinese(24,6,0);
                                                          OLED_ShowCHinese(43,6,1);
                j=At24c02Read(3);//剩余车位
                i=At24c02Read(4);
                k=j*256+i-1;
                At24c02Write(3,k/256);//默认100
                At24c02Write(4,k%256);
            }
            time_err=100;
            mode=20;
        }
        //2记录、结算
        if(mode==3)
        {
            //判断进出
            j=At24c02Read(7);//C382
            i=At24c02Read(8);
            k=j*256+i;
            if(k>0)//结算
            {
                                                                speaker1=1;
                                                                speaker2=1;
                                                                speaker3=1;
                                                                speaker4=0;                                                        
                i=(TIME[2]>>4)*10+(TIME[2]&0X0F);
                j=(TIME[1]>>4)*10+(TIME[1]&0X0F);
                m=i*60+j;
                m=m-k;
                                                                 OLED_ShowCHinese(0,4,15);//计时
                                                                OLED_ShowCHinese(16,4,16);//
                OLED_ShowString(36,4,":");        
                                                                OLED_ShowNum(48,4,m%1000/100,1,16);
                                                                OLED_ShowNum(56,4,m%100/10,1,16);                                                                                       
                                                                OLED_ShowNum(64,4,m%10,1,16);        
                OLED_ShowCHinese(72,4,30);    //分
                OLED_ShowCHinese(0,6,30);    //共计
                OLED_ShowString(36,6,":");        
                i=At24c02Read(0);
                m=m*i;//价格
                                                                OLED_ShowNum(48,6,m%1000/100,1,16);
                                                                OLED_ShowNum(56,6,m%100/10,1,16);               
                OLED_ShowString(64,6,".");                                                        
                                                                OLED_ShowNum(72,6,m%10,1,16);
                                                        
                OLED_ShowCHinese(88,6,29);//元
                At24c02Write(7,0);//默认0
                At24c02Write(8,0);
                j=At24c02Read(3);//剩余车位
                i=At24c02Read(4);
                k=j*256+i+1;
                At24c02Write(3,k/256);//默认100
                At24c02Write(4,k%256);
            }
            else//记录
            {
                                                                speaker1=1;
                                                                speaker2=0;
                                                                speaker3=1;
                                                                speaker4=1;
i=(TIME[2]>>4)*10+(TIME[2]&0X0F);
j=(TIME[1]>>4)*10+(TIME[1]&0X0F);
m=i*60+j;                At24c02Write(7,m/256);//默认0
At24c02Write(8,m%256);
OLED_ShowCHinese(0,4,25);//单价
OLED_ShowCHinese(16,4,26);
OLED_ShowString(32,4,":");
i=At24c02Read(0);        
                                                                OLED_ShowNum(40,4,i%100/10,2,16);        
                OLED_ShowString(56,4,".");                                                        
                                                                OLED_ShowNum(64,4,i%10,1,16);
                                                          OLED_ShowCHinese(80,4,29);//元
                                                          OLED_ShowString(96,4,"/min");        
                //请停车!
                                                          OLED_ShowCHinese(8,6,12);
                                                          OLED_ShowCHinese(24,6,0);
                                                          OLED_ShowCHinese(43,6,1);
                j=At24c02Read(3);//剩余车位
                i=At24c02Read(4);
                k=j*256+i-1;
                At24c02Write(3,k/256);//默认100
                At24c02Write(4,k%256);
            }
            time_err=100;
            mode=20;
        }
        //3记录、结算
        if(mode==4)
        {
            //判断进出
            j=At24c02Read(9);//C382
            i=At24c02Read(10);

            k=j*256+i;
            if(k>0)//结算
            {
                                                                speaker1=1;
                                                                speaker2=1;
                                                                speaker3=1;
                                                                speaker4=0;
                i=(TIME[2]>>4)*10+(TIME[2]&0X0F);
                j=(TIME[1]>>4)*10+(TIME[1]&0X0F);
                m=i*60+j;
                m=m-k;

                                                                 OLED_ShowCHinese(0,4,15);//计时
                                                                OLED_ShowCHinese(16,4,16);//
                OLED_ShowString(36,4,":");        
                                                                OLED_ShowNum(48,4,m%1000/100,1,16);
                                                                OLED_ShowNum(56,4,m%100/10,1,16);                                                                                       
                                                                OLED_ShowNum(64,4,m%10,1,16);        
                OLED_ShowCHinese(72,4,30);    //分
                OLED_ShowCHinese(0,6,30);    //共计
                OLED_ShowString(36,6,":");        
                i=At24c02Read(0);
                m=m*i;//价格
        OLED_ShowNum(48,6,m%1000/100,1,16);
OLED_ShowNum(56,6,m%100/10,1,16);        
OLED_ShowString(64,6,".");        
OLED_ShowNum(72,6,m%10,1,16);
OLED_ShowCHinese(88,6,29);//元
At24c02Write(9,0);//默认0
At24c02Write(10,0);
j=At24c02Read(3);//剩余车位
i=At24c02Read(4);
k=j*256+i+1;

               At24c02Write(3,k/256);//默认100
                At24c02Write(4,k%256);
            }
            else//记录
            {
                                                                speaker1=1;
                                                                speaker2=1;
                                                                speaker3=0;
                                                                speaker4=1;
                i=(TIME[2]>>4)*10+(TIME[2]&0X0F);
                j=(TIME[1]>>4)*10+(TIME[1]&0X0F);
                m=i*60+j;

               At24c02Write(9,m/256);//默认0
                At24c02Write(10,m%256);

                OLED_ShowCHinese(0,4,25);//单价
                                                          OLED_ShowCHinese(16,4,26);
                                                          OLED_ShowString(32,4,":");        
                i=At24c02Read(0);
                                                                OLED_ShowNum(40,4,i%100/10,2,16);        
                OLED_ShowString(56,4,".");                                                        
                                                                OLED_ShowNum(64,4,i%10,1,16);
                                                          OLED_ShowCHinese(80,4,29);//元
                                                          OLED_ShowString(96,4,"/min");        
                //请停车!

                                                          OLED_ShowCHinese(8,6,12);
                                                          OLED_ShowCHinese(24,6,0);
                                                          OLED_ShowCHinese(43,6,1);
                j=At24c02Read(3);//剩余车位
                i=At24c02Read(4);
                k=j*256+i-1;
                At24c02Write(3,k/256);//默认100
                At24c02Write(4,k%256);
            }
            time_err=100;
            mode=20;
        }

        //==============================================设置
        if(mode==5)
        {
            if(point<7)
            {
                                                          k1_flag++;
                                                        if(k1_flag<=1){
                                                                OLED_Clear();               // 清屏
                                                        }
                                                        else
                                                        {
                                                                k1_flag=2;
                                                                OLED_ShowCHinese(0,2,17);//日期
                                                                OLED_ShowCHinese(16,2,18);//

                                                                OLED_ShowCHinese(0,4,19);//时间
                                                                OLED_ShowCHinese(16,4,20);//
                OLED_ShowString(40,2,":");
                OLED_ShowString(40,4,":");
                OLED_ShowString(64,2,"-");        
                                                          OLED_ShowString(64,4,":");                                                               
                OLED_ShowString(88,2,"-");        
                                                          OLED_ShowString(88,4,":");
                                                        }
                                                }

            else
            {
                                                          k2_flag++;
                                                        if(k2_flag<=1){
                                                                OLED_Clear();               // 清屏
                                                        }
                                                        else
                                                        {
                                                                k2_flag=2;                                                        
                OLED_ShowCHinese(18,0,21);//设置参数
                OLED_ShowCHinese(36,0,22);
                OLED_ShowCHinese(54,0,23);
                                                          OLED_ShowCHinese(72,0,24);

                                                          OLED_ShowCHinese(0,2,25);//单价
                                                          OLED_ShowCHinese(18,2,26);
                                                          OLED_ShowString(36,2,":");
                                                          OLED_ShowCHinese(0,4,1);//车位
                                                          OLED_ShowCHinese(18,4,27);
                                                          OLED_ShowString(36,4,":");
                                                          OLED_ShowCHinese(0,6,28);//剩余
                                                          OLED_ShowString(36,6,":");
                                                          OLED_ShowCHinese(80,2,29);//元

                                                          OLED_ShowString(96,2,"/min");                                                        
                                                          OLED_ShowCHinese(80,4,27);//位
                                                          OLED_ShowCHinese(80,6,27);//位        
                                                        }                                                               
            }
            if(point<7)
            {
                if(point==1)//年
                {
                    if(flag)
                    {
                                                            OLED_ShowNum(48,2,TIME[6],2,16);        
                    }

                                                                                else
                                                                                {
                                    OLED_ShowString(48,2,"__");                                                                  
                                                                                
                                                                                }
                }
                                                                else
                                                                {
                                                        OLED_ShowNum(48,2,TIME[6],2,16);                                                               
                                                                }
                if(point==2)//月
                {
                    if(flag)
                    {
                                                            OLED_ShowNum(72,2,TIME[4],2,16);        
                    }
                                                                                else
                                                                                {
                                    OLED_ShowString(72,2,"__");                                                                  
}
}
else
{                                                        OLED_ShowNum(72,2,TIME[4],2,16);                                                                                                                                }
if(point==3)//日                {                    if(flag)                    {                                                            OLED_ShowNum(96,2,TIME[3],2,16);                            }
else                                                                                {                                    OLED_ShowString(96,2,"__");                                                                                                                                                                                                                                  }        }        
else                                                                {                                                        OLED_ShowNum(96,2,TIME[3],2,16);                                                                                                                                }                if(point==4)//时                {                    if(flag)                    {                                                            OLED_ShowNum(48,4,TIME[2],2,16);                            }                                                                                else                                                                                {                                    OLED_ShowString(48,4,"__");                                                                                                                                                                                                                                  }                }
else                                                                {                                                        OLED_ShowNum(48,4,TIME[2],2,16);                                                                                                                                }                if(point==5)//分                {                    if(flag)                    {                                                            OLED_ShowNum(72,4,TIME[1],2,16);                            }                                                                                else                                                                                {                                    OLED_ShowString(72,4,"__");                                                                                                                                                                                                                                  }               }
                                                                else
                                                                {
                                                        OLED_ShowNum(72,4,TIME[1],2,16);                                                               
                                                                }                                                               
                if(point==6)//秒
                {
                    if(flag)
                    {
                                                            OLED_ShowNum(96,4,TIME[0],2,16);        
                    }
                                                                                else
                                                                                {
                                    OLED_ShowString(96,4,"__");                                                                  
                                                                                
                                                                                }
                }        

                                                                else
                                                                {
                                                        OLED_ShowNum(96,4,TIME[0],2,16);                                                               
                                                                }                                                               
            }
            else
            {
                if(point==7)//单价
                {
                    i=At24c02Read(0);
                    if(flag)
                    {
                                                             OLED_ShowNum(48,2,i/100,1,16);
OLED_ShowNum(56,2,i%100/10,1,16);                                    OLED_ShowString(64,2,".");                                                                                                                                                     OLED_ShowNum(72,2,i%10,1,16);                                                                                                            }                    else                    {                                    OLED_ShowString(48,2,"__");                                     OLED_ShowString(72,2,"_");                                                                                                             }                }

               else
                {
                    i=At24c02Read(0);
                                                                                OLED_ShowNum(48,2,i/100,1,16);
                                                                                OLED_ShowNum(56,2,i%100/10,1,16);
                                                                                OLED_ShowString(64,2,".");                                                                                       
                                                                                OLED_ShowNum(72,2,i%10,1,16);               
                }
                if(point==8)//车位
                {
                    j=At24c02Read(1);//车位总数
                    i=At24c02Read(2);

                    k=j*256+i;
                    if(flag)
                    {
                                                             OLED_ShowNum(48,4,k%1000/100,1,16);
                                                             OLED_ShowNum(56,4,k%100/10,1,16);                                                                                       
                                                             OLED_ShowNum(64,4,k%10,1,16);        
                    }
                    else
                    {
                                    OLED_ShowString(48,4,"___");         
                    }
                }

               else
                {
                    j=At24c02Read(1);//车位总数
                    i=At24c02Read(2);
                    k=j*256+i;
                                                                                OLED_ShowNum(48,4,k%1000/100,1,16);
                                                                                OLED_ShowNum(56,4,k%100/10,1,16);                                                                                       
                                                                                OLED_ShowNum(64,4,k%10,1,16);                        
                }
                if(point==9)//剩余
                {

                    j=At24c02Read(3);//车位总数
                    i=At24c02Read(4);
                    k=j*256+i;
                    if(flag)
                    {
                                                             OLED_ShowNum(48,6,k%1000/100,1,16);
                                                             OLED_ShowNum(56,6,k%100/10,1,16);                                                                                       
                                                             OLED_ShowNum(64,6,k%10,1,16);        
                    }
                    else
                    {
                                    OLED_ShowString(48,6,"___");         
                    }
                else
                {
                    j=At24c02Read(3);//车位总数
                    i=At24c02Read(4);
                    k=j*256+i;
                                                                                OLED_ShowNum(48,6,k%1000/100,1,16);
                                                                                OLED_ShowNum(56,6,k%100/10,1,16);                                                                                       
                                                                                OLED_ShowNum(64,6,k%10,1,16);        
                }
            }
                                                
        }
    }
    TH0=0X3C; //重装定时器
    TL0=0XB0;
}         


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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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