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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

矩陣鍵盤 控制數碼管秒表的問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:253035 發表于 2017-11-30 21:35 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
各位大俠幫忙看一下問題出在那兒,秒表開始后按了設定了好的按鍵不會停止,想實現的功能是按下key2=5的按鍵開始,再按下停止以此循環查了一下似乎if(key2==5)下面的語句進不去TR0一直都是1,按鍵編碼檢查了沒有問題,還望指點迷津


#include <reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint  unsigned int
sbit wei=P2^6;
sbit duan=P2^7;
uchar code table_tube[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar code a[]={0xFE,0xFD,0xFB,0xF7};
uint xms,temp,key1,key2;
uchar num,bai,shi,ge,tt0;
void delay(uint);
void display(uchar,uchar,uchar);
void init();
uchar keynum();
uchar coding(uchar);

void main()
{
        init();
        while(1)
        {
                key1=keynum();
                key2=coding(key1);
                if(key2==5)
                {
                        key2=0;
                        TR0=~TR0;
                }
        }
}

void init()
{
        TMOD=0x11;
        TH0=(65535-10000)/256;
        TL0=(65535-10000)%256;
        TH1=(65535-1000)/256;
        TL1=(65535-1000)%256;
        EA=1;ET0=1;TR0=1;
        ET1=1;TR1=1;
        
        P1=0xff;
        wei=1;
        P0=0xf8;
        wei=0;
        duan=1;
        P0=table_tube[0];
        duan=0;
}
void display(uchar bai,uchar shi,uchar ge)
{
        wei=1;
        P0=0xfe;
        wei=0;
        duan=1;
        P0=table_tube[bai]+0x80;
        duan=0;
        delay(1);
        
        wei=1;
        P0=0xfd;
        wei=0;
        duan=1;
        P0=table_tube[shi];
        duan=0;
        delay(1);
        
        wei=1;
        P0=0xfb;
        wei=0;
        duan=1;
        P0=table_tube[ge];
        duan=0;
        delay(1);
}

uchar coding(uchar m)
{
  uchar k;
        switch(m)
        {
                case (0xee): k=0;break;
                case (0xde): k=1;break;
                case (0xbe): k=2;break;
                case (0x7e): k=3;break;
                case (0xed): k=4;break;
                case (0xdd): k=5;break;
                case (0xbd): k=6;break;
                case (0x7d): k=7;break;
                case (0xeb): k=8;break;
                case (0xdb): k=9;break;
                case (0xbb): k=10;break;
                case (0x7b): k=11;break;
                case (0xe7): k=12;break;
                case (0xd7): k=13;break;
                case (0xb7): k=14;break;
                case (0x77): k=15;break;  
        }
        return k;
}
uchar keynum()
{
  uchar i,k;
        P1=0xf0;            //¿éòÔÖ±½óìá衸ßËÄλ±è½Ï£¬èôÎT¼ü°′Ï£¬¸ßËÄλ±Ø¶¨êÇ1111£¬±è½ÏP1&0xf0oí0xf0êÇ·ñÏàí¬¼′¿é
        if((P1&0xf0)!=0xf0)
        {
          delay(5);
                if((P1&0xf0)!=0xf0)
                {
                        i=0;
                  P1=a[i];
                        while(i<4)
                        {
                                if((P1&0xf0)!=0xf0)      //¿éòÔÖ±½óìá衸ßËÄ룬±è½ÏP1&0xf0oí0xf0
                                {
                                        k=P1;
                                        break;
                                }
                                else
                                {
                                        i++;
                                        P1=a[i];
                                }
                   }        
                //        while((P1&0xf0)!=0xf0);
                        return k;
                }
        }
        return 0;
}

void delay(uint xms)
{
        uint x,y;
        for(x=xms;x>0;x--)
         for(y=110;y>0;y--);
}
void timer0()interrupt 1
{
        TH0=(65535-10000)/256;
        TL0=(65535-10000)%256;
        temp++;
        if(temp==1000)
                temp=0;
        bai=temp/100;
        shi=temp%100/10;
        ge=temp%100%10;
}
void timer1()interrupt 3
{
        TH1=(65535-1000)/256;
        TL1=(65535-1000)%256;
display(bai,shi,ge);
}

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

使用道具 舉報

沙發
ID:255904 發表于 2017-11-30 21:45 | 只看該作者
按鍵檢測的時候是不是加點延時
回復

使用道具 舉報

板凳
ID:255904 發表于 2017-11-30 21:46 | 只看該作者
按鍵檢測的時候是不是加點延時
回復

使用道具 舉報

地板
ID:194367 發表于 2017-11-30 22:08 | 只看該作者
應該不是延時的問題吧
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人一区二区三区在线观看 | av片毛片 | 久久亚洲春色中文字幕久久久 | www.亚洲精品 | 国内精品久久久久久 | 久久久久国产一区二区三区四区 | 一级一片在线观看 | 91精品国产高清一区二区三区 | 天天射网站 | 欧美日韩精品一区 | 国产在线一区二区三区 | 在线黄色影院 | 国产综合精品一区二区三区 | 91视频中文| 亚洲色欲色欲www | 91精品国产欧美一区二区 | 欧美精品久久久 | 国产一区二区精品在线观看 | 国产日韩视频在线 | www.色综合 | 国产精品1区2区 | 天天操天天拍 | 日韩中文字幕av | 日本视频免费 | 中文字幕一区二区不卡 | 欧美日韩电影一区 | 九九九久久国产免费 | 欧美 日韩 视频 | 亚洲成人av一区二区 | 91影院 | 日韩成人精品在线 | 日韩av福利在线观看 | 日韩欧美中文在线 | 一级黄色片美国 | 日韩久久精品视频 | 久久久久久网 | 午夜小电影 | 911网站大全在线观看 | 99pao成人国产永久免费视频 | 激情av免费看 | 中文字幕国产高清 |