#include<pic.h>
#define UCHAR unsigned char
#define UINT unsigned int
#define LS1 RB0 /*灯*/
#define LS2 RB1 /*灯*/
#define LS3 RB2 /*灯*/
#define RS1 RB3 /*灯*/
#define RS2 RB4 /*灯*/
#define RS3 RB5 /*灯*/
#define PGC RB6
#define PGD RB7
#define AUT RC0 /*灯*/
#define MNU RC1 /*灯*/
#define RPO RC2 /*灯*/
#define LPO RC3 /*灯*/
#define IRL RC4
#define ILL RC5
#define IRP RC6
#define ILP RC7
#define RPH RD0 /*灯*/
#define LPH RD1 /*灯*/
#define ALM RD2 /*报警*/
#define KRH RD3 /*按键*/
#define KAU RD4 /*按键*/
#define KPO RD5 /*按键*/
#define KPH RD6 /*按键*/
#define KLH RD7 /*按键*/
#define DTL RE1 /*灯*/
#define DTR RE2 /*灯*/
#define NOP asm("nop")
__CONFIG(PWRTEN & HS & PROTECT & WDTDIS);
void delay();
void init();
/**********************延时程序***********************/
void delay() //延时程序
{
int i; //定义整形变量
for(i=0x100;i--;); //延时
}
void main() //主函数
{
while(1) //死循环
{
delay();
init();
if(RD7==0)
{
PORTB=0xf8;
PORTC=0xfa;
PORTD=0x7a;
PORTE=0xff;
}
else if(RD3==0)
{
PORTB=0xc7;
PORTC=0xfa;
PORTD=0x72;
PORTE=0xff;
}
else if(RD6==0)
{
PORTB=0xff;
PORTC=0xff;
PORTD=0x00;
PORTE=0xff;
}
else if(RD5==0)
{
PORTB=0xff;
PORTC=0xf2;
PORTD=0xb8;
PORTE=0xff;
}
else if(RD4==0)
{
PORTB=0xff;
PORTC=0xfc;
PORTD=0xeb;
PORTE=0xff;
}
}
}
void init() //I/O口初始化函数
{
TRISA=0x00;
TRISB=0x00;
TRISD=0x00;
TRISC=0xf0;
TRISE=0x00;
PORTA=0xff;
PORTC=0xff;
PORTB=0xff;
PORTD=0xff;
PORTE=0xff;
}
这个程序是按键按下灯点亮,只要按键松手,灯就灭(相应按键控制相应灯亮)
我想按键按下灯常亮,松手灯还是亮的,按下另一个键灯变化常亮,应该怎么写呢。。。求教求教啊。。。
此帖出自
小平头技术问答
我回答说:"这个,基本上很难!"
一周热门 更多>