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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 11318|回復: 0
打印 上一主題 下一主題
收起左側

CC2530外部中斷控制LED開關實驗詳解與源程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:261369 發表于 2017-12-14 01:58 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
5、CC2530 外部中斷控制LED開關

1.實驗目的
1)、通過實驗掌握CC2530芯片GPIO的配置方法,帶你一步步走進嵌入式大門
2)、握Led驅動電路及開關Led的原理
3)、過按鍵S1產生外部中斷改變LED1\LED2\LED3狀態


2.實驗設備

硬件:PC 機 一臺 EB2530(底板、核心板、仿真器、USB 線) 一套

軟件:2000/XP/win7 系統,IAR 8.10 集成開發環境


3.實驗相關電路圖




發光二極管是屬于二極管的一種,具有二級管單向導電特性,即只有在正向電壓(二極 管的正極接正,負極接負)下才能導通發光。P1.0引腳接發光二極管(D1)的負極, 所以P1.0引腳輸出低電平D1亮,P1.0引腳輸出高電平D1熄滅,D2,D3同理。


注:D3燈的控制腳復用到了防真器,而防真器用到了鎖存器,所以要使得D3亮,必 須取下防真器。

按鍵S1接在P0_1上,當按鍵松開時,p0_1通過電阻上拉為高電平,當按鍵S1按下時,
p0_1為低電平。


4.實驗相關寄存器

操作P1.0我們需要掌握相關寄存器的作用和配置方法。如下表所示:

寄存器
作用
描述
P1 (0x90)
端口1
端口1。通用I / O端口。可以從SFR位尋址。
P1SEL(0x
F4)
端口1 功能
選擇
P1.7 到P0.0功能選擇
0: 通用I / O
1: 外設功能
P1DIR(0x
FE)
端口1 方向
P1.7到P1.0的I/O方向
0: 輸入
1: 輸出
P1INP(0x
F6)
端口1 輸入
模式
P1.7到P1.2的I/O輸入模式。由于P1.0 和P1.1 沒有上
拉/下拉功能, P1INP暫時不需要配置, 了解一下為后面的實驗打下基礎
0: 上拉/下拉(見P2INP (0xF7)–端口2輸入模式)
1: 三態



CC2530外部中斷需要配置P0IEN 、PICTL 、P0IFG、IEN1寄存器。 外部中斷寄存器 說明如下表所示:
寄存器
作用
描述
P0IEN(0xAB)
端口0 中斷屏蔽
端口P0.7到P0.0中斷使能
0:中斷禁用
1:中斷使能。





PICTL(0x8C)
端口中斷控制
P0ICON(Bit0)
端口0, 7到0輸入模式下的中斷配置。
該位為所有端口0的輸入選擇中斷請求條件。
0: 輸入的上升沿引起中斷
1: 輸入的下降沿引起中斷
P0IFG(0x89)
端口0 中斷狀態標志
端口0,位7到位0輸入中斷狀態標志。當
輸入端口中斷請求未決信號時,其相應的標志位將置1。
IEN1 (0xB8)
中斷使能1
P0IE(Bit5)
端口0中斷使能
0: 中斷禁止
1: 中斷使能

按照表格寄存器的內容,對P1.0口進行配置,當P1.0輸出低電平時D1被點亮,D2、 D3同理。S1按下時P0.1產生外部中斷從而控制LED1/LED2/LED3的亮滅所以配置如下:


P1SEL &=~0x01; //配置P1.0為通用IO口 ,默認為0的,可以不設 P1DIR |= 0x01;              //P10 定義為輸出

按鍵S1配置如下:


P0IEN |= 0x2; // P0.1 設置為中斷方式 1:中斷使能 PICTL |= 0x2; //下降沿觸發
IEN1 |= 0x20; //允許P0口中斷; P0IFG = 0x00; //初始化中斷標志位 EA = 1; //打開總中斷



5.源碼分析

1)、 請 打 開 工 程 , 學 習 例 程              \5 、 CC2530              外 部 中 斷 控 制 LED 開 關
\sz-yy-zigbee\sz-yy-zigbee.eww
2)、主代碼 main.c 如下:

  1. /**************************************/
  2. /*描述:按鍵 S1 外部中斷方式改變 LED1 狀態
  3. **************************************/
  4. #include <ioCC2530.h>
  5. #define uint unsigned int
  6. #define uchar unsigned char
  7. //定義控制 LED 燈的端口



  8. #define LED1 P1_0 //定義 LED1 為 P1.0 口控制
  9. #define KEY1 P0_1              //中斷口
  10. //函數聲明
  11. void Delayms(uint);              //延時函數
  12. void InitLed(void);              //初始化 P1 口
  13. void KeyInit();              //按鍵初始化
  14. uchar KeyValue=0;
  15. /****************************
  16. //延時函數
  17. *****************************/
  18. void Delayms(uint xms)              //i=xms 即延時 i 毫秒
  19. {
  20. uint i,j;
  21. for(i=xms;i>0;i--)
  22. for(j=587;j>0;j--);
  23. }
  24. /**************************** LED 初始化程序
  25. *****************************/
  26. void InitLed(void)
  27. {
  28. P1DIR |= 0x01; //P1_0、P1_1 定義為輸出 LED1 = 1;              //LED1 燈熄滅
  29. }
  30. /**************************** KEY 初始化程序--外部中斷方式
  31. *****************************/
  32. void InitKey()
  33. {
  34. P0IEN |= 0X2;              //P01 設置為中斷方式 PICTL |= 0X2; // 下降沿觸發
  35. IEN1 |= 0X20;              // 允許 P0 口中斷; P0IFG = 0x00;              // 初始化中斷標志位 EA = 1;
  36. }
  37. /**************************** 中斷處理函數
  38. *****************************/
  39. #pragma vector = P0INT_VECTOR              //格式:#pragma vector = 中斷向量,緊接 著是中斷處理程序



  40.   interrupt void P0_ISR(void)
  41. {
  42. Delayms(10);                            //去除抖動 LED1=~LED1;                           //改變 LED1 狀態 P0IFG = 0;              //清中斷標志
  43. P0IF = 0;              //清中斷標志
  44. }
  45. /*************************** 主函數
  46. ***************************/
  47. void main(void)
  48. {
  49. InitLed();              //調用初始化函數 InitKey();
  50. while(1)
  51. {
  52. }
  53. }
復制代碼
6.實驗步驟

1)、打開代碼工程,\5、CC2530 外部中斷控制 LED 開關\sz-yy-zigbee\sz-yy-zigbee.eww, 如果 IAR 沒有很安裝,請按。\學習例程以及開發環境安裝\2.開發環境搭建.pdf 去安裝。
2)通過仿真器把開發板接到電腦上。

3)編繹下載。




程序已下載完成,可以運行:


4).現象:每按下一次 S1,D1 的狀態會跟著變化,這里是通過按鍵中斷實驗的哦。


全部資料51hei下載地址:
5、CC2530 外部中斷控制LED開關.rar (606.82 KB, 下載次數: 16)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 热久色| 亚洲精品成人在线 | 伊人热久久 | 欧美精品乱码久久久久久按摩 | 久久99成人 | 色婷婷综合久久久中字幕精品久久 | 国产在线不卡视频 | 欧美日韩中文在线 | 国产成人精品一区二 | 91精品久久久久久久久中文字幕 | 日韩理论电影在线观看 | 成人在线免费视频观看 | 久久午夜国产精品www忘忧草 | 精品免费观看 | 国产高清视频 | 国产中文在线观看 | 欧美三级网站 | 一起操网站 | 国产第1页 | 一区二区日韩 | 完全免费在线视频 | 国产福利在线播放 | 淫片一级国产 | 久久婷婷麻豆国产91天堂 | 欧美中文字幕一区 | 99免费视频 | 欧美日韩亚洲一区 | 天天干天天插天天 | 波多野结衣在线观看一区二区三区 | av电影手机在线看 | 99在线观看 | 免费一级片| 一级毛片在线看 | 久久久久久亚洲精品 | 亚洲久久 | 国产亚洲一区二区在线观看 | 日本成年免费网站 | 99免费在线| 人成精品 | 一区二区三区日韩精品 | 日韩视频免费看 |