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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1882|回復: 4
打印 上一主題 下一主題
收起左側(cè)

誰能幫我看看為啥單片機程序?qū)崿F(xiàn)不了鍵盤逐個輸入到BCD中

[復制鏈接]
回帖獎勵 40 黑幣 回復本帖可獲得 20 黑幣獎勵! 每人限 1 次
跳轉(zhuǎn)到指定樓層
樓主
ID:621862 發(fā)表于 2020-6-17 16:49 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
為啥實現(xiàn)不了從鍵盤逐個輸入到數(shù)碼管中,我在PROTUES手動控制鎖存是可以實現(xiàn)的,代碼不知道哪里出了問題。目標是想輸入一個數(shù)字鎖存然后輸入下一個再鎖存。這樣

單片機源程序如下:
#include <reg51.h>
unsigned char table[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x27,0x7F,0x6F, //0-9字形碼,也叫段碼
0x77,0x7C,0x39,0x5E,0x79,0x71};

sbit Q=P3^0;   //BCD1
sbit W=P3^1;        //BCD2
sbit E=P3^2;        //BCD3
sbit R=P3^3;        //BCD4

unsigned char count=0;
void delay(unsigned int i)
{          unsigned char j,k;
  for(j=i;j>0;j--)
    for(k=255;k>0;k--);
}
void keyscanf() {
          unsigned char temp;

        
         P2=0xfe;
          temp=P2;
        temp=temp&0xf0;
        if(temp!=0xf0)
        {          temp=P2;
                switch        (temp){
                case 0xee:P1=table[1];count++;break;
                case 0xde:P1=table[2];count++;break;
                case 0xbe:P1=table[3];count++;break;
                case 0x7e:P1=table[4];count++;break;        }
               
        }


                P2=0xfD;
          temp=P2;
        temp=temp&0xf0;
        if(temp!=0xf0)
        {          temp=P2;
                switch        (temp){
                case 0xed:P1=table[5];count++;break;
                case 0xdd:P1=table[6];count++;break;
                case 0xbd:P1=table[7];count++;break;
                case 0x7d:P1=table[8];count++;break;        }
                        

        }
                   P2=0xfB;
          temp=P2;
        temp=temp&0xf0;
        if(temp!=0xf0)
        {          temp=P2;
                switch        (temp){
                case 0xeB:P1=table[9];count++;break;
                case 0xdB:P1=table[10];count++;break;
                case 0xbB:P1=table[11];count++;break;
                case 0x7B:P1=table[12];count++;break;        }
                        

        }
                   P2=0xf7;
          temp=P2;
        temp=temp&0xf0;
        if(temp!=0xf0)
        {          temp=P2;
                switch        (temp){
                case 0xe7:P1=table[13];count++;break;
                case 0xd7:P1=table[14];count++;break;
                case 0xb7:P1=table[15];count++;break;
                case 0x77:P1=table[0];count++;break;        }
                        

        }
                  
           
        }

           


void main()        {

         Q=W=E=R=0;
                        
  while(1){
                  
                if(count==0)
        {        Q=1;W=E=R=0;
                   keyscanf();
        }
        
                if(count==1)
                {         
                         W=1;Q=E=R=0;
                        
                          keyscanf();
                }
                        
                if(count==2)
                {         
                        E=1;Q=W=R=0;
               
                          keyscanf();
                }

               
                if(count==3)
                {         
                        R=1;Q=W=E=0;
               
                          keyscanf();
                }
                if(count==4)
                {        count=0;}
   }
        }

1592383573(1).jpg (81.04 KB, 下載次數(shù): 54)

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

使用道具 舉報

沙發(fā)
ID:332444 發(fā)表于 2020-6-18 07:02 | 只看該作者
對于P3的4個口用于控制鎖存器不用那樣寫的麻煩,直接賦值給P3口1,2,4,8就可以了,寫法比較簡單。按鍵取值那樣寫也太啰嗦了,看起來也不直觀,不如使用16個獨立按鍵,驅(qū)動寫的容易懂。
回復

使用道具 舉報

板凳
ID:332444 發(fā)表于 2020-6-18 11:08 | 只看該作者

回復

使用道具 舉報

地板
ID:600952 發(fā)表于 2020-6-26 13:53 | 只看該作者
樓上說的很詳細,完全贊同,對于P3的4個口用于控制鎖存器不用那樣寫的麻煩,直接賦值給P3口1,2,4,8就可以了,寫法比較簡單。按鍵取值那樣寫也太啰嗦了,看起來也不直觀,不如使用16個獨立按鍵,驅(qū)動寫的容易懂。
回復

使用道具 舉報

5#
ID:788495 發(fā)表于 2020-6-27 09:43 | 只看該作者
樓上說的確實詳細,就直接賦值P3的1、2、4、8就可以,這樣的話操作比較簡單,而且也沒那么麻煩
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 狠狠色综合久久丁香婷婷 | 欧美精品一区二区三区四区 在线 | 91福利网 | 日韩av成人在线 | 午夜精品福利视频 | 天天操天天摸天天干 | 国产福利在线 | 欧美一级免费 | 中文字幕成人 | 黄色片在线 | 午夜精品影院 | 日韩美av| 在线观看你懂的网站 | 五月婷婷亚洲 | 成人精品视频 | 欧美一二精品 | 欧美一级片中文字幕 | 成人免费在线 | 福利网址 | 欧美 日韩 国产 一区 | 99精品网站 | 国产精品美女久久久久久免费 | 精品三区| 国产一区二区三区四区 | 天堂视频免费 | 久久大陆 | 999久久久久久久久6666 | 国产三级国产精品 | 亚洲精品一区在线观看 | 天天干天天爱天天爽 | 久久夜夜| www.天天操.com| 日操操 | 天天视频一区二区三区 | 国产欧美在线一区二区 | 国产成人免费视频网站视频社区 | 欧美精品1区 | 色爱av| 91在线导航 | 视频一区二区三区中文字幕 | 国产精品久久久久久久免费观看 |