您的位置 首页 培训

PIC单片机1X4独立键盘C言语程序

***********************************************功能:1X4按键***实验内容:按下S1S2S3S4数码管分别显示出0123***

/********************************************

*** 功用:1X4按键*** 试验内容:按下S1 S2 S3 S4 数码管别离显现出0 1 2 3*** 开发板衔接办法:把J3的的跳线帽跳到1-2(左面)*********************************************/#include              //包括单片机内部资源预界说__CONFIG(0xFF32);//芯片装备字,看门狗关,上电延时开,掉电检测关,低压编程关,加密,4M晶体HS振动const unsigned char TABLE[] = {0x3f,0x6,0x5b,0x4f,0x66};int result;void delay();              //delay函数声明void init();               //I/O口初始化函数声明void scan();               //按键扫描程序声明void display(int x);       //显现函数声明/***************************************************************************** 名    称:main()* 功    能:* 进口参数:* 出口参数:****************************************************************************/void main(){   result = 0x8;               //开始时显现Finit();                                           //调用初始化函数while (1)                         //死循环{scan();                      //调用按键扫描程序display(result);             //调用成果显现程序}}/***************************************************************************** 名    称:init()* 功    能:初始化* 进口参数:* 出口参数:****************************************************************************/void init(){TRISB = 0X0F;          //设置B口低4位为输入TRISD = 0;          //portd 输出TRISC = 0xf0;TRISA = 0;          //porta 输出PORTA = 0x00;        //先封闭一切显现PORTD = 0x0f;PORTC = 0xff;}/***************************************************************************** 名    称:scan()* 功    能:按键扫描* 进口参数:* 出口参数:****************************************************************************/void scan(){if (RB0 == 0)               //判别B0是否按下result = 0x1;if (RB1 == 0)               //判别B1是否按下result = 0x2;if (RB2 == 0)               //判别B2是否按下result = 0x3;if (RB3 == 0)               //判别B3是否按下result = 0x4;}/***************************************************************************** 名    称:display()* 功    能:成果显现* 进口参数:int x 要实际的数据* 出口参数:****************************************************************************/void display(int x){switch (x)                //依据X值的不同,跳转到相应的部分处理{case 0x1:PORTD = TABLE[0];PORTA = 0X3F;delay();break;          //B0case 0x2:PORTD = TABLE[1];PORTA = 0X3F;delay();break;          //B1case 0x3:PORTD = TABLE[2];PORTA = 0X3F;delay();break;          //B2case 0x4:PORTD = TABLE[3];PORTA = 0X3F;delay();break;          //B3case 0x8:PORTD = 0X71;PORTA = 0Xff;delay();break;                  //无按键下}}/***************************************************************************** 名    称:delay()* 功    能:延时* 进口参数:* 出口参数:****************************************************************************/void delay()              {int i;                  //界说整形变量for (i = 600;i--;);     //延时}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/peixun/254106.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部