亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? atmega8 timer.c

?? 基于ATmega8的電機(jī)驅(qū)動(dòng)程序
?? C
字號(hào):
/****************************************************************************** 
程序名稱:電機(jī)驅(qū)動(dòng)程序 
運(yùn)行平臺(tái):ATMaga8 4m晶振 
程序版本:2.0 
程序說(shuō)明:通過(guò)按鍵 或A/D輸入來(lái)調(diào)節(jié)pw波 
         pc0-pc4 對(duì)應(yīng) r3-r1(pc3 作為ad輸入) 
       pwm 波通過(guò)pc5輸出 
       當(dāng)a/d輸入有效時(shí),鍵盤自動(dòng)屏蔽 
        

鍵盤說(shuō)明 
                   [rest]   [+]  [-] 
      [none] [none] [none ] 
        
作者:Gorgon Meducer 

最后修改:Gorgon Meducer 
修改時(shí)間:2004年12月29日 

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

#include <iom8v.h> 
#include <macros.h> 

#pragma  interrupt_handler Timer1_ovf:9 
#pragma  interrupt_handler Adc_isr:15   // 
const char DispCode[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6, 
0xee,0x3e,0x9c,0x7a,0x9e,0x8e}; //數(shù)碼管譯碼表 
const char DispBit[] = {0b11101111,0b11011111,0b10111111,0b01111111};//數(shù)碼管初始位值 

unsigned char Mark_Line=0x80; 

//定時(shí)器延時(shí) 
unsigned int Timer_Count_End=0; 
unsigned int Timer_Count=0; 

//unsigned char PressKey_Per_n_Timer_Ovf=0;   //定義按鍵時(shí)間計(jì)數(shù)器 
unsigned char Press_Keys=0;    //按鍵代碼 

/***************************************************************************/ 
 void Port_init(void); 
 void Timer0_init(void); 
 void Timer1_init(void); 
 void Timer1_ovf(void); 
 void Hardware_init(void); 
 void Delay_ms(unsigned int delay_time); 
 void Key_Press_Scan(void); 
 void adc_init(void); 
 void Display_Message(unsigned char Where,unsigned char Number,unsigned char delays); 
  
/***************************************************************************/ 

/*************************************************************************** 
                      端口初始化 
****************************************************************************/ 
void Port_init(void) 
{ 
 //定義c為輸入 
 DDRC =0b11111111; 
 PORTC=0b11111111; 
 DDRC =0b00100000;   //PC5用來(lái)輸出pw波 
  
 //定義B口為輸出,用于顯示數(shù)據(jù) 
 DDRB=0xff; 
 PORTB=0xff; 
  
 //定義D口為輸出,用于顯示數(shù)據(jù) 
 DDRD=0xff; 
 PORTD=0x00; 
  
} 

/*************************************************************************** 
                      定時(shí)器0初始化 
****************************************************************************/ 
//TIMER0 initialize - prescale:1 
// desired value: 20KHz 
// actual value: 20.000KHz (0.0%) 
//定時(shí)器0用來(lái)產(chǎn)生PW波 
void Timer0_init(void) 
{ 
 TCCR0 = 0x00; //stop 
 TCNT0 = 0x38; //set count 
 TCCR0 = 0x01; //start timer 
} 

/*************************************************************************** 
                      定時(shí)器1初始化 
****************************************************************************/ 
//定時(shí)器1主要用來(lái)做精確延時(shí) 
void Timer1_init(void)                      
{ 
 //定時(shí)器1部分 
     TCNT1H = 0xE0;  
     TCNT1L = 0xC0;  
    TCCR1B = 0x01;                       //1分頻,定時(shí)1ms 
} 

/*************************************************************************** 
                      A/D初始化 
****************************************************************************/ 
void adc_init(void) 
{ 
 ADCSRA =0X00; //關(guān)閉AD 
 ADMUX = 0b00100011; //選擇外部參考電源 ADC3 左對(duì)齊 
 ACSR = (1<<ACD); //關(guān)閉模擬比較器 
 ADCSRA = 0b10011110;//中斷允許 64分頻 
 } 
/*************************************************************************** 
                      A/D中斷處理 
****************************************************************************/ 
void Adc_isr(void) 
{ 
 Mark_Line=ADCH; //讀取高位數(shù)據(jù)(左對(duì)齊) 
 ADMUX = 0b00100011; //選擇外部參考電源 ADC3 左對(duì)齊 
 ADCSRA |=(1<<ADSC);  //啟動(dòng)AD轉(zhuǎn)換 
} 
/*************************************************************************** 
                      定時(shí)器1中斷處理程序 
****************************************************************************/ 
void Timer1_ovf(void)                  //1ms中斷程序,檢測(cè)主程序標(biāo)志 
{ 
       TCNT1H = 0xE0;  
       TCNT1L = 0xC0;                //復(fù)位1ms記數(shù)器 
      if (Timer_Count>0) 
           { 
         Timer_Count++; 
        } 
       
      
      if (Press_Keys==2) 
           { 
         Mark_Line++; 
         if (Mark_Line>0xff) 
           { 
          Mark_Line=0x00; 
          } 
        } 
      if (Press_Keys==3) 
         { 
         Mark_Line--; 
         if (Mark_Line<0x01) 
          { 
          Mark_Line=0xff; 
         } 
        } 
      if (Press_Keys==1) 
         { 
         Mark_Line=0x80;   //復(fù)位 
        } 
    
   if (TCNT0>Mark_Line) 
      { 
      //驅(qū)動(dòng)電機(jī) 
        PORTC |= 0b00100000; 
      } 
     else 
      { 
      //停止驅(qū)動(dòng) 
        PORTC &= 0b11011111; 
      } 
} 

/*************************************************************************** 
                      系統(tǒng)初始化 
****************************************************************************/ 
void Hardware_init(void) 
{ 
 CLI(); 
  
 Port_init(); 
 Timer1_init(); 
 Timer0_init(); 
 adc_init(); 
 TIMSK = 0x04; 
  
 SEI(); 
} 

/*************************************************************************** 
                      延時(shí)程序 
****************************************************************************/ 
/*void Delay_ms(unsigned int delay_time) 
{ 
 Timer_Count_End=delay_time; 
 Timer_Count=1;          //啟動(dòng)計(jì)數(shù)器 
re_delay: 
 if (Timer_Count<=Timer_Count_End) 
    { 
    if (TCNT0>Mark_Line) 
      { 
      //驅(qū)動(dòng)電機(jī) 
        PORTC |= 0b00100000; 
      } 
     else 
      { 
      //停止驅(qū)動(dòng) 
        PORTC &= 0b11011111; 
      } 
    goto re_delay; 
     
   } 
   else 
    { 
    Timer_Count_End=0; 
    Timer_Count=0; 
   } 
}*/ 
void Delay_ms(unsigned int m)  //1ms延時(shí) 
{ 
 int l,j; 
 for(l=0;l<m;l++) 
   for(j=0;j<500;j++) 
   { 
   if (TCNT0>Mark_Line) 
      { 
      //驅(qū)動(dòng)電機(jī) 
        PORTC |= 0b00100000; 
      } 
     else 
      { 
      //停止驅(qū)動(dòng) 
        PORTC &= 0b11011111; 
      } 
   } 
} 

/*************************************************************************** 
                      按鍵掃描程序 
****************************************************************************/ 
void Key_Press_Scan(void)  //判斷鍵值 
{ //unsigned char temp=0; 
    //掃描第一列 
   Press_Keys=0; 
   PORTC = 0b00000111;  
    DDRC =  0b00110000; 
   //temp=PINC;      
    if ( (PINC&0b00000100) == 0)    
     { 
      Delay_ms(10); 
      if ((PINC&0b00000100) == 0) 
           { 
        Press_Keys=1; 
        } 
     } 
    else if ((PINC&0b00000010) ==0) 
     { 
      Delay_ms(10); 
      if ((PINC&0b00000010) ==0) 
           { 
        Press_Keys=2; 
         } 
     } 
    else if ((PINC&0b00000001) ==0)    
     { 
      Delay_ms(10); 
      if ((PINC&0b00000001) ==0) 
           { 
        Press_Keys=3; 
        } 
     }   

   /*  
   //掃描第二列 
   PORTC = 0b00010111;      
          
    DDRC =  0b00111000; 
   //temp=PINC; 
    if ( (PINC&0b00000100) == 0) 
      { 
         Delay_ms(10); 
       if ((PINC&0b00000100) == 0) 
           { 
        Press_Keys=4; 
        } 
      } 
    else if ((PINC&0b00000010) ==0) 
      { 
         Delay_ms(10); 
       if ((PINC&0b00000010) ==0) 
           { 
        Press_Keys=5; 
        } 
      }    
    else if ((PINC&0b00000001) ==0) 
      { 
         Delay_ms(10); 
       if ((PINC&0b00000001) ==0) 
           { 
        Press_Keys=6; 
        } 
      }*/ 
} 


/*************************************************************************** 
                      顯示函數(shù) 
****************************************************************************/ 
void Display_Message(unsigned char Where,unsigned char Number,unsigned char delays) 
{ 
 //在指定的位置顯示指定的數(shù)字 
 PORTD = DispBit[Where];   
 PORTB = DispCode[Number]; //調(diào)用數(shù)碼管譯碼表 
 Delay_ms(delays); 
} 

/************************************************************************** 
                     主函數(shù) 
**************************************************************************/ 
void main(void) 
{ 
 Hardware_init(); 
 ADCSRA |=(1<<ADSC);  //啟動(dòng)AD轉(zhuǎn)換 
 while(1) 
   { 
      if (TCNT0>Mark_Line) 
      { 
      //驅(qū)動(dòng)電機(jī) 
        PORTC |= 0b00100000; 
      } 
     else 
      { 
      //停止驅(qū)動(dòng) 
        PORTC &= 0b11011111; 
      } 
     Key_Press_Scan(); 
   Display_Message(0,((Mark_Line<<4)>>4),5); 
   Display_Message(1,(Mark_Line>>4),5); 
   } 
} 

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
555夜色666亚洲国产免| 国产激情视频一区二区三区欧美| 欧美日本不卡视频| 久久成人免费网| 国产精品乱码一区二三区小蝌蚪| 91成人免费在线| 一区二区三区中文在线| 日韩色在线观看| 不卡一区二区中文字幕| 亚洲成人中文在线| 久久女同性恋中文字幕| 欧美亚洲国产一卡| 国产精品66部| 亚洲丶国产丶欧美一区二区三区| 精品国产一区久久| 在线影视一区二区三区| 国产伦精品一区二区三区免费 | 在线免费观看日本欧美| 麻豆精品视频在线观看| 国产精品乱码妇女bbbb| 日韩视频免费直播| 色综合视频一区二区三区高清| 美女视频黄免费的久久| 国产精品白丝在线| 欧美mv日韩mv| 欧美主播一区二区三区| 韩国视频一区二区| 爽爽淫人综合网网站| 国产区在线观看成人精品 | 国产亚洲美州欧州综合国| 欧美日韩在线直播| 一本色道久久综合精品竹菊| 成人夜色视频网站在线观看| 国内国产精品久久| 久久99深爱久久99精品| 美女任你摸久久| 蜜臀久久久久久久| 日本亚洲一区二区| 日韩av不卡在线观看| 日韩高清国产一区在线| 亚洲mv在线观看| 午夜精品在线视频一区| 亚洲成a人v欧美综合天堂下载 | 久久国产尿小便嘘嘘尿| 免费成人在线视频观看| 另类小说综合欧美亚洲| 老司机免费视频一区二区三区| 秋霞电影一区二区| 美国av一区二区| 麻豆久久久久久久| 国内精品久久久久影院薰衣草| 韩国精品主播一区二区在线观看 | 国产婷婷色一区二区三区四区| 精品久久人人做人人爰| 久久尤物电影视频在线观看| 久久久久久久久99精品| 国产情人综合久久777777| 国产精品免费丝袜| 亚洲精品精品亚洲| 亚洲成av人片在线观看无码| 图片区小说区国产精品视频| 蜜臀av一区二区在线免费观看| 麻豆视频观看网址久久| 国产黄色成人av| 色偷偷久久一区二区三区| 欧美日韩一区中文字幕| 欧美一级国产精品| 欧美经典一区二区三区| 中文字幕在线不卡| 亚洲国产一区二区在线播放| 美美哒免费高清在线观看视频一区二区 | 91黄色免费网站| 欧美日韩和欧美的一区二区| 日韩欧美国产成人一区二区| 国产色婷婷亚洲99精品小说| 亚洲人成精品久久久久| 午夜国产精品影院在线观看| 国产在线看一区| 91麻豆123| 日韩一卡二卡三卡| 国产精品久久久久三级| 午夜精品在线视频一区| 国产高清亚洲一区| 欧美午夜在线观看| 久久亚洲一级片| 亚洲毛片av在线| 精品一区二区三区不卡| 99久久伊人久久99| 日韩情涩欧美日韩视频| 中文字幕在线不卡视频| 日韩av不卡一区二区| 成人福利视频网站| 91精品国产91久久综合桃花| 中文字幕不卡在线播放| 日韩福利视频网| www.一区二区| 精品国产免费久久| 亚洲伊人色欲综合网| 国产精华液一区二区三区| 欧美日韩精品电影| 成人免费在线视频观看| 日韩电影在线看| 91在线国产福利| 久久色.com| 午夜一区二区三区视频| eeuss影院一区二区三区| 日韩欧美在线观看一区二区三区| 亚洲色图色小说| 国内精品嫩模私拍在线| 精品视频在线免费| 日韩美女视频一区| 国产精品原创巨作av| 91精品婷婷国产综合久久性色| 国产精品成人一区二区艾草 | 亚洲欧美一区二区久久| 国内外精品视频| 538在线一区二区精品国产| 亚洲精品第一国产综合野| 成人午夜视频网站| 精品99久久久久久| 日本色综合中文字幕| 欧美网站大全在线观看| 亚洲欧美日韩系列| 成人91在线观看| 久久精品一区二区三区不卡牛牛| 蜜桃久久久久久久| 欧美高清视频www夜色资源网| 亚洲乱码国产乱码精品精的特点| 成人午夜av电影| 国产偷国产偷亚洲高清人白洁| 久久精品99国产精品| 欧美日本在线观看| 性做久久久久久| 欧美日韩一级大片网址| 亚洲最大成人综合| 色综合视频在线观看| 最新不卡av在线| 一本大道久久精品懂色aⅴ| 中文字幕亚洲成人| av在线免费不卡| 亚洲欧洲性图库| av一区二区三区四区| 中文字幕日韩一区二区| 成人18精品视频| 亚洲女人的天堂| 欧美性受xxxx黑人xyx性爽| 夜夜嗨av一区二区三区网页| 91国偷自产一区二区三区观看 | 香蕉久久一区二区不卡无毒影院| 欧美午夜精品一区二区蜜桃 | 亚洲成人在线网站| 欧美精选一区二区| 午夜精品久久久久久久| 欧美日韩国产综合草草| 日本不卡123| 精品国产一区二区三区久久久蜜月 | 色呦呦网站一区| 一区二区三区小说| 欧美日韩国产综合久久| 奇米色777欧美一区二区| 日韩精品一区二区三区视频播放| 国产一区视频在线看| 欧美国产激情二区三区| 91在线你懂得| 亚洲第一搞黄网站| 日韩欧美一区在线| 国产成人精品网址| 亚洲免费av网站| 欧美人与性动xxxx| 狠狠色综合播放一区二区| 日本一区二区成人在线| 91久久免费观看| 美脚の诱脚舐め脚责91| 国产欧美一区二区精品忘忧草| 99国内精品久久| 日韩高清国产一区在线| 国产无遮挡一区二区三区毛片日本| 不卡av电影在线播放| 亚洲第一精品在线| 久久综合久久综合久久| 91在线观看美女| 日本成人在线不卡视频| 国产欧美日韩综合| 欧美午夜精品久久久久久孕妇| 久久精品国产亚洲5555| 亚洲少妇30p| 日韩一级片在线观看| 不卡在线观看av| 免费黄网站欧美| 一区二区中文字幕在线| 日韩一区二区三区电影| 91亚洲男人天堂| 久久不见久久见中文字幕免费| 亚洲欧洲另类国产综合| 91精品在线免费观看| 99麻豆久久久国产精品免费优播| 日本在线播放一区二区三区| 国产精品久久久久久久久久久免费看| 在线播放国产精品二区一二区四区| 国产高清不卡二三区|