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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

誰能幫我看看為啥單片機程序實現不了鍵盤逐個輸入到BCD中

[復制鏈接]
回帖獎勵 40 黑幣 回復本帖可獲得 20 黑幣獎勵! 每人限 1 次
跳轉到指定樓層
樓主
為啥實現不了從鍵盤逐個輸入到數碼管中,我在PROTUES手動控制鎖存是可以實現的,代碼不知道哪里出了問題。目標是想輸入一個數字鎖存然后輸入下一個再鎖存。這樣

單片機源程序如下:
#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, 下載次數: 54)

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

使用道具 舉報

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

使用道具 舉報

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

回復

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 毛片免费观看视频 | 日韩福利在线观看 | 一区二区三区在线 | 亚洲精品国产第一综合99久久 | 欧美日韩精品久久久免费观看 | 在线伊人 | 欧美久久久久久久 | 欧美精品在线一区 | 亚洲人成人一区二区在线观看 | 亚洲国产一区视频 | 日日噜噜噜夜夜爽爽狠狠视频97 | 国产一区视频在线 | 欧美日韩中文字幕 | 亚洲精品自拍视频 | 男女搞网站 | 国产精品日韩欧美一区二区 | 亚洲一区二区三区国产 | 操久久| 国产精品高清在线 | 伊人激情综合网 | 久久91精品 | 色婷婷婷婷色 | 在线观看日韩av | 久久在视频 | 欧美涩涩网 | 男人视频网站 | av网站免费| 成人在线精品视频 | 午夜寂寞影院在线观看 | 欧美自拍一区 | 99在线免费视频 | 久久一| 一区二区在线观看免费视频 | 欧美色综合| 天堂中文资源在线 | 一级毛片大全免费播放 | 午夜精品在线 | 天天拍夜夜爽 | 精品一区二区三区91 | 国产久| 国产精品久久久久久久三级 |