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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

求問?控制8255完成鍵盤掃描及數碼顯示

[復制鏈接]
跳轉到指定樓層
樓主
控制8255完成鍵盤掃描及數碼顯示
鍵盤采用4×4鍵盤,每個數碼管顯示值可為0~F16個數。鍵盤編號為0~F,當按下其中一個按鍵時,將該按鍵對應的編號在一個數碼管上顯示出來,當再按下一個按鍵時,便將這個按鍵的編號在下一個數碼管上顯示出來,數碼管上可以顯示最近6次按下的按鍵編號。                                    
參考程序
#include "Absacc.h"
#define C8255_A     XBYTE[0x7F00]     //8255端口地址定義
#define C8255_B     XBYTE[0x7F01]
#define C8255_C     XBYTE[0x7F02]
#define C8255_CON   XBYTE[0x7F03]
//共陰極七段碼
unsigned char a[] = {0x3f, 0x06, 0x5b,0x4f, 0x66, 0x6d, 0x7d, 0x07,
                                    0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79,0x71};
unsigned char b[] = {0x00, 0x00, 0x00,0x00};

unsigned char key_down;
unsigned char key_value;
unsigned char key_count;

void delay(unsigned int time)
{
       unsignedint i;
       for(i=0;i<time; i++);
}

void keyscan()                                   //按鍵掃描函數
{
       unsignedchar cc;
       C8255_A= 0x00;                        //X1X40
       cc= C8255_C;                            //得到Y1Y4的值
       key_down= (~cc) & 0x0f;
}

void display()                             //顯示函數
{
       unsignedchar i, j = 0xF7;
       for(i=0;i<4; i++)
       {
              C8255_A= j;
              C8255_B= a[b];        //查表輸出顯示
              delay(0x100);
              j>>= 1;
       }
}
void clear()
{
       C8255_B= 0x00;
}

void writebuffer()
{
       b[key_count]= key_value;
       key_count--;
       if(key_count== -1)
              key_count= 3;
       display();
       clear();
       keyscan();
       while(key_down)                        //鍵盤消抖
       {
              display();
              clear();
              keyscan();
       }
}

void getkey()                              //得到按鍵值
{
       unsignedchar value;
       unsignedchar i, j = 0xFE;

       for(i=0;i<4; i++)
       {
              C8255_A= j;
              value= C8255_C;

              if(!(value& 0x01))
              {
                     key_value= i + 0;
                     writebuffer();
                     return;
              }

              if(!(value& 0x02))
              {
                     key_value= i + 4;
                     writebuffer();
                     return;
              }

              if(!(value& 0x04))
              {
                     key_value= i + 8;
                     writebuffer();
                     return;
              }

              if(!(value& 0x08))
              {
                     key_value= i + 12;
                     writebuffer();
                     return;
              }

              j<<= 1;
       }
}

void main()
{
       C8255_CON= 0x81;                   //8255初始化

       key_count= 3;

       while(1)
       {
              display();                      //顯示
              clear();                         //清屏
              keyscan();                            //按鍵掃描
              if(key_down)                //判是否有鍵按下
              {
                     display();
                     delay(0x100);
                     clear();
                     keyscan();
                     if(key_down)
                     {
                            getkey();        //得到按鍵值
                     }
              }
       }
}
這是我根據程序畫的仿真圖,但是現象出不來,求路過的各路大神幫我看一下程序和電路圖啊!!!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:92810 發表于 2018-3-16 22:24 | 只看該作者
我也需要這個啊!!!
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美一区免费 | 日本一区二区三区四区 | 久久五月婷 | 91精品国产欧美一区二区 | 欧美黑人巨大videos精品 | av色噜噜| 在线午夜 | 亚洲国产一区在线 | 成人免费在线播放 | 91看片在线观看 | 欧美久久久久 | av黄色在线| 五月婷婷色 | 人成在线视频 | 91精品国产综合久久久久久丝袜 | 亚洲乱码一区二区三区在线观看 | 亚洲精品成人网 | 91免费观看国产 | 日韩欧美视频免费在线观看 | 日韩中文字幕一区 | 久久人人网 | 久久国际精品 | 亚洲国产精品suv | 麻豆一区二区三区 | 久久久www| 精品少妇一区二区三区在线播放 | 黄视频网站免费观看 | 最新中文字幕在线 | 精品欧美一区二区三区精品久久 | 福利片一区二区 | 色免费在线视频 | 成人av一区二区在线观看 | 久久97精品 | 欧美日韩精品中文字幕 | 日韩精品久久一区二区三区 | 成人在线免费观看av | 日韩中文字幕在线视频 | 一级中国毛片 | 日本aa毛片a级毛片免费观看 | 在线观看成人小视频 | 日本精品免费在线观看 |