一.前言
通過前一次的實驗,相信大家都已經對cc2530程式的編寫有了一定的認識,這次我們來操作和實驗的是cc2530上的按鍵模組。
二.原理分析
我們先來看一下按鍵的原理圖:
根據原理圖我們可以得出,按鍵不按下的時候值為0,因為接地,所以,按鍵要被按下的時候,but1和but2輸入值為1,當檢測到它們為1時,按鍵就為按下的狀態,因為p0dir預設的狀態是輸入,所以不需要配置io暫存器,當按鍵按下時,改變led的狀態,來驗證實驗。
三.程式
#define led1 p1_0 //led1為p1_0埠控制
#define led2 p1_1 //led2為p1_1埠控制
#define led3 p1_4 //led3為p1_4埠控制
#define key1 p0_4 //key1為p0_4埠控制
/***************** 函 數 名 : delayms 功能描述 : 毫秒延時 輸入引數 : xms:延時時間,如 i=xms 即延時i毫秒 輸出引數 : none 返 回 值 : none *********************/
void delayms(uint xms)
/ 函 數 名 : initled 功能描述 : led io初始化 輸入引數 : none 輸出引數 : none 返 回 值 : none *************/
void initled(void)
/******************** 函 數 名 : keyscan 功能描述 : 按鍵檢測函式 輸入引數 : none 輸出引數 : none 返 回 值 : 0:無按鍵按下 1:按鍵按下 ***********************/
uchar keyscan(void)
if(key1==0)
} return 0; //無按鍵按下 }
/************************* 函 數 名 : main 功能描述 : key測試(通用io的輸入/輸出使用) 輸入引數 : none 輸出引數 : none 返 回 值 : none **************************/
void main(void)
四.總結
通過本次實驗,我們學習了如何使用按鍵來控制cc2530的外設,用鍵盤掃瞄函式來檢測按鍵狀態的改變,函式中有呼叫延時函式,用於延時去抖,增加系統的穩定性,可是不斷檢測會造成占用cpu的工作時間,下一講介紹一種更好的方式。
zigbee學習之路 十五 基於協議棧的按鍵實驗
一.前言 經過上次的學習,相信大家已經初步學會使用zigbee協議進行傳送和接受資料了。今天,我們要進行的實驗是按鍵的實驗,學會如何在協議棧裡實現按鍵中斷。二.實驗功能 在協議棧上實現按鍵中斷,but1 按下,led1 閃爍兩次。三.講解 大家還記得,前面做過的按鍵實驗是怎麼配置的嗎,其實基於zig...
zigbee學習之路 一 zigbee介紹
一.前言 二.zigbee定義 三.zigbee特點 下面是zigbee特點的詳細介紹 1 低功耗 兩節五號電池支援長達6 個月到2 年左右的使用時間。2 低成本 由於簡化了協議棧,降低核心的效能要求,以cc2530 為例,核心就是乙個增強型的8051 核心,從而降低了晶元成本。每塊cc2530 大...
我的ZigBee學習之路
每個人總要有自己的一技之長,來體現自己的價值。每個都應該培養自己的以及之長,來實現自己的價值。這個世界是殘酷的,同時也是公平的,天道酬勤 相信付出總會有所回報。時間,是個神奇的東西,它帶走了一切,同時也帶來了一切。它是我們生命中唯一可以把握的事物。假如我們能夠活到90歲,每年365天,每天24小時,...