找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2656|回復(fù): 0
收起左側(cè)

NY8A051D單片機(jī)外部中斷_下降沿上升沿觸發(fā) 程序調(diào)試OK

[復(fù)制鏈接]
ID:136083 發(fā)表于 2022-4-5 19:28 | 顯示全部樓層 |閱讀模式
2年前在一玩燈的方案公司,畫了好多的NY8A051一些板子,但一直沒時間搞來玩程序,今天試著調(diào)試了一把,發(fā)布。

單片機(jī)源程序如下:
  1. /* =========================================================================
  2. * Project:       PB0 External Interrupt
  3. * File:          main.c
  4. * Author:        JasonLee
  5. * Version:       V1.0
  6. * Date:          2022/04/05
  7. =========================================================================*/
  8. #include <ny8.h>
  9. #include "ny8_constant.h"
  10. #define UPDATE_REG(x)        __asm__("MOVR _" #x ",F")

  11. #define RESULT 1 //定義 RESULT 為 0

  12. void main(void)
  13. {
  14.     PORTB = 0;          //PORTB data buffer = 0 (output low)
  15. #if 1==RESULT //低電平觸發(fā)
  16.     IOSTB&=~(1<<0);   //PB0設(shè)為輸出模式
  17.     PORTB |= (1<<0);  //PB0輸出高電平
  18.     IOSTB&=~(1<<2);   //PB2設(shè)為輸出模式,點(diǎn)LED燈
  19.     T0MD &=~(1<<6);   //T0MD的第6位INTEDG=0,當(dāng)PB0引腳發(fā)生下降沿時產(chǎn)生外部中斷   
  20. #else //高電平觸發(fā)
  21.     IOSTB&=~(1<<0);   //PB0設(shè)為輸出模式
  22.     IOSTB&=~(1<<2);   //PB2設(shè)為輸出模式,點(diǎn)LED燈
  23.     PORTB&=~(1<<0);   //PB0默認(rèn)是低電平
  24.     T0MD |=(1<<6);    //T0MD的第6位INTEDG=1,當(dāng)PB0引腳發(fā)生上升沿時產(chǎn)生外部中斷
  25. #endif

  26.         PCON |= (1<<6);   //EIS:外部中斷選擇位,EIS=1時,PB0是外部中斷輸入。  
  27.         PCON |= (1<<7);   //WDTEN=1時開啟WDT。
  28.         INTE |= (1<<2);   //INTIE:外部中斷使能位,INTIE=1時開啟外部中斷。               
  29.          
  30.         UPDATE_REG(PORTB);
  31.         INTF = 0;                  // Clear all interrupt flags
  32.         ENI();                          // Enable all unmasked interrupts                       
  33.        
  34.     while(1)
  35.     {
  36.          CLRWDT();
  37.     }
  38. }

  39. //! interrupt service routine
  40. void isr(void) __interrupt(0)
  41. {
  42.         if(INTFbits.INTIF)
  43.         {
  44.                 PORTBbits.PB2 ^=1;        //PB2翻轉(zhuǎn)
  45.                 INTFbits.INTIF=0;
  46.         }
  47.        
  48. }
復(fù)制代碼


評分

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

查看全部評分

回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表