您现在的位置: 主页 > MCU > 单片机综合应用 > PIC单片机1X4独立键盘C语言程序
本文所属标签:
为本文创立个标签吧:

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

来源:网络整理 网络用户发布,如有版权联系网管删除 2018-07-21 

*** 功能:1X4按键

*** 实验内容:按下S1 S2 S3 S4 数码管分别显示出0 1 2 3

*** 开发板连接方法:把J3的的跳线帽跳到1-2(左边)

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

#include<pic.h> //包含单片机内部资源预定义

__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; //开始时显示F

init(); //调用初始化函数

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; //B0

case 0x2:

PORTD = TABLE[1];PORTA = 0X3F;delay();break; //B1

case 0x3:

PORTD = TABLE[2];PORTA = 0X3F;delay();break; //B2

case 0x4:

PORTD = TABLE[3];PORTA = 0X3F;delay();break; //B3

case 0x8:

PORTD = 0X71;PORTA = 0Xff;delay();break; //无按键下

* 名 称:delay()

* 功 能:延时

void delay()

int i; //定义整形变量

for (i = 600;i--;); //延时



              查看评论 回复



嵌入式交流网主页 > MCU > 单片机综合应用 > PIC单片机1X4独立键盘C语言程序
 显示 按下 按键

"PIC单片机1X4独立键盘C语言程序"的相关文章

网站地图

围观()