0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于cc2530按鍵中斷控制流水燈的實(shí)驗(yàn)方案

454398 ? 來源:博客園 ? 作者:籠包叔叔 ? 2020-10-18 10:46 ? 次閱讀

cc2530的第三次實(shí)驗(yàn):按鍵中斷控制流水燈

效果為按一次按鍵,流水燈亮一次

實(shí)驗(yàn)相關(guān)電路圖:

實(shí)驗(yàn)相關(guān)寄存器

初始化函數(shù)

//初始化LED燈
    //設(shè)置P1SEL,通用為0,外設(shè)為1 11111100
    P1SEL &=~0x03;

    //設(shè)置P0SEL,    11101111
    P0SEL &= ~0x10;

    //設(shè)置P1DIR,輸出為1,輸入為0  00000011
    P1DIR |= 0x03;

    //設(shè)置P0DIR     00010000
    P0DIR |= 0x10;     


//初始化按鈕和中斷
//初始化按鈕
    //初始化P0SEL,通用為0     11111101
    P0SEL&=~0x02;
    //初始化P0DIR,輸入為0     11111101
    P0DIR&=~0x02;

//初始化中斷
    //設(shè)置引腳中斷 1為中斷使能 00000010
    P0IEN |= 0x02;
    //設(shè)置端口中斷
    IEN1=1;
    //設(shè)置端口中斷觸發(fā)方式 1為中斷使能
    IEN1|=0x20;
    //設(shè)置總中斷
    EA=1;
    //清空標(biāo)志位
    P0IFG=0;

中斷服務(wù)函數(shù)

//中斷服務(wù)函數(shù)
#pragma vector = P0INT_VECTOR        //這一行的P0INT_VECTOR是中斷源的名稱嗎?
__interrupt void P0ISR(void)
{
  //清除端口中斷標(biāo)志位
  P0IFG=0;
  
  //LED燈流水亮一遍
  BLink();

  //清除端口中斷標(biāo)志位
  P0IF=0;


}

上面的代碼一定要注意P0IFG一定要在P0IF之前清除,話說P0IF與P0IFG到底是干啥用的?他們之間什么關(guān)系,端口的標(biāo)志寄存器?(記得查一下)
P0IFG是端口0中斷狀態(tài)標(biāo)志,P0IF是cpu內(nèi)中斷標(biāo)志寄存器,什么鬼,沒弄明白啊,問一下老師吧!

全部代碼

#include 

typedef unsigned int uint;
typedef unsigned char uchar;
#define LED1 P1_0
#define LED2 P1_1 
#define LED3 P0_4
#define BUTTON1 P0_1 

uint time=300;

//延遲函數(shù)
void Delay(uint time)
{
  for(uint i=0;i

這個(gè)實(shí)驗(yàn)的難點(diǎn)以及重點(diǎn)主要是在初始化中斷這個(gè)過程,
初始化引腳的寄存器P0IEN|=0x02;
設(shè)置端口中斷的寄存器IEN1|=0x20;
設(shè)置端口中斷觸發(fā)方式PICTL|=0x01;
設(shè)置總中斷EA=1
清空標(biāo)志位:P0IFG=0;
編輯:hfy

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 流水燈
    +關(guān)注

    關(guān)注

    21

    文章

    433

    瀏覽量

    59764
  • CC2530
    +關(guān)注

    關(guān)注

    19

    文章

    221

    瀏覽量

    58112
  • 中斷控制
    +關(guān)注

    關(guān)注

    0

    文章

    26

    瀏覽量

    8882
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何使ADS1247功耗降低?

    請(qǐng)問如何使ADS1247功耗降低,我用CC2530控制1247,現(xiàn)在整體功耗在休眠時(shí)候是5V0.45mA,但是1247說明上有一句說是:在睡眠模式下功耗只有0.1-0.5uA,我已經(jīng)把CC2530
    發(fā)表于 01-10 07:58

    低成本單片機(jī)方案——觸摸流水燈開關(guān)控制

    方案觸摸流水燈控制方案Thedevelopmentofascheme隨著物聯(lián)網(wǎng)技術(shù)的不斷發(fā)展和智能家居的普及,觸摸流水燈
    的頭像 發(fā)表于 12-26 16:37 ?181次閱讀
    低成本單片機(jī)<b class='flag-5'>方案</b>——觸摸<b class='flag-5'>流水燈</b>開關(guān)<b class='flag-5'>控制</b>

    使用cc2530控制的ads1299,讀取轉(zhuǎn)換數(shù)據(jù)的時(shí)候輸出是c0 00 00 80 00 00 80 00 00 7f ff ff這樣,為什么?

    我在用ADS1299做腦電采集,現(xiàn)在使用cc2530控制的ads1299,目前讀寫寄存器和發(fā)送命令都正確,但是讀取轉(zhuǎn)換數(shù)據(jù)的時(shí)候輸出是c0 00 00 80 00 00 80 00 00 7f
    發(fā)表于 12-25 06:26

    cc2530驅(qū)動(dòng)ADS8862采集數(shù)據(jù),ADS8862老是驅(qū)動(dòng)不成功,為什么?

    cc2530驅(qū)動(dòng)ADS8862采集數(shù)據(jù),2530SPI主模式配置完畢,ADS8862老是驅(qū)動(dòng)不成功,請(qǐng)問有沒有相關(guān)例程呢?望大佬提供下,謝謝!
    發(fā)表于 12-10 07:04

    基于51單片機(jī)的跑馬燈/流水燈系統(tǒng)

    具體實(shí)現(xiàn)功能(1)9種LED流水燈模式通過按鍵進(jìn)行切換,數(shù)碼管顯示流水燈模式。(2)通過加減按鍵可以切換每種LED流水燈的速度。仿真演示視頻
    的頭像 發(fā)表于 10-22 14:12 ?284次閱讀
    基于51單片機(jī)的跑馬燈/<b class='flag-5'>流水燈</b>系統(tǒng)

    CC2592前端與CC2530結(jié)合使用

    電子發(fā)燒友網(wǎng)站提供《將CC2592前端與CC2530結(jié)合使用.pdf》資料免費(fèi)下載
    發(fā)表于 09-26 10:13 ?4次下載
    將<b class='flag-5'>CC</b>2592前端與<b class='flag-5'>CC2530</b>結(jié)合使用

    FPGA 實(shí)驗(yàn)一:流水燈模塊

    實(shí)驗(yàn)一:流水燈模塊 對(duì)于發(fā)展商而言,動(dòng)土儀式無疑是最重要的任務(wù)。為此,流水燈實(shí)驗(yàn)作為低級(jí)建模II的動(dòng)土儀式再適合不過了。廢話少說,我們還是開始實(shí)驗(yàn)
    發(fā)表于 06-10 09:38

    【GD32F303紅楓派開發(fā)板使用手冊(cè)】第四講 GEXTI-按鍵中斷檢測(cè)實(shí)驗(yàn)

    通過本實(shí)驗(yàn)主要學(xué)習(xí)以下內(nèi)容: ?EXTI中斷原理; ?按鍵中斷檢測(cè)原理;
    的頭像 發(fā)表于 05-31 10:13 ?614次閱讀
    【GD32F303紅楓派開發(fā)板使用手冊(cè)】第四講 GEXTI-<b class='flag-5'>按鍵</b><b class='flag-5'>中斷</b>檢測(cè)<b class='flag-5'>實(shí)驗(yàn)</b>

    單片機(jī)POV LED流水燈制作

    電子發(fā)燒友網(wǎng)站提供《單片機(jī)POV LED流水燈制作.docx》資料免費(fèi)下載
    發(fā)表于 05-28 14:34 ?3次下載

    使用STM8L152作為主控處理器與CC2530進(jìn)行串口通信,CC2530收不到STM8L的數(shù)據(jù)是怎么回事?

    使用STM8L152作為主控處理器,與CC2530進(jìn)行串口通信。在通信時(shí)候,STM8L能收到CC2530發(fā)來的數(shù)據(jù),但是CC2530卻收不到STM8L的數(shù)據(jù)。使用串口模塊進(jìn)行測(cè)試卻正常。 量了下TX
    發(fā)表于 05-09 07:54

    【GD32F470紫藤派開發(fā)板使用手冊(cè)】第三講 EXTI-按鍵中斷檢測(cè)實(shí)驗(yàn)

    通過本實(shí)驗(yàn)主要學(xué)習(xí)以下內(nèi)容: EXTI中斷原理; 按鍵中斷檢測(cè)原理;
    的頭像 發(fā)表于 05-05 09:22 ?559次閱讀
    【GD32F470紫藤派開發(fā)板使用手冊(cè)】第三講 EXTI-<b class='flag-5'>按鍵</b><b class='flag-5'>中斷</b>檢測(cè)<b class='flag-5'>實(shí)驗(yàn)</b>

    【紫光同創(chuàng)盤古PGX-Nano教程】——(盤古PGX-Nano開發(fā)板/PG2L50H_MBG324第三章)鍵控流水燈實(shí)驗(yàn)例程

    ; 功能處理注意事項(xiàng):流水燈狀態(tài)切換點(diǎn),不同狀態(tài)的切換時(shí)如何初始化; 四:實(shí)驗(yàn)源碼設(shè)計(jì) 頂層文件源碼 按鍵控制模塊 按鍵消抖模塊 LED
    發(fā)表于 04-29 16:06

    【紫光同創(chuàng)盤古PGX-MINI-4K教程】——(盤古PGX-MINI-4K開發(fā)板/PGC4KD-6ILPG144第二章)LED 流水燈實(shí)驗(yàn)例程

    載 jtag 調(diào)試接口, 預(yù)留兩組 20PIN 擴(kuò)展 IO、數(shù)碼管、按鍵、led 燈等硬件資源,為用戶提供基本的 開發(fā)環(huán)境。 二:實(shí)驗(yàn)目的掌握流水燈原理并實(shí)現(xiàn)流水燈 三:
    發(fā)表于 03-26 16:24

    【紫光同創(chuàng)盤古PGX-Lite 7K教程】——(盤古PGX-Lite 7K開發(fā)板/PGC7KD-6IMBG256第二章)?LED 流水燈實(shí)驗(yàn)例程

    流水燈原理并實(shí)現(xiàn)流水燈 三:實(shí)驗(yàn)要求流水燈:8 個(gè) LED 以 0.5s 間隔接替閃爍 四:實(shí)驗(yàn)原理相比上一個(gè) LED 閃爍的實(shí)現(xiàn),只需
    發(fā)表于 03-20 15:07

    51單片機(jī)流水燈制作

    ?流水燈是學(xué)習(xí)51單片機(jī)的一個(gè)基本項(xiàng)目,是我們對(duì)單片機(jī)IO口輸出認(rèn)識(shí)的基本項(xiàng)目。當(dāng)然學(xué)會(huì)了花樣流水燈也很好玩。 下面就分享一種51單片機(jī)流水燈制作的方法。 一、流水燈原理圖 二、相關(guān)知
    的頭像 發(fā)表于 02-26 10:06 ?1668次閱讀
    51單片機(jī)<b class='flag-5'>流水燈</b>制作