⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 单片机c语言程序设计100例--基于PIC+PROTEUS
💻 C
字号:
//-----------------------------------------------------------------
//  名称: 数码管显示4x4键盘矩阵按键序号
//-----------------------------------------------------------------
//  说明: 本例运行时,数码管会显示所按下的任意按键在键盘矩阵上的位置.
//        扫描程序首先判断按键发生在哪一列,然后判断按键发生在哪一行, 
//        由列号和行号即可得到键盘按键序号.
//            
//-----------------------------------------------------------------
#include <pic.h> 
#define INT8U   unsigned char
#define _XTAL_FREQ 4000000UL
#define BEEP() (RA1 = ~RA1)  //蜂鸣器

//0~9,A~F的共阴数码管段码
const INT8U SEG_CODE[] = 
{ 
  0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,
  0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71
};

//当前按键序号,该矩阵中序号范围为0~15,16表示无按键
INT8U KeyNo = 16; 
//-----------------------------------------------------------------    
// 蜂鸣器子程序     
//-----------------------------------------------------------------
void Beep()
{
    for (INT8U i = 0; i < 100; i++)
    {
        BEEP(); __delay_us(60);
    }    
}

//-----------------------------------------------------------------
// 判断键盘矩阵是否有键按下
//-----------------------------------------------------------------
INT8U KeyMatrix_Down()
{
    //高四位输出,低四位输入,高四位先置0,放入四行    



    //四列中如果有一列出现0则表示有键按下


}
 
//-----------------------------------------------------------------
// 键盘矩阵扫描子程序
//-----------------------------------------------------------------
void Keys_Scan()
{ 
    //在判断是否有键按下的函数KeyMatrix_Down中,
    //高四位输出,低四位输入,高四位先置0,放入四行
    //按键后00001111将变成0000XXXX,X中有1个为0,3个仍为1
    //下面判断按键发生于0~3列中的哪一列
    switch (PORTD)
    {




    }
        
    //高四位输入,低四位输出,低四位先置0,放入四列

   
    
    //按键后11110000将变成XXXX0000,X中1个为0,3个仍为1
    //下面对0~3行分别附加起始值0,4,8,12  
    switch (PORTD)
    {




    }
}

//-----------------------------------------------------------------
// 主程序
//-----------------------------------------------------------------
void main()
{
    ADCON1 = 0x06;                         //关闭模拟端口
    TRISA1 = 0;                            //蜂鸣器输出端口(RA1)
    TRISB = 0x00;                          //配置数码管显示输出端口
    PORTB = 0x00;                          //数码管初始时黑屏
    
    while(1)
    { 






    } 
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -