久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 888|回復: 0
打印 上一主題 下一主題
收起左側

麻煩大佬解讀一下,在線等 挺急的! 求幫助

[復制鏈接]
跳轉到指定樓層
樓主
ID:466147 發表于 2019-1-10 21:25 來自手機 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include "reg51.h"
#include "LCD1602.h"

//按鍵端口定義
sbit D0=P3^0;
sbit D1=P3^1;        
sbit D2=P3^2;
sbit D3=P3^3;
sbit D4=P3^4;
sbit D5=P3^5;        
sbit D6=P3^6;
sbit D7=P3^7;

//按鍵上LDE端口定義
sbit LED0=P1^0;
sbit LED1=P1^1;        
sbit LED2=P1^2;
sbit LED3=P1^3;
sbit LED4=P1^4;
sbit LED5=P1^5;        
sbit LED6=P1^6;
sbit LED7=P1^7;

        
sbit bg_1602=P2^4;                //1602背光
sbit key=P2^0;                        //應答按鍵
sbit Beep=P2^3;                        //蜂鳴器



uchar jk,jk_1,jk_2,jk_3,jk_flag;
uchar jk_4,jk_5,jk_6,jk_7;
uchar q=0;
uchar flag=0;
bit flag_init=1;
uchar D0_1,D1_1,D2_1,D3_1;
uchar D4_1,D5_1,D6_1,D7_1;
uchar LCD[]=" 123456789 #########";
uchar qing_chu;
uint n;
//
//uc code tab0[]=" 123456789#";  //顯示幾號的碼表
//uc code tab1[]="Calling!!!";   //顯示呼叫的碼表
//uc code tab2[]="I Know!";           //顯示相應的碼表
//uc code tab3[]="Happy Every Day!"; //顯示開心快樂每一天的碼表

void LED_discode()
  {
     if(jk==1||jk_1==1||jk_2==1||jk_3==1||jk_4==1||jk_5==1||jk_6==1||jk_7==1) LED0=1;
          else LED0=0;
     if(jk==2||jk_1==2||jk_2==2||jk_3==2||jk_4==2||jk_5==2||jk_6==2||jk_7==2) LED1=1;
           else LED1=0;
     if(jk==3||jk_1==3||jk_2==3||jk_3==3||jk_4==3||jk_5==3||jk_6==3||jk_7==3) LED2=1;
           else LED2=0;
     if(jk==4||jk_1==4||jk_2==4||jk_3==4||jk_4==4||jk_5==4||jk_6==4||jk_7==4) LED3=1;
           else LED3=0;
     if(jk==5||jk_1==5||jk_2==5||jk_3==5||jk_4==5||jk_5==5||jk_6==5||jk_7==5) LED4=1;
            else LED4=0;
     if(jk==6||jk_1==6||jk_2==6||jk_3==6||jk_4==6||jk_5==6||jk_6==6||jk_7==6) LED5=1;
            else LED5=0;
     if(jk==7||jk_1==7||jk_2==7||jk_3==7||jk_4==7||jk_5==7||jk_6==7||jk_7==7) LED6=1;
            else LED6=0;
     if(jk==8||jk_1==8||jk_2==8||jk_3==8||jk_4==8||jk_5==8||jk_6==8||jk_7==8) LED7=1;
            else LED7=0;



//    if(jk!=1||jk_1!=1||jk_2!=1||jk_3!=1||jk_4!=1||jk_5!=1||jk_6!=1||jk_7!=1) LED0=0;
//
//     if(jk!=2||jk_1!=2||jk_2!=2||jk_3!=2||jk_4!=2||jk_5!=2||jk_6!=2||jk_7!=2) LED1=0;
//
//     if(jk!=3||jk_1!=3||jk_2!=3||jk_3!=3||jk_4!=3||jk_5!=3||jk_6!=3||jk_7!=3) LED2=0;
//
//     if(jk!=4||jk_1!=4||jk_2!=4||jk_3!=4||jk_4!=4||jk_5!=4||jk_6!=4||jk_7!=4) LED3=0;
//
//     if(jk!=5||jk_1!=5||jk_2!=5||jk_3!=5||jk_4!=5||jk_5!=5||jk_6!=5||jk_7!=5) LED4=0;
//        
//     if(jk!=6||jk_1!=6||jk_2!=6||jk_3!=6||jk_4!=6||jk_5!=6||jk_6!=6||jk_7!=6) LED5=0;
//         
//     if(jk!=7||jk_1!=7||jk_2!=7||jk_3!=7||jk_4!=7||jk_5!=7||jk_6!=7||jk_7!=7) LED6=0;
//
//     if(jk!=8||jk_1!=8||jk_2!=8||jk_3!=8||jk_4!=8||jk_5!=8||jk_6!=8||jk_7!=8) LED7=0;   
         

  }

void LED_off()
{

}

void discode()                        //數據處理
{
   if(D0==0||D1==0||D2==0||D3==0||D4==0||D5==0||D6==0||D7==0)
    {
           bg_1602=0;           n=0;
           D0_1=D0;
           D1_1=D1;
           D2_1=D2;
           D3_1=D3;
           D4_1=D4;
           D5_1=D5;
           D6_1=D6;
           D7_1=D7;           

       while(D0==0||D1==0||D2==0||D3==0||D4==0||D5==0||D6==0||D7==0);  //等待按鍵釋放
           flag++;
           if(flag>=9)
            {
                  flag=8;                                                  //最多四個輸入
                }

         if(flag==1)
           {
                                          
                if(D0_1==0) {    jk=1;}
                if(D1_1==0) {    jk=2;}
                if(D2_1==0) {    jk=3;}
                if(D3_1==0) {    jk=4;}
                if(D4_1==0) {    jk=5;}
                if(D5_1==0) {    jk=6;}
                if(D6_1==0) {    jk=7;}
                if(D7_1==0) {    jk=8;}
           }
                     if(flag==2)
           {
            
                if(D0_1==0) {    jk_1=1;}
                if(D1_1==0) {    jk_1=2;}
                if(D2_1==0) {    jk_1=3;}
                if(D3_1==0) {    jk_1=4;}
                if(D4_1==0) {    jk_1=5;}
                if(D5_1==0) {    jk_1=6;}
                if(D6_1==0) {    jk_1=7;}
                if(D7_1==0) {    jk_1=8;}

                if(jk_1==jk)
                 {
                   jk_1=0;
                   flag--;

                 }

        
           }
                     if(flag==3)
           {

                if(D0_1==0) {    jk_2=1;}
                if(D1_1==0) {    jk_2=2;}
                if(D2_1==0) {    jk_2=3;}
                if(D3_1==0) {    jk_2=4;}
                if(D4_1==0) {    jk_2=5;}
                if(D5_1==0) {    jk_2=6;}
                if(D6_1==0) {    jk_2=7;}
                if(D7_1==0) {    jk_2=8;}
                if(jk_2==jk||jk_2==jk_1)
                 {
                   jk_2=0;
                   flag--;

                 }
        
           }
                                if(flag==4)
           {
                     
                if(D0_1==0) {    jk_3=1;}
                if(D1_1==0) {    jk_3=2;}
                if(D2_1==0) {    jk_3=3;}
                if(D3_1==0) {    jk_3=4;}
                if(D4_1==0) {    jk_3=5;}
                if(D5_1==0) {    jk_3=6;}
                if(D6_1==0) {    jk_3=7;}
                if(D7_1==0) {    jk_3=8;}

                if(jk_3==jk||jk_3==jk_2||jk_3==jk_1)
                 {
           jk_3=0;
                   flag--;

                 }           

           }

                                if(flag==5)
           {
                     
                if(D0_1==0) {    jk_4=1;}
                if(D1_1==0) {    jk_4=2;}
                if(D2_1==0) {    jk_4=3;}
                if(D3_1==0) {    jk_4=4;}
                if(D4_1==0) {    jk_4=5;}
                if(D5_1==0) {    jk_4=6;}
                if(D6_1==0) {    jk_4=7;}
                if(D7_1==0) {    jk_4=8;}


                if(jk_4==jk||jk_4==jk_2||jk_4==jk_1||jk_4==jk_3)
                 {
           jk_4=0;
                   flag--;

                 }           

           }


                                if(flag==6)
           {
                     
                if(D0_1==0) {    jk_5=1;}
                if(D1_1==0) {    jk_5=2;}
                if(D2_1==0) {    jk_5=3;}
                if(D3_1==0) {    jk_5=4;}
                if(D4_1==0) {    jk_5=5;}
                if(D5_1==0) {    jk_5=6;}
                if(D6_1==0) {    jk_5=7;}
                if(D7_1==0) {    jk_5=8;}


                if(jk_5==jk||jk_5==jk_2||jk_5==jk_1||jk_5==jk_3||jk_5==jk_4)
                 {
           jk_5=0;
                   flag--;

                 }           

           }

                                           if(flag==7)
           {
                     
                if(D0_1==0) {    jk_6=1;}
                if(D1_1==0) {    jk_6=2;}
                if(D2_1==0) {    jk_6=3;}
                if(D3_1==0) {    jk_6=4;}
                if(D4_1==0) {    jk_6=5;}
                if(D5_1==0) {    jk_6=6;}
                if(D6_1==0) {    jk_6=7;}
                if(D7_1==0) {    jk_6=8;}


                if(jk_6==jk||jk_6==jk_2||jk_6==jk_1||jk_6==jk_3||jk_6==jk_5||jk_6==jk_4)
                 {
           jk_6=0;
                   flag--;

                 }           

           }

                                           if(flag==8)
           {
                      jk_flag=jk_7;
                if(D0_1==0) {    jk_7=1;}
                if(D1_1==0) {    jk_7=2;}
                if(D2_1==0) {    jk_7=3;}
                if(D3_1==0) {    jk_7=4;}
                if(D4_1==0) {    jk_7=5;}
                if(D5_1==0) {    jk_7=6;}
                if(D6_1==0) {    jk_7=7;}
                if(D7_1==0) {    jk_7=8;}


                if(jk_7==jk||jk_7==jk_2||jk_7==jk_1||jk_7==jk_3||jk_7==jk_4||jk_7==jk_5||jk_7==jk_6)
                 {
           jk_7=jk_flag;
                   flag--;

                 }           

           }




        }
   

}




void display()
{

        discode();
   if(D0_1==1&&D1_1==1&&D2_1==1&&D3_1==1&&D4_1==1&&D5_1==1&&D6_1==1&&D7_1==1&&flag==0)
    {
          LCD1602_write(0,0x80);
          LCD1602_writebyte("Happy Every Day!");
          LCD1602_write(0,0x40);
          LCD1602_writebyte("                ");
          flag_init=1;
        }
        else
         {         
          if(flag_init==1)
          {        
            flag_init=0;
            LCD1602_write(0,0x01);
          }        LCD1602_write(0,0x80);      LCD1602_write(1,LCD[0]);
            LCD1602_write(0,0x81);      LCD1602_write(1,LCD[jk]);
                LCD1602_write(0,0x82);      LCD1602_write(1,LCD[0]);
        LCD1602_write(0,0x83);                LCD1602_write(1,LCD[jk_1]);
                LCD1602_write(0,0x84);      LCD1602_write(1,LCD[0]);
            LCD1602_write(0,0x85);                LCD1602_write(1,LCD[jk_2]);
                LCD1602_write(0,0x86);      LCD1602_write(1,LCD[0]);
             LCD1602_write(0,0x87);                LCD1602_write(1,LCD[jk_3]);
                LCD1602_write(0,0x88);      LCD1602_write(1,LCD[0]);
            LCD1602_write(0,0x89);      LCD1602_write(1,LCD[jk_4]);
                LCD1602_write(0,0x8A);      LCD1602_write(1,LCD[0]);
        LCD1602_write(0,0x8B);                LCD1602_write(1,LCD[jk_5]);
                LCD1602_write(0,0x8C);      LCD1602_write(1,LCD[0]);
            LCD1602_write(0,0x8D);                LCD1602_write(1,LCD[jk_6]);
                LCD1602_write(0,0x8E);      LCD1602_write(1,LCD[0]);
             LCD1602_write(0,0x8F);                LCD1602_write(1,LCD[jk_7]);
               
//             LCD1602_write(0,0x8A);                LCD1602_write(1,LCD[jk_3]);
            
           
         }
}


void key_discode()
{
           if(key==0)
         {
           LCD1602_delay(100);
            if(key==0)
                 { bg_1602=0;        n=0;
                   while(key==0);  

if(flag>0)
{
   flag--;

   jk=jk_1;
   jk_1=jk_2;
   jk_2=jk_3;
   jk_3=jk_4;
   jk_4=jk_5;
   jk_5=jk_6;
   jk_6=jk_7;
   jk_7=0;


        LCD1602_write(0,0x80);      LCD1602_write(1,LCD[0]);
            LCD1602_write(0,0x81);      LCD1602_write(1,LCD[jk]);
                LCD1602_write(0,0x82);      LCD1602_write(1,LCD[0]);
        LCD1602_write(0,0x83);                LCD1602_write(1,LCD[jk_1]);
                LCD1602_write(0,0x84);      LCD1602_write(1,LCD[0]);
            LCD1602_write(0,0x85);                LCD1602_write(1,LCD[jk_2]);
                LCD1602_write(0,0x86);      LCD1602_write(1,LCD[0]);
             LCD1602_write(0,0x87);                LCD1602_write(1,LCD[jk_3]);
                LCD1602_write(0,0x88);      LCD1602_write(1,LCD[0]);
            LCD1602_write(0,0x89);      LCD1602_write(1,LCD[jk_4]);
                LCD1602_write(0,0x8A);      LCD1602_write(1,LCD[0]);
        LCD1602_write(0,0x8B);                LCD1602_write(1,LCD[jk_5]);
                LCD1602_write(0,0x8C);      LCD1602_write(1,LCD[0]);
            LCD1602_write(0,0x8D);                LCD1602_write(1,LCD[jk_6]);
                LCD1602_write(0,0x8E);      LCD1602_write(1,LCD[0]);
             LCD1602_write(0,0x8F);                LCD1602_write(1,LCD[jk_7]);

        LCD1602_write(0,0xC0);                                         
    LCD1602_writebyte("     I Know!    ");
        q=1;  qing_chu=0;

}               
if(flag==0)
{
    D0_1=D1_1=D2_1=D3_1=1;
        D4_1=D5_1=D6_1=D7_1=1;
}                                
                 }
         
         
         }
}

void main()
{
  LCD1602_cls();

        TMOD=0x01;                    //定時器0工作方式1
         TH0=0x4b;
         TL0=0xff;                   //賦初值
         EA=1;                           //開總中斷
         ET0=1;                           //定時器中斷開
         TR0=1;                           //打開定時器
   P1=0x00;
    bg_1602=0;                   //打開背光燈
        Beep=1;
        n=0;
    D0_1=D1_1=D2_1=D3_1=1;
        D4_1=D5_1=D6_1=D7_1=1;

    while(1)                  
   {
     LED_discode();
            display();                   //顯示函數
         key_discode();    //

   }
}


void T0_time() interrupt 1
{
        uint m;
        TH0=0x3c;
         TL0=0xb0;                   //重新賦初值        50ms
        m++;  
        if(m==20)
        {
                m=0;
                if(flag>0)                //如果有呼叫時開啟蜂鳴器
                Beep=~Beep;           //蜂鳴器打開
                else Beep=1;   //蜂鳴器關閉
        }
        n++;
        qing_chu++;
if(qing_chu%20==0)
{
   if(q==1)
    { q=0;
        LCD1602_write(0,0xC0);        //如果按下清除按鍵,                                 
    LCD1602_writebyte("                ");         
        }
}

  if(n>200)
   {
    if(bg_1602==0)
         { n=0;
           bg_1602=1;
         }


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品麻豆 | 一区二区成人在线 | 一级毛片免费看 | 亚洲综合在线视频 | 国产精品久久久久久久久久 | 国产欧美日韩一区二区三区在线 | 精品久久久久久久久久 | 99久久精品免费看国产四区 | 亚洲欧美成人影院 | 色噜噜亚洲男人的天堂 | 国产精品久久福利 | 欧美精选一区二区 | 天天综合久久 | 日韩免费激情视频 | 亚洲国产精品福利 | 97成人精品 | 狠狠操狠狠色 | 国产精品一卡二卡三卡 | 中文字幕一级 | 成人网在线看 | av激情在线 | 97成人精品 | 久久久高清 | 成人免费淫片aa视频免费 | 亚洲 精品 综合 精品 自拍 | 久久久久久久夜 | 91久久精品一区二区二区 | 美女一级毛片 | 超碰网址 | 成年无码av片在线 | 国产成人精品一区二区 | 国产午夜在线 | ww亚洲ww亚在线观看 | 91精品久久久久久久久中文字幕 | 国产欧美一级二级三级在线视频 | 欧美电影大全 | 一区二区三区国产好的精 | 99久热| 国产精品99久久久久久久久久久久 | 999热视频 | 午夜无码国产理论在线 |