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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4499|回復: 3
收起左側

控制單個單片機IO的按鍵+定時器10ms定時器程序

[復制鏈接]
ID:351872 發表于 2019-1-5 16:16 | 顯示全部樓層 |閱讀模式
/*剛剛開始學習AVR單片機,
*把學習到的知識和大家分享。有錯誤或者更好的寫法,歡迎交流。
*方便新手學習,我都盡可能的注釋
*/




#include <iom16v.h>
#include <macros.h>
#include <stdio.h>                        //標準輸入輸出頭文件
#define LED_DDR  DDRA           //LED接PA0~PA7     
#define LED_P0RT PORTA          //指示燈
/*********************************
*按鍵定義
*******************************/
#define K1      PINC & (1<<PC0)               //位讀取   PC0        可以讀取K1的電壓值
#define K2      PINC & (1<<PC1)               //位讀取   PC1
#define K3      PINC & (1 << PC2)             //位讀取   PC2
#define K4      PINC & (1 << PC3)             //位讀取   PC3
#define K5      PINC & (1 << PC4)             //位讀取   PC4
#define K6      PINC & (1 << PC5)             //位讀取   PC5
#define K7      PINC & (1 << PC6)             //位讀取   PC6
#define K8      PINC & (1 << PC7)             //位讀取   PC7                                                   
unsigned char key_s,biaozhi;
void port_init(void)                                        //IO端口初始化
{
                DDRC=0xFF;         
                PORTC=0xff;        
                DDRB=0xff;
                PORTB=0xff;
                DDRD=0xff;
                PORTD=0xff;
                DDRA=0xff;
                PORTA=0xff;
}
#pragma interrupt_handler timer1_ovf_isr:15 //dingsh中斷函數
void timer1_ovf_isr()
{
    TCNT1H=0XFB;  //賦初值定義0.01s
    TCNT1L=0X1D;
        /***************************按鍵程序**************************************/
        if(((K1)==0)&&(biaozhi==0)){key_s++;if(key_s>=2){biaozhi=1;key_s=0;a=~a;}}   //按鍵按下 key_s開始++,起到延時給按鍵去抖的作用
        if(((K2)==0)&&(biaozhi==0)){key_s++;if(key_s>=2){biaozhi=1;key_s=0;a=~a;}}
        if(((K3)==0)&&(biaozhi==0)){key_s++;if(key_s>=2){biaozhi=1;key_s=0;a=~a;}}
        if(((K4)==0)&&(biaozhi==0)){key_s++;if(key_s>=2){biaozhi=1;key_s=0;a=~a;}}
        if(((K5)==0)&&(biaozhi==0)){key_s++;if(key_s>=2){biaozhi=1;key_s=0;a=~a;}}
        if(((K6)==0)&&(biaozhi==0)){key_s++;if(key_s>=2){biaozhi=1;key_s=0;a=~a;}}
        if(((K7)==0)&&(biaozhi==0)){key_s++;if(key_s>=2){biaozhi=1;key_s=0;a=~a;}}
        if(((K8)==0)&&(biaozhi==0)){key_s++;if(key_s>=2){biaozhi=1;key_s=0;a=~a;}}


        
        if(((K1)!=0)&&((K2)!=0)&&((K3)!=0)&&((K4)!=0)&&((K5)!=0)&&((K6)!=0)&&((K7)!=0)&&((K8)!=0))
         {biaozhi=0;key_s=0;} //按鍵判彈起
         if(key_s>=4){key_s=0;biaozhi=1;}


}


void init_timer1()   // 定時器1初始化
{
        TCCR1B=0X03;   //64分頻
        TIFR=0X01;
        TIMSK=0X04;
        TCNT1H=0XFB;   //10ms
        TCNT1L=0X1D;
        SREG|=BIT(7);
}
void main()
{
   port_init();  //I/O初始化函數
   init_timer1();//定時器初始化函數
while(1)
{               
         if(a==0xff){LED_P0RT=0x00;} //PA口全部輸出低
         if(a==0x00){LED_P0RT=0xff;} //PA口全部輸出低
  }
}


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:351872 發表于 2019-1-5 16:16 | 顯示全部樓層
10ms定時.....標題寫錯了
回復

使用道具 舉報

ID:223761 發表于 2019-1-7 17:57 來自觸屏版 | 顯示全部樓層
用什么軟件?
回復

使用道具 舉報

ID:351872 發表于 2019-1-8 09:32 | 顯示全部樓層

ICC     ,忘了注明編譯環境了 - -
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久热精品在线 | 成人欧美一区二区三区在线播放 | 欧美精品一区二区免费 | 一色桃子av一区二区 | 精品成人69xx.xyz | 久久久久一区二区 | 精品不卡 | 日韩精品 | 午夜视频网站 | 麻豆91av | 亚洲九九 | 一级毛片观看 | 精品久 | 黄色大片免费观看 | 日韩中文字幕 | 国产成人99久久亚洲综合精品 | 91精品国产色综合久久 | 在线观看www | 国内自拍视频在线观看 | 久久宗合色 | 国产在线91| 日韩视频免费看 | 一区二区三区中文字幕 | avtt国产| 亚洲精品一二区 | 能看的av | 久色网| 欧美一区二区三区在线观看视频 | 日本一区二区不卡 | 成年人视频在线免费观看 | 午夜久久久久久久久久一区二区 | 欧洲亚洲精品久久久久 | 欧美成人精品一区二区男人看 | 色综合一区二区三区 | 91精品久久久久久久久 | 久久99精品国产 | www.国产视频| 久久精品视频91 | 毛片久久久 | 精品三区| 中国av在线免费观看 |