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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2755|回復(fù): 3
收起左側(cè)

51單片機(jī)矩陣鍵盤程序語句調(diào)試問題

[復(fù)制鏈接]
ID:477073 發(fā)表于 2019-2-24 12:01 | 顯示全部樓層 |閱讀模式
這個矩陣鍵盤的,怎么改變剛打開單片機(jī)還沒有按鍵時數(shù)碼管顯示的符號,加上圖二這三句 沒有改變顯示的字符,求大佬指教


QQ圖片20190224115743.jpg
QQ圖片20190224115804.jpg
回復(fù)

使用道具 舉報

ID:213173 發(fā)表于 2019-2-24 16:28 | 顯示全部樓層


/*************        IO口定義        **************/
sbit        P_HC595_SER   = P2^5;        //SER                data input
sbit        P_HC595_RCLK  = P2^6;        //RCLk        store (latch) clock
sbit        P_HC595_SRCLK = P2^7;        //SRCLK        Shift data clock

unsigned char code t_display[]={                                                //段碼標(biāo)準(zhǔn)字庫
//         0    1    2    3    4    5    6    7    8    9    A    B    C    D    E    F
        0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71,
//  不顯   -   H    J         K          L           N        o    P           U   t    G    Q    r    M    y
        0x00,0x40,0x76,0x1E,0x70,0x38,0x37,0x5C,0x73,0x3E,0x78,0x3d,0x67,0x50,0x37,0x6e,
//    0.  1.   2.   3.   4.   5.   6.   7.   8.   9.   -1
        0xBF,0x86,0xDB,0xCF,0xE6,0xED,0xFD,0x87,0xFF,0xEF,0x46};

unsigned char code T_COM[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};                //位碼

/**************** 向HC595發(fā)送一個字節(jié)函數(shù) ******************/

void Send_595(u8 dat)
{               
        u8        i;
        for(i=0; i<8; i++)
        {
                dat <<= 1;
                P_HC595_SER   = CY;
                P_HC595_SRCLK = 1;
                P_HC595_SRCLK = 0;
        }
}
/********************** 顯示掃描函數(shù) ************************/

void DisplayScan(void)
{       
        Send_595(~LED_TYPE ^ T_COM[display_index]);        //輸出位碼
        Send_595( LED_TYPE ^ t_display[LED8[display_index]]);        //輸出段碼

        P_HC595_RCLK = 1;
        P_HC595_RCLK = 0;                                                        //鎖存輸出數(shù)據(jù)
        if(++display_index >= 8)       
                display_index = 0;        //8位結(jié)束回0
}




回復(fù)

使用道具 舉報

ID:213173 發(fā)表于 2019-2-24 20:05 | 顯示全部樓層

無標(biāo)題1.jpg
初始顯示字母示例程序
#include <reg52.h>
#define uint unsigned int                 //宏定義無符號整型數(shù)據(jù)
#define uchar unsigned char         //宏定義無符號字符型數(shù)據(jù)

sbit        P_HC595_SER   = P2^0;
sbit        P_HC595_SRCLK = P2^1;
sbit        P_HC595_RCLK  = P2^2;

uchar  code table[]={//共陰數(shù)碼管段碼"0~H"
        0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,
// A    B    C    D    E    F    G    H
   0x77,0x7C,0x39,0x5E,0x79,0x71,0x3d,0x76};

uchar code dis_buf[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//位碼
uchar buf[8];

uchar key=0;                                        //定義鍵值全局變量

void keyscan()                                        //按鍵掃描程序
{
        static bit sign=0;                        //按鍵有效標(biāo)志
        static uint count=0;                //消抖計數(shù)變量                       
        uchar num=0;                                //臨時變量
        P3=0xf0;                                        //賦值P3 1111 0000
        if(P3!=0xf0)                                //檢測有按鍵按下
        {
                count++;                                //消抖計數(shù)
                if((count>=500)&&(sign==0))//100~1000,根據(jù)主循環(huán)周期調(diào)整約10~20ms
                {                       
                        sign=1;                                //按鍵有效標(biāo)志置1
                        num=P3;                                //保存P3值xxxx 0000,x為0或1
                        num|=0x0f;                        //保存num按位或0x0f值xxxx 1111
                        P3=num;                                //賦值P3 xxxx 1111
                        num=P3;                                //保存P3值xxxx xxxx
                        switch(num)
                        {
                                case 0xee: key= 1; break;
                                case 0xde: key= 2; break;
                                case 0xbe: key= 3; break;
                                case 0x7e: key= 4; break;
                                case 0xed: key= 5; break;
                                case 0xdd: key= 6; break;
                                case 0xbd: key= 7; break;
                                case 0x7d: key= 8; break;
                                case 0xeb: key= 9; break;
                                case 0xdb: key=10; break;
                                case 0xbb: key=11; break;
                                case 0x7b: key=12; break;
                                case 0xe7: key=13; break;
                                case 0xd7: key=14; break;
                                case 0xb7: key=15; break;
                                case 0x77: key=16; break;
                        }
                }
        }
        else                                                //鍵抬起
        {
                sign=0;                                        //按鍵有效標(biāo)志清0
                count=0;                                //消抖計數(shù)清0
        }
}
/**************** 向HC595發(fā)送一個字節(jié)函數(shù) ******************/
void Send_595(uchar dat)
{               
        uchar i;
        for(i=0;i<8;i++)
        {
                dat <<= 1;
                P_HC595_SER  = CY; //溢出位賦值數(shù)據(jù)輸出端
                P_HC595_SRCLK = 1; //移位時鐘
                P_HC595_SRCLK = 0;
        }
}
/**************** 向HC595發(fā)送2個字節(jié)函數(shù) ******************/
void DisplayScan()
{       
        static uchar j;
        Send_595(dis_buf[j]);//向HC595發(fā)送位碼
        Send_595(table[buf[j]]);//向HC595發(fā)送段碼
        P_HC595_RCLK = 1;//鎖存輸出數(shù)據(jù)
        P_HC595_RCLK = 0;
        if(++j==8)
                j=0;
}

void main()                                                //主函數(shù)
{
        uchar i;
        P_HC595_SRCLK = 0;//初始化移位時鐘端
        P_HC595_RCLK  = 0;//初始化鎖存輸出端
        while(1)
        {
                keyscan();                                //按鍵掃描程序
                if(key==0)
                {
                        buf[0]=10;
                        buf[1]=11;
                        buf[2]=12;
                        buf[3]=13;
                        buf[4]=14;
                        buf[5]=15;
                        buf[6]=16;
                        buf[7]=17;
                }
                else
                {
                        buf[0]=0;
                        buf[1]=0;
                        buf[2]=0;
                        buf[3]=0;
                        buf[4]=0;
                        buf[5]=0;
                        buf[6]=key/10;
                        buf[7]=key%10;
                }
                if(++i>=100)
                {
                        i=0;
                        DisplayScan();                //發(fā)送2個字節(jié)
                }
        }
}



無標(biāo)題1.jpg
回復(fù)

使用道具 舉報

ID:213173 發(fā)表于 2019-2-25 07:50 | 顯示全部樓層
無標(biāo)題.jpg
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩精品一区二区三区中文在线 | 一区二区三区日韩 | 亚洲一区自拍 | 国产精品久久影院 | 国产精品九九九 | 亚洲欧美中文日韩在线v日本 | 国产精品久久久久久久午夜片 | 不卡在线视频 | www视频在线观看 | 91xxx在线观看 | 久久在线精品 | 亚洲97| 中文字幕一区二区三区四区五区 | 国产91av视频 | 日韩国产在线 | 天天搞天天操 | 国产精品黄色 | 久久精品一 | 久久久久国产精品一区二区 | 97影院在线午夜 | 九九综合 | 午夜羞羞 | 日韩精品在线看 | 亚洲视频免费观看 | 国产九一精品 | www.久久99 | 亚洲人成网亚洲欧洲无码 | 国产伦精品一区二区三区照片91 | 久久在线看| 欧美最猛黑人xxxⅹ 粉嫩一区二区三区四区公司1 | 欧美日韩中文字幕在线 | 久久久免费| 一二区视频 | 人人精品 | 美女国产 | 欧美日韩一区二区三区四区 | 视频一区在线观看 | 成人免费视频在线观看 | a视频在线观看 | 天天操网| 7799精品视频天天看 |