PIC单片机1X4独立键盘C语言程序
时间:12-02
来源:互联网
点击:
/********************************************
*** 功能: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--;); //延时}
PIC单片机1X4独立键盘C语言程 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)