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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 12434|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

CC2530的GPIO輸出控制教程-Led閃爍、流水燈程序分析

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:244570 發(fā)表于 2017-11-1 22:47 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
1.實驗?zāi)康?/font>
2.GPIO輸出控制實驗-Led閃爍、流水燈

1) 通過實驗掌握 CC2530 芯片 GPIO 的配置方法
2) 掌握 Led 驅(qū)動電路及開關(guān) Led 的原理
3) 操作 IO 口控制 3 盞 LED 燈的全亮和全滅、閃爍、流水燈
2.實驗設(shè)備
             硬件:PC 機(jī)              一臺 EB2530(底板、核心板、仿真器、USB線)   一套
             軟件:2000/XP/win7 系統(tǒng),IAR 8.10 集成開發(fā)環(huán)境
3.實驗相關(guān)電路圖

由于發(fā)光二級管單向?qū)щ娞匦裕粗挥性谡螂妷海ǘ䴓O管的正極接正,負(fù)極接負(fù))下才 能導(dǎo)通發(fā)光。P1.0 引腳接發(fā)光二極管(D1)的負(fù)極,所以 P1.0 引腳輸出低電平 D1 亮,P1.0 引腳輸出亮電平 D1 熄滅,P1.1 和 P1.4 原理相同。

4.實驗相關(guān)寄存器 操作P1.0我們需要掌握相關(guān)寄存器的作用和配置方法。如下表所示(更詳細(xì)的介紹請參考 “EB2530\相關(guān)資料與軟件\cc2530-datasheet.pdf,英文不好的可參考CC2530中文數(shù)據(jù)手 冊完全版.pdf,翻譯有250頁并非官方中文,有個別地方有錯,請以英文為主哦”):


寄存器
作用
描述
P1 (0x90)
端口 1
端口 1。通用 I / O 端口。可以從 SFR 位尋址。


P1SEL(0xF4)


端口 1 功能選擇
P1.7 到 P0.0 功能選擇
0: 通用 I / O
1: 外設(shè)功能


P1DIR(0xFE)


端口 1 方向
P1.7 到 P1.0 的 I/O 方向
0: 輸入
1: 輸出

P1INP(0xF6)

端口 1 輸入模式
P1.7 到 P1.2 的 I/O 輸入模式。由于 P1.0 和 P1.1 沒有
上拉/下拉功能, P1INP 暫時不需要配置

0: 上拉/下拉(見 P2INP (0xF7)–端口 2 輸入模式)

1: 三態(tài) 按照表格寄存器的內(nèi)容,對P1.0、P1.1、P1.4進(jìn)行配置,當(dāng)IO口輸出低電平時Led被點亮。


所以配置如下:

P1SEL &=~0x13; //配置P1.0、P1.1、P1.4為通用IO口 P1DIR |= 0x13; //配置P1.0、P1.1、P1.4為輸出
由于CC2530寄存器初始化時默認(rèn)值為(詳細(xì)說明請參考CC2530數(shù)據(jù)手冊(中文).pdf): P1SEL = 0x00;P1DIR = 0x00; P1INP = 0x00;
所以 IO 口配置可簡化為:P1DIR |= 0x13; //配置 P1.0、P1.1、P1.4 為輸出
5.源碼分析

6.實驗步驟 連接硬件如下(后面的實驗將省略硬件連接與編譯了,別重復(fù)講了,只講不同的實驗):


如果編譯有錯誤,請參考最后一頁圖片說明。沒有錯誤請繼續(xù)
下載調(diào)試程序,再點運行,即可看到“3 盞 LED 燈的全亮



和全滅、閃爍、流水燈”,由于 P1.4 與仿真器共用,必須拔掉仿真器的插頭才能看到 LED3

的變化。單擊調(diào)試按鍵后程序已經(jīng)下載到芯片中并保存,斷電也不會掉失的,此時可以停 止調(diào)試并斷開仿真器的排線,通過底板 USB 供電再看看效果吧。


cc2530源程序如下:
  1. /****************************************************************************
  2. * 文 件 名: main.c
  3. * 作    者: Andy
  4. * 修    訂: 2017-11-2
  5. * 版    本: 1.0
  6. * 描    述: 操作IO口控制3盞LED燈的全亮和全滅、閃爍、流水燈
  7. ****************************************************************************/
  8. #include <ioCC2530.h>

  9. typedef unsigned char uchar;
  10. typedef unsigned int  uint;

  11. #define LED1 P1_0       //定義P1.0口為LED1控制端
  12. #define LED2 P1_1       //定義P1.1口為LED2控制端
  13. #define LED3 P1_4       //定義P1.4口為LED3控制端


  14. /****************************************************************************
  15. * 名    稱: DelayMS()
  16. * 功    能: 以毫秒為單位延時,系統(tǒng)時鐘不配置時默認(rèn)為16M(用示波器測量相當(dāng)精確)
  17. * 入口參數(shù): msec 延時參數(shù),值越大,延時越久
  18. * 出口參數(shù): 無
  19. ****************************************************************************/
  20. void DelayMS(uint msec)
  21. {
  22.     uint i,j;
  23.    
  24.     for (i=0; i<msec; i++)
  25.         for (j=0; j<535; j++);
  26. }

  27. /****************************************************************************
  28. * 名    稱: LedOnOrOff()
  29. * 功    能: 點亮或熄滅所有LED燈   
  30. * 入口參數(shù): mode為0時LED燈亮  mode為1時LED燈滅
  31. * 出口參數(shù): 無
  32. ****************************************************************************/
  33. void LedOnOrOff(uchar mode)
  34. {
  35.     LED1 = mode;
  36.     LED2 = mode;
  37.     LED3 = mode; //由于P1.4與仿真器共用,必須拔掉仿真器的插頭才能看到LED3的變化
  38. }

  39. /****************************************************************************
  40. * 名    稱: InitLed()
  41. * 功    能: 設(shè)置LED燈相應(yīng)的IO口
  42. * 入口參數(shù): 無
  43. * 出口參數(shù): 無
  44. ****************************************************************************/
  45. void InitLed(void)
  46. {
  47.     P1DIR |= 0x13;      //P1.0、P1.1、P1.4定義為輸出
  48.     LedOnOrOff(1);      //使所有LED燈默認(rèn)為熄滅狀態(tài)
  49. }

  50. /****************************************************************************
  51. * 程序入口函數(shù)
  52. ****************************************************************************/
  53. void main(void)
  54. {
  55.     uchar i;
  56.    
  57.     InitLed();               //設(shè)置LED燈相關(guān)IO口
  58.    
  59.     while(1)                 //死循環(huán)
  60.     {  
  61.         LED1 = !LED1;         //流水燈,初始化時LED為熄滅執(zhí)行后則點亮
  62.         DelayMS(200);         
  63.         LED2 = !LED2;         
  64.         DelayMS(200);            
  65.         LED3 = !LED3;        
  66.         DelayMS(200);     
  67.         
  68.         for (i=0; i<2; i++)  //所有燈閃爍2次
  69.         {
  70.            LedOnOrOff(1);    //關(guān)閉所有LED燈
  71.            DelayMS(200);
  72.            LedOnOrOff(0);    //打開所有LED燈
  73.            DelayMS(200);
  74.         }
  75.         
  76.         LedOnOrOff(1);       //使所有LED燈熄滅狀態(tài)
  77.         DelayMS(500);

  78. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼



所有資料51hei提供下載:
2.Led閃爍_流水燈.rar (330.03 KB, 下載次數(shù): 11)


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

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: a中文在线视频 | 久久久成 | 97日日碰人人模人人澡分享吧 | 欧美精品第一区 | 免费一级做a爰片久久毛片潮喷 | 久久国产综合 | 免费成人国产 | 亚洲欧美日韩系列 | 丁香婷婷综合激情五月色 | jlzzjlzz国产精品久久 | 日韩视频91 | 日韩在线中文字幕 | 精品一区二区三区四区外站 | 国产三级精品三级在线观看四季网 | 日韩有码一区二区三区 | 中文天堂在线一区 | 喷潮网站 | 精品国产乱码久久久久久牛牛 | 亚洲一区二区三区在线免费观看 | 欧美日韩国产一区二区三区 | 日韩久久精品 | 91亚洲国产成人久久精品网站 | 黑人巨大精品 | 一区二区三区亚洲视频 | 自拍视频网站 | 精产国产伦理一二三区 | 日本一区二区高清视频 | 岛国av免费在线观看 | 国产精品久久av | 欧美日韩在线免费 | 欧美激情网站 | 国产亚洲精品成人av久久ww | 在线一区视频 | 免费看色 | 草久久久 | 国产二区av | 91精品中文字幕一区二区三区 | 精品一区二区三区不卡 | 国产精品久久久久一区二区三区 | 久久久久久久综合 | 日韩欧美中文字幕在线观看 |