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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

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

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
1.實(shí)驗(yàn)?zāi)康?/font>
2.GPIO輸出控制實(shí)驗(yàn)-Led閃爍、流水燈

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

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

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


寄存器
作用
描述
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 沒(méi)有
上拉/下拉功能, P1INP 暫時(shí)不需要配置

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

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


所以配置如下:

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

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


如果編譯有錯(cuò)誤,請(qǐng)參考最后一頁(yè)圖片說(shuō)明。沒(méi)有錯(cuò)誤請(qǐng)繼續(xù)
點(diǎn)下載調(diào)試程序,再點(diǎn)運(yùn)行,即可看到“3 盞 LED 燈的全亮



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

的變化。單擊調(diào)試按鍵后程序已經(jīng)下載到芯片中并保存,斷電也不會(huì)掉失的,此時(shí)可以停 止調(diào)試并斷開(kāi)仿真器的排線,通過(guò)底板 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口為L(zhǎng)ED1控制端
  12. #define LED2 P1_1       //定義P1.1口為L(zhǎng)ED2控制端
  13. #define LED3 P1_4       //定義P1.4口為L(zhǎng)ED3控制端


  14. /****************************************************************************
  15. * 名    稱(chēng): DelayMS()
  16. * 功    能: 以毫秒為單位延時(shí),系統(tǒng)時(shí)鐘不配置時(shí)默認(rèn)為16M(用示波器測(cè)量相當(dāng)精確)
  17. * 入口參數(shù): msec 延時(shí)參數(shù),值越大,延時(shí)越久
  18. * 出口參數(shù): 無(wú)
  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. * 名    稱(chēng): LedOnOrOff()
  29. * 功    能: 點(diǎn)亮或熄滅所有LED燈   
  30. * 入口參數(shù): mode為0時(shí)LED燈亮  mode為1時(shí)LED燈滅
  31. * 出口參數(shù): 無(wú)
  32. ****************************************************************************/
  33. void LedOnOrOff(uchar mode)
  34. {
  35.     LED1 = mode;
  36.     LED2 = mode;
  37.     LED3 = mode; //由于P1.4與仿真器共用,必須拔掉仿真器的插頭才能看到LED3的變化
  38. }

  39. /****************************************************************************
  40. * 名    稱(chēng): InitLed()
  41. * 功    能: 設(shè)置LED燈相應(yīng)的IO口
  42. * 入口參數(shù): 無(wú)
  43. * 出口參數(shù): 無(wú)
  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;         //流水燈,初始化時(shí)LED為熄滅執(zhí)行后則點(diǎn)亮
  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);    //打開(kāi)所有LED燈
  73.            DelayMS(200);
  74.         }
  75.         
  76.         LedOnOrOff(1);       //使所有LED燈熄滅狀態(tài)
  77.         DelayMS(500);

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



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


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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 色av导航| 成人在线a | 日韩av免费看 | 中文字幕在线免费观看视频 | 午夜在线视频观看日韩17c | 日韩黄色影院 | www.日本在线| 婷婷久久综合 | 婷婷视频在线 | 午夜精品久久久久久久99 | 51调教丨国产调教视频 | 日日操av | 亚洲二区在线 | 手机看片福利视频 | 日本在线播放 | 深夜福利视频在线观看 | 视频一区中文字幕 | 国产一级黄色大片 | 精品人伦一区二区三区 | 成人国产精品视频 | 成人国产精品一区二区 | 黄色片视频网站 | 午夜视频网站 | 性色av一区二区三区 | 在线亚洲欧美 | 成人免费视频观看视频 | 成年人午夜视频 | 中国黄色一级片 | 99热这里都是精品 | 美女免费视频网站 | 欧美性一区二区 | 超碰人人人 | 亚洲国产精品久久 | 在线中文字幕 | 激情综合网站 | 日韩精品在线免费观看 | 成人动漫免费观看 | 毛片在线视频 | 精品久久久久久久久久久久久 | 中文字幕在线免费播放 | 亚洲综合影院 |