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

標題: 矩陣鍵盤 [打印本頁]

作者: 2842687945    時間: 2014-10-26 17:44
標題: 矩陣鍵盤
本帖最后由 2842687945 于 2014-10-26 20:48 編輯

/*******************利用定時器掃描讀取鍵碼*******************/
#include <reg52.h>
typedef unsigned int uint16;
typedef unsigned char uint8;
//定時器0的初始化
void time0(void)
{
        TMOD = 0x01;//設置定時器0的工作方式為1
        TH0 = 0xff;//定時10us定時器0的高位端
        TL0 = 0xf6;//定時10us定時器0的低位端
        ET0 = 1;//開啟定時器0中斷
        TR0 = 1;//啟動定時器0
        EA = 1;//開啟總中斷
}
//矩陣鍵盤函數
void key_P1(void)
{
         uint8 code led[] = {
                                      0x3f,0x06,0x5b,0x4f,
                                      0x66,0x6d,0x7d,0x07,
                                      0x7f,0x6f,0x77,0x7c,
                                      0x39,0x5e,0x79,0x71
                                      };//共陰數碼管的段碼
         P1 = 0xef;//打開第一列
         //第一列的鍵碼
         switch(P1)
         {
                 case 0xee:P0 = led[0];break;
                case 0xed:P0 = led[1];break;
                case 0xeb:P0 = led[2];break;
                case 0xe7:P0 = led[3];break;
                default :break;
         }
         P1 = 0xdf;//打開第二列
         //第二列的鍵碼
         switch(P1)
         {
                 case 0xde:P0 = led[4];break;
                case 0xdd:P0 = led[5];break;
                case 0xdb:P0 = led[6];break;
                case 0xd7:P0 = led[7];break;
                default :break;
         }
         P1 = 0xbf;//打開第三列
         //第三列的鍵碼
         switch(P1)
         {
                 case 0xbe:P0 = led[8];break;
                case 0xbd:P0 = led[9];break;
                case 0xbb:P0 = led[10];break;
                case 0xb7:P0 = led[11];break;
                default :break;
         }
         P1 = 0x7f;//打開第四列
         //第四列的鍵碼
         switch(P1)
         {
                 case 0x7e:P0 = led[12];break;
                case 0x7d:P0 = led[13];break;
                case 0x7b:P0 = led[14];break;
                case 0x77:P0 = led[15];break;
                default :break;
         }
}
//主函數
void main(void)
{
        P1 = 0xff;//P1口的初始化
        time0();//初始化
        while(1)
        {
               
        }
}
//定時器0的子服務函數
void inti(void) interrupt 1
{
        TH0 = 0xff;//重新賦值
        TL0 = 0xf6;
        key_P1();//調用矩陣鍵盤函數
}

QQ截圖20141026204753.png (19.56 KB, 下載次數: 134)

QQ截圖20141026204753.png

作者: a110    時間: 2014-10-26 20:06
有電路圖嗎
作者: abeimao    時間: 2014-11-1 17:18
能否詳細解說一下,進入一次中斷檢測一次key_P1()的值,如何消抖處理,,。學習一下。
作者: lijinglei234420    時間: 2014-12-8 19:10
樓主這個程序能不能用匯編寫給我學習一下

作者: v952952    時間: 2017-9-25 10:45
666可以看看




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 精品国产99 | 天天草天天 | 天堂av中文在线 | 日韩视频在线一区 | 国产精品电影在线观看 | 国产精品久久久久久久久免费相片 | 欧美四虎 | 毛片av免费在线观看 | 亚洲成人精选 | 午夜精品久久久久久久久久久久久 | 国产日韩一区二区 | 欧美在线观看一区 | 一级免费毛片 | 小川阿佐美pgd-606在线 | 久久久青草婷婷精品综合日韩 | 午夜激情国产 | www.久久国产精品 | 日本三级全黄三级三级三级口周 | 美女久久久久久久 | 欧美 视频 | 精品国产一级 | 日本久久精品视频 | 亚洲精品乱码久久久久久蜜桃91 | 狠狠操在线 | 在线中文字幕av | 一区二区三区在线 | 亚洲激情第一页 | 亚洲高清视频在线 | 日韩欧美在线视频播放 | 国产一区三区在线 | 日韩成人高清在线 | 久久i| 欧美一区2区三区4区公司二百 | 欧美日韩高清在线一区 | 国产一区二区三区 | 午夜精品久久久久久 | 成人免费观看男女羞羞视频 | 国产欧美日韩视频 | 国产欧美一区二区三区在线播放 | 免费亚洲婷婷 | 国产成人免费视频 |