旋转编码开关程序


/****************************************************************
//函数名称:int0_isr(void)
//功    能:中断0处理函数
//入口参数:无
//出口参数:无
*****************************************************************/
#pragma interrupt_handler int0_isr:iv_INT0
void int0_isr(void)
{
    char i,j;
    SREG=0x00;                                       // 我试过,不用关中断也没问题。

         i=(PIND&0B00001000);                      //读第一脚值
         j=(PIND&0B00000100);                      //读第二脚值
         if(i){i=1;}else{i=0;}                     //整理
         if(j){j=1;}else{j=0;}
         if(i==j){pp--;}else{pp++;}                    //如果一样就是+,不一样就-
         SREG=0x80;                                 // 不用关中断的话,当然这句也可以不用,
         }
/****************************************************************
//函数名称:MAIN
//功    能:
//入口参数:无
//出口参数:无
*****************************************************************/
     void main()
       {                    
           MCUCR=0B00000001;                           //我用的这个和大家画的那个图不一样,所以只要变动就触发。
             GICR=0b01000000;                             //INT0
           SREG=0x80;                                  //使能全局中断

   while(1)
   {
      show1(pp);  

          }}

转载于:https://www.cnblogs.com/ZYDZ/p/10410610.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值