欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4264|回復(fù): 10
打印 上一主題 下一主題
收起左側(cè)

下面是單片機的六路搶答器,求高手幫忙注釋一下,很多地方不懂啊!

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:51006 發(fā)表于 2013-6-17 12:20 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
    #include <reg52.h>       
        #define uint unsigned int
        #define uchar unsigned char
        unsigned char code table[]={0xc0,0xf9,0xa4,
    0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xc0};
        sbit start=P3^6;
        sbit reset=P3^7;
        sbit key1=P1^0;
        sbit key2=P1^1;               
        sbit key3=P1^2;
        sbit key4=P1^3;
        sbit key5=P1^4;
        sbit key6=P1^5;
        sbit key7=P1^6;
        sbit key8=P1^7;
        sbit jia=P3^4;
        sbit jian=P3^5;
        bit action = 0;
        uchar second=10,a[7]={0};
        uchar timer0_count = 0;
        uchar number=0;
        uchar number_display = 0;
        uchar k;
        void delay(uint z)
        {
                uint x,y;
                for(x=z;x>0;x--)
                        for(y=120;y>0;y--);
        }
        void display(uchar number,uchar second)
        {                       
                P2 = 0x01;
                P0 = table[second];       
                delay(1);
                P2 = 0x02;
                P0 = table[number];
                delay(1);
                P2 = 0x04;
                P0 = table[a[0]];
                delay(1);
                P2 = 0x08;
                P0 = table[a[1]];
                delay(1);
                P2 = 0x10;
            P0 = table[a[2]];
                delay(1);
                P2 = 0x20;
                P0 = table[a[3]];
                delay(1);
                P2 = 0x40;
                P0 = table[a[4]];
                delay(1);
                P2 = 0x80;
                P0 = table[a[5]];
                delay(1);       
        }
        void start_keyscan()
        {
            void fengling();
                while(start == 0)
                {
                    key7=0;
                        display(number_display,second);
                        if(start == 1)
                        {
                            key7=1;
                                action  = 1;
                                TR0 = 1;               
                        }
                }       
        }
       
        uchar key_scan8()
        {
                if(key1 == 0)
                {
                        delay(8);
                        if(key1 == 0)
                        {
                                number  = 1;
                                number_display = number;
                        }
                }
                                if(key2 == 0)
                {
                        delay(8);
                        if(key2 == 0)
                        {
                                number  = 2;
                                number_display = number;
                        }
                }
                if(key3 == 0)
                {
                        delay(8);
                        if(key3 == 0)
                        {
                                number  = 3;
                                number_display = number;
                        }
                }
                if(key4 == 0)
                {
                        delay(8);
                        if(key4 == 0)
                        {
                                number  = 4;
                                number_display = number;
                        }
                }
                if(key5 == 0)
                {
                        delay(8);
                        if(key5 == 0)
                        {
                                number  = 5;
                                number_display = number;
                        }
                }
                if(key6 == 0)
                {
                        delay(8);
                        if(key6 == 0)
                        {
                                number  = 6;
                                number_display = number;
                        }
                }                                                       
                if(number_display != 0)       
                {
                        return number_display;
                }
                else
                {
                        return 0;
                }               
        }
        void reset_keyscan()
        {
                if(reset == 0)
                {
                        delay(8);
                        if(reset == 0)
                        {
                                number_display = 0;                       
                               second=10;
                }
                }       
        }
        void main()
        {
                TMOD=0x01;
                TH0=(65536-50000)/256;
                TL0=(65536-50000)%256;
                EA=1;
                ET0=1;
                TR0=0;
                P2=0x00;                               
                while(1)
                {
                    reset_keyscan();
                        start_keyscan();                   
                         if(jia==0&&a[number-1]<9)
              {  
                 delay(10);
                 while(jia==0)
                     display(number_display,second);
                     a[number-1]=a[number-1]+1;          
              }
            if(jian==0&&a[number-1]>0)
              {
                 delay(10);
                     while (jian==0)
                     display(number_display,second);
                     a[number-1]=a[number-1]-1;
              }
                        while(action)
                        {
                         while(!key_scan8())              
                        {       
                                display(number_display,second);
                                if(second == 0)
                                {
                                        second = 10;
                                        break;
                                }
                        }
                                        TR0 = 0;
                                        key7=0;
                                        delay(80);
                                   display(number_display,second);                                               
                 key7=1;
                                        action = 0;
                                        break;
                        }
                        display(number_display,second);       
                }
        }
        void timer0() interrupt 1
        {
                TH0=(65536-50000)/256;
                TL0=(65536-50000)%256;
                timer0_count ++;
                if(timer0_count == 20)
                {       
                        second --;
                        timer0_count = 0;
          if(second==0)
                        {
                           key7=0;
                           delay(60);
                           key7=1;
                     }
                 }                               
         }
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

無效樓層,該帖已經(jīng)被刪除
無效樓層,該帖已經(jīng)被刪除
地板
ID:1 發(fā)表于 2013-6-17 15:25 | 只看該作者
是一個八路搶答器的單片機程序
回復(fù)

使用道具 舉報

5#
ID:76287 發(fā)表于 2015-4-7 19:03 | 只看該作者
不懂,但是還是要頂,安撫樓主受傷心靈,每一個新手都是痛苦的開始,快樂的結(jié)局
回復(fù)

使用道具 舉報

6#
ID:439073 發(fā)表于 2019-4-18 14:53 | 只看該作者
道到我的單片機里沒用呀
回復(fù)

使用道具 舉報

7#
ID:370231 發(fā)表于 2019-4-18 15:20 | 只看該作者
在學習技術(shù)的時候,一定要多動腦筋,遇到問題后,三思而后問。
回復(fù)

使用道具 舉報

8#
ID:515274 發(fā)表于 2019-4-18 16:08 | 只看該作者
key_scan8這個函數(shù)檢測8個按鍵是否有按下的,檢測到按鍵后返回number_display。
回復(fù)

使用道具 舉報

9#
ID:1105312 發(fā)表于 2023-12-20 14:51 | 只看該作者
六路搶答器怎么做,在線求
回復(fù)

使用道具 舉報

10#
ID:1105312 發(fā)表于 2023-12-20 14:52 | 只看該作者
下載進我的單片機了沒用呀
回復(fù)

使用道具 舉報

11#
ID:1062320 發(fā)表于 2023-12-22 09:23 | 只看該作者
這段代碼看起來是為了一個帶有按鈕的七段數(shù)碼管計數(shù)器,可以用來遞增和遞減數(shù)字。它還包括一個倒計時器,從10倒數(shù)到0,下載進單片機沒用有可能是你的引腳不對 比如原來是P1.0-7引腳,但是你單片機可能不是這個接口
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表