久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

M8單片機驅動繼電器,1602液晶,按鍵程序

作者:huqin   來源:本站原創   點擊數:  更新時間:2014年02月21日   【字體:


#include <iom8v.h>
#include <macros.h>
#define  uchar unsigned char
#define  uint unsigned int
///////////////////////////////////////////////////////////////
#define  rs_L     PORTD&=~BIT(0)
#define  rs_H     PORTD|=BIT(0)
#define  rs_out   DDRD|=BIT(0)

#define  rw_L     PORTD&=~BIT(1)
#define  rw_H     PORTD|=BIT(1)
#define  rw_out   DDRD|=BIT(1)

#define  en_L     PORTD&=~BIT(2)
#define  en_H     PORTD|=BIT(2)
#define  en_out   DDRD|=BIT(2)

 

#define  s1_L     PORTD&=~BIT(4)
#define  s1_H     PORTBD|=BIT(4)
#define  s1_out   DDRD|=BIT(4)

#define  s2_L     PORTD&=~BIT(5)
#define  s2_H     PORTD|=BIT(5)
#define  s2_out   DDRD|=BIT(5)

#define  s3_L     PORTD&=~BIT(6)
#define  s3_H     PORTD|=BIT(6)
#define  s3_out   DDRD|=BIT(6)

#define  s4_L     PORTD&=~BIT(7)
#define  s4_H     PORTD|=BIT(7)
#define  s4_out   DDRD|=BIT(7)
uchar miu=0;
signed char t,tt,z,zz,a,b,c,d,e,f,g;
uchar table1[]="<Himetech>~00~00";
uchar table2[]="Z00~X00~z00~x0  ";
/////////////////////////////////////////////////////////////////
const table3[10]={20,40,60,80,100,120,140,160,180,200};
/////////////////////////////////////////////////////////////
void delay(uint ms)//yan shi han shu
{
uchar a;
uint b;
for(a=0;a<ms;a++)
for(b=0;b<1141;b++);
}
///////////////////////////////////////////////////////////////
uchar key_press()//pan dan an jian shi fu an xia
{
    uchar j;
    DDRC|=0X0f;
PORTC|=0X0f;
DDRC&=0XF0;
j=PINC;
j=j&0X0F;//00001111
if(j==0X0F)
{
 return 0;
}
else
{
return 1;
}
}

//////////////////////////////////////////////////////////
void key_scan()//pan dan an xia de  jian
{   
    uchar key;
    delay(10);
if(key_press())
{
key=PINC;
key&=0X0F;
switch(key)
{
  case 0X0E: //guang biao zuo yi
      {
     zhilin(0x0f);
     miu--;
              if(miu==1){zhilin(0x80+11);}
     if(miu==2){zhilin(0x80+12);}
 if(miu==3){zhilin(0x80+14);}
 if(miu==4){zhilin(0x80+15);}
 
         if(miu==5){zhilin(0x80+0x40+1);}
     if(miu==6){zhilin(0x80+0x40+2);}
 if(miu==7){zhilin(0x80+0x40+5);}
 if(miu==8){zhilin(0x80+0x40+6);}
 if(miu==9){zhilin(0x80+0x40+9);}
 if(miu==10){zhilin(0x80+0x40+10);}
 if(miu==11){zhilin(0x80+0x40+13);}
 if(miu==-1){miu=12;}
  }break;
 
 
  case 0X0B: //guang biao you yi
      {
     zhilin(0x0f);
     miu++;
              if(miu==1){zhilin(0x80+11);}
     if(miu==2){zhilin(0x80+12);}
 if(miu==3){zhilin(0x80+14);}
 if(miu==4){zhilin(0x80+15);}
 
         if(miu==5){zhilin(0x80+0x40+1);}
     if(miu==6){zhilin(0x80+0x40+2);}
 if(miu==7){zhilin(0x80+0x40+5);}
 if(miu==8){zhilin(0x80+0x40+6);}
 if(miu==9){zhilin(0x80+0x40+9);}
 if(miu==10){zhilin(0x80+0x40+10);}
 if(miu==11){zhilin(0x80+0x40+13);}
 if(miu==12){miu=0;}
  }break;
 
 
  case 0X0D://dui guang biao suo zai xiang, jin xin jia shu
      {
     
 if(miu==1){t++;if(t==2)t=0;zhilin(0x0c);dizhishujv((0x80+11),(0x30+t));}
     if(miu==2){tt++;if(tt==10)tt=0;zhilin(0x0c);dizhishujv((0x80+12),(0x30+tt));}
 if(miu==3){z++;if(z==2)z=0;zhilin(0x0c);dizhishujv((0x80+14),(0x30+z));}
 if(miu==4){zz++;if(zz==2)zz=0;zhilin(0x0c);dizhishujv((0x80+15),(0x30+zz));}  
     if(miu==5){a++;if(a==2)a=0;zhilin(0x0c);dizhishujv((0x80+0x40+1),(0x30+a));}
     if(miu==6){b++;if(b==10)b=0;zhilin(0x0c);dizhishujv((0x80+0x40+2),(0x30+b));}
     if(miu==7){c++;if(c==2)c=0;zhilin(0x0c);dizhishujv((0x80+0x40+5),(0x30+c));}
     if(miu==8){d++;if(d==10)d=0;zhilin(0x0c);dizhishujv((0x80+0x40+6),(0x30+d));}
     if(miu==9){e++;if(e==2)e=0;zhilin(0x0c);dizhishujv((0x80+0x40+9),(0x30+e));}
 if(miu==10){f++;if(f==10)f=0;zhilin(0x0c);dizhishujv((0x80+0x40+10),(0x30+f));}
     if(miu==11){g++;if(g==2)g=0;zhilin(0x0c);dizhishujv((0x80+0x40+13),(0x30+g));}
           }break;
     
 
  case 0X07:
      {
  DDRC&=~BIT(4);
  PORTC|=BIT(4);
  //ji qi shi xv
           if(t)PORTD|=BIT(6);else PORTD&=~BIT(6);//qi
//////////////////////////////////////////////////////////////// 
         if(z)PORTD|=BIT(7);else PORTD&=~BIT(7);//zhu zhou
          
/////////////////////////////////////////////////////////////////////  
           if(a){PORTD|=BIT(4); }else PORTD&=~BIT(4);//z  zou en
            delay(table3[b]);
////////////////////////////////////////////////////////////
           if(c)PORTD|=BIT(5);else PORTD&=~BIT(5);   //x zou en
           while(PINC&0x10);
           delay(table3[d]);
///////////////////////////////////////////////////////////////
           if(e)PORTD&=~BIT(4);else PORTD|=BIT(4);  //z shou en
  PORTD&=~BIT(7);
           delay(table3[f]);
  PORTD&=~BIT(6);
  delay(table3[tt]);
///////////////////////////////////////////////////////////
           if(g)PORTD&=~BIT(5);else PORTD|=BIT(5);  // x shou  en
          
  } 
  break;
 
  
  default: 
      key=0;      
}
 while(key_press());
}
}
/////////////////////////////////////////////////////////////////////
void zhilin(uchar zhi)
{
rs_H; rw_H; en_L;
rs_L; rw_L;
PORTB=zhi;
delay(1);
en_H;
delay(1);
en_L;
}
////////////////////////////////////////////////////////////////
void shujv (uchar shu)
{
rs_L; rw_H; en_L;
rs_H; rw_L;
PORTB=shu;
delay(1);
en_H;
delay(1);
en_L;
}
///////////////////////////////////////////////////////////////////
void init_lcd (void)
{
uchar e;
DDRB=0xff;  PORTB=0xff;
rs_out;     rw_out;     en_out;

delay(1);
zhilin(0x38);
delay(1);
zhilin(0x38);
delay(1);
zhilin(0x38);
zhilin(0x38);

zhilin(0x08);
zhilin(0x01);
zhilin(0x06);
zhilin(0x0c);

zhilin(0x80+0x00);

for(e=0;e<16;e++)
     {
shujv (table1[e]);
delay(1);
}
zhilin(0x80+0x40);

for(e=0;e<16;e++)
     {
shujv (table2[e]);
delay(1);

 
}

void dizhishujv(uchar dizhi,uchar shu)
{
   zhilin(dizhi);
  shujv(shu);

}

void init_time(void) //din shi qi chu shi hua
{
TCCR1B=0X00;//wu fen pin
TCNT1H=0X80;//chu zhi H
TCNT1H=0X80;//chu zhi L
TIMSK|=BIT(2);//kai din shi qi 1 zhong dan
SREG|=BIT(7);//kai zong zhong dan

}

/////////////////////////////////////////////////////////////////////////////
void main (void)                  
{
   init_lcd ();
   init_time();
   DDRD|=0xf0;
    while(1)
{
      key_scan();                            
    }                                        
}                                           

#pragma interrupt_handler timer1:9
void timer1(void)//din shi qi 1 zhong dan
{
TCNT1H=0X80;
TCNT1H=0X80;
}
 

關閉窗口

相關文章

主站蜘蛛池模板: 91精品一区二区 | 国产精品久久久久久久7电影 | 久久成人免费 | a级毛片免费高清视频 | 黄色片在线免费看 | 日日夜夜免费精品视频 | 色婷婷国产精品 | 日韩综合在线视频 | 久久蜜桃资源一区二区老牛 | 99精品一区二区 | 91久久精品国产91久久性色tv | 免费视频二区 | 久久久久免费精品国产小说色大师 | 亚洲一区二区三区在线免费观看 | 亚洲一区二区精品视频在线观看 | 中文字幕亚洲视频 | 国产精品免费一区二区三区四区 | 色五月激情五月 | 久久成人国产精品 | 罗宾被扒开腿做同人网站 | 欧美精 | 久草视频网站 | 午夜免费福利电影 | 欧美日韩亚洲二区 | 亚洲欧美一区二区三区情侣bbw | 欧美大片一区 | 日韩在线不卡 | 久久伊人精品 | 日韩在线视频免费观看 | 精品综合视频 | 人干人操| 亚洲精品成人 | 国产农村妇女精品一区 | 国产精品1区2区 | 国产精品99一区二区 | 一色桃子av一区二区 | 黄色在线免费观看视频网站 | 久久免费香蕉视频 | 亚洲一区二区三区免费在线观看 | 天堂久久天堂综合色 | 欧美国产一区二区 |