[求助] 怎么写我要求的程序呢?

sunsyh888   2011-5-27 14:25 楼主
#include
#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;                            
  }
    这个程序是按键按下灯点亮,只要按键松手,灯就灭(相应按键控制相应灯亮)
我想按键按下灯常亮,松手灯还是亮的,按下另一个键灯变化常亮,应该怎么写呢。。。求教求教啊。。。

回复评论 (5)

老段问我该怎么办?
我回答说:"这个,基本上很难!"
点赞  2011-5-27 15:26
用if else就解决了,if某个键按下对应端口灯亮,else灯灭就这样简单。
*我的EMAIL:     sunke9@qq.com   *我的博客http://blog.ednchina.com/sunke9/ *我网店:https://sunke9.taobao.com/ 承接:电子、自动控制产品设计开发;单片机、ARM编程。
点赞  2011-5-27 17:06
你是把按键检测都串在一起了,其实完全可以单独处理。
*我的EMAIL:     sunke9@qq.com   *我的博客http://blog.ednchina.com/sunke9/ *我网店:https://sunke9.taobao.com/ 承接:电子、自动控制产品设计开发;单片机、ARM编程。
点赞  2011-5-27 17:07

回复 4楼 SUNKE9 的帖子

我明白了  我试试   谢谢你
点赞  2011-5-28 08:30

6楼 yjj 

点赞  2011-5-28 15:07
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复