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

標(biāo)題: 下面是單片機的六路搶答器,求高手幫忙注釋一下,很多地方不懂啊! [打印本頁]

作者: 楓月——童話    時間: 2013-6-17 12:20
標(biāo)題: 下面是單片機的六路搶答器,求高手幫忙注釋一下,很多地方不懂啊!
    #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;
                     }
                 }                               
         }
作者: admin    時間: 2013-6-17 15:25
是一個八路搶答器的單片機程序
作者: livingliving    時間: 2015-4-7 19:03
不懂,但是還是要頂,安撫樓主受傷心靈,每一個新手都是痛苦的開始,快樂的結(jié)局
作者: wx1235    時間: 2019-4-18 14:53
道到我的單片機里沒用呀
作者: a89588038    時間: 2019-4-18 15:20
在學(xué)習(xí)技術(shù)的時候,一定要多動腦筋,遇到問題后,三思而后問。
作者: mdz2019    時間: 2019-4-18 16:08
key_scan8這個函數(shù)檢測8個按鍵是否有按下的,檢測到按鍵后返回number_display。
作者: 77777770    時間: 2023-12-20 14:51
六路搶答器怎么做,在線求
作者: 77777770    時間: 2023-12-20 14:52
下載進我的單片機了沒用呀
作者: LengmoAngel    時間: 2023-12-22 09:23
這段代碼看起來是為了一個帶有按鈕的七段數(shù)碼管計數(shù)器,可以用來遞增和遞減數(shù)字。它還包括一個倒計時器,從10倒數(shù)到0,下載進單片機沒用有可能是你的引腳不對 比如原來是P1.0-7引腳,但是你單片機可能不是這個接口




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 老司机成人在线 | 国产高清视频一区二区 | 中文成人在线 | 九九热在线免费观看 | 色婷婷国产精品 | 国产 欧美 日韩 一区 | 国产小u女发育末成年 | 欧美成人免费在线 | 国产精品乱码一区二三区小蝌蚪 | 男女视频在线观看免费 | 午夜av免费 | 亚洲精品99| 在线免费亚洲视频 | 九九久久国产精品 | 91精品国产91久久久久久最新 | 手机日韩 | 亚洲精品成人网 | 久久ww| 特黄色一级毛片 | 国产精品一区二 | 久久精品视频在线免费观看 | 北条麻妃一区二区三区在线观看 | 中文在线a在线 | av免费网址 | 日本精品一区二区三区在线观看视频 | 香蕉一区 | 91在线视频播放 | 久久天天 | 激情五月婷婷综合 | av激情在线 | 精品视频一区二区三区在线观看 | 久青草影院| 国产成人网 | 久久精品中文 | 日韩久久久久 | 欧美专区在线视频 | 99久久中文字幕三级久久日本 | 99久久久国产精品 | 日韩欧美一级片 | 日韩国产一区二区三区 | 请别相信他免费喜剧电影在线观看 |