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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 24667|回復: 6
收起左側

CC2530控制人體紅外傳感器的程序與詳細教程

  [復制鏈接]
ID:244570 發表于 2017-11-1 22:44 | 顯示全部樓層 |閱讀模式
1.實驗目的
20.人體紅外傳感器

1) 通過實驗掌握 CC2530 芯片GPIO 的配置方法
2) 掌握 HC-SR501 人體感應模塊的使用
2.實驗設備
              硬件:PC 機  一臺 EB2530(底板、核心板、仿真器、USB線) 一套 HC-SR501傳感器   一個 杜邦線   三條
              軟件:2000/XP/win7 系統,IAR 8.10 集成開發環境,串口助手

3.實驗相關電路圖




D-SUN PIR人體紅外感應模塊 是基于紅外線技術的自動控制產品。靈敏度高、可靠性強、 超低功耗,超低電壓工作模式。

接線方式:

1、VCC:接電源正極(5V)
2、OUT:檢測引腳

3、GND:接電源負極 自己購買的模塊請仔細核對一下引腳,確保連接正確。

更詳細介紹請參考廠家手冊或“ EEB2530\相關資料與軟件\芯片數據手冊\完整版 HC-SR501 資料包括原理圖”

注意:紅外模塊正常供電是 5v,仿真器輸出是 3.3v,用仿真器供電時勉強能用,可能造 成數據不準確,調試時最好插上底板 usb 就好了并打開電源開關。

4.實驗相關寄存器

實驗中使用 P0_4 作為檢測引腳, 人進入其感應范圍模塊輸出高電平,點亮 LED1,人離開 感應范圍 LED1 熄滅 P0.4 口為 HC-SR501 傳感器的輸入端。具體 HC-SR501 人體感應模塊 OUT 輸出電平由模塊決定,不同廠家可能不一樣,不一樣關系也不大,改動非常的小。

5.源碼分析

6.實驗步驟
1.用杜邦線連接好傳感器,注意引腳一定要接正確哦

2.編譯調試下載程序

3.打開串口配置為 115200 8N1 ,D2 應該長亮,這時你靠近傳感器檢測范圍,D1 燈亮延 時一段時間后熄滅,串口也有相應的輸出。做這個實驗傳感器方向很重要,不要將探頭對 準自己,慢慢用手移動到檢測范圍,觀察燈的變化。這實驗不太好做,自己多摸索幾次相 信你會成功的!




單片機源程序如下:
  1. /****************************************************************************
  2. * 文 件 名: main.c
  3. * 作    者: Andy
  4. * 修    訂: 2013-01-10
  5. * 版    本: 1.0
  6. * 描    述: 人進入其感應范圍模塊輸出高電平,點亮LED1,人離開感應范圍LED1熄滅,
  7. *           P0.4口為HC-SR501傳感器的輸入端 串口配置也115200 8N1
  8. ****************************************************************************/
  9. #include <ioCC2530.h>

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

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

  15. #define DATA_PIN P0_4        //定義P0.4口為傳感器的輸入端


  16. /****************************************************************************
  17. * 名    稱: DelayMS()
  18. * 功    能: 以毫秒為單位延時 16M時約為535,系統時鐘不修改默認為16M
  19. * 入口參數: msec 延時參數,值越大,延時越久
  20. * 出口參數: 無
  21. ****************************************************************************/
  22. void DelayMS(uint msec)
  23. {
  24.     uint i,j;
  25.    
  26.     for (i=0; i<msec; i++)
  27.         for (j=0; j<535; j++);
  28. }

  29. /****************************************************************************
  30. * 名    稱: InitUart()
  31. * 功    能: 串口初始化函數
  32. * 入口參數: 無
  33. * 出口參數: 無
  34. ****************************************************************************/
  35. void InitUart(void)
  36. {
  37.     PERCFG = 0x00;           //外設控制寄存器 USART 0的IO位置:0為P0口位置1
  38.     P0SEL |= 0x0c;           //P0_2,P0_3用作串口(外設功能)
  39.     P2DIR &= ~0XC0;          //P0優先作為UART0
  40.    
  41.     U0CSR |= 0x80;           //設置為UART方式
  42.     U0GCR |= 11;                                       
  43.     U0BAUD |= 216;           //波特率設為115200
  44.     UTX0IF = 0;              //UART0 TX中斷標志初始置位0
  45. }

  46. /****************************************************************************
  47. * 名    稱: UartSendString()
  48. * 功    能: 串口發送函數
  49. * 入口參數: Data:發送緩沖區   len:發送長度
  50. * 出口參數: 無
  51. ****************************************************************************/
  52. void UartSendString(char *Data, int len)
  53. {
  54.     uint i;
  55.    
  56.     for(i=0; i<len; i++)
  57.     {
  58.         U0DBUF = *Data++;
  59.         while(UTX0IF == 0);
  60.         UTX0IF = 0;
  61.     }
  62. }


  63. /****************************************************************************
  64. * 名    稱: InitGpio()
  65. * 功    能: 設置LED燈和P0.4相應的IO口
  66. * 入口參數: 無
  67. * 出口參數: 無
  68. ****************************************************************************/
  69. void InitLed(void)
  70. {
  71.     P1DIR |= 0x13;           //P1.0、P1.1、P1.4定義為輸出
  72.     P0SEL &= ~0x10;
  73.     P0DIR &= ~0x10;          //P0.4定義為輸入口   
  74.     P2INP |= 0x20;
  75.    
  76.     LED2 = 0;                //點亮D2 提示程序已運行
  77. }

  78. void main(void)
  79. {      
  80.     InitLed();                        //設置LED燈和P0.4相應的IO口
  81.     InitUart();                       //調置串口相關寄存器

  82.     CLKCONCMD &= ~0x40;               //設置系統時鐘源為32MHZ晶振
  83.     while(CLKCONSTA & 0x40);          //等待晶振穩定為32M
  84.     CLKCONCMD &= ~0x47;               //設置系統主時鐘頻率為32MHZ   
  85.       
  86.     InitUart();                       //調置串口相關寄存器
  87.         
  88.     while(1)                          //無限循環
  89.     {
  90.         if(DATA_PIN == 1)
  91.         {
  92.             LED1 = 0;                 //有人時LED1亮
  93.             UartSendString("ON ", 3); //串口發送數據,提示用戶
  94.         }            
  95.         else
  96.         {
  97.             LED1 = 1;                  //無人時LED1熄滅
  98.             UartSendString("OFF ", 4); //串口發送數據,提示用戶
  99.         }
  100.         
  101.         DelayMS(1000);
  102.     }   
  103. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

0.png

全部資料下載地址:
20.人體紅外傳感器.rar (635.55 KB, 下載次數: 183)


回復

使用道具 舉報

ID:357452 發表于 2018-6-26 20:13 來自手機 | 顯示全部樓層
能不能發完整的代碼啊
回復

使用道具 舉報

ID:587073 發表于 2019-7-31 16:54 來自手機 | 顯示全部樓層
能不能發完整的代碼啊
回復

使用道具 舉報

ID:554992 發表于 2019-11-16 16:59 | 顯示全部樓層
可以給完整教學嗎
回復

使用道具 舉報

ID:755645 發表于 2020-5-19 13:49 | 顯示全部樓層
樓主,能不能發完整代碼
回復

使用道具 舉報

ID:755645 發表于 2020-5-19 14:10 | 顯示全部樓層
在最后加一個大括號就可以了
回復

使用道具 舉報

ID:510389 發表于 2020-5-20 02:21 | 顯示全部樓層
可以給完整代碼嗎
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品三级在线观看 | a在线免费观看 | 免费九九视频 | 国产一区二区三区久久久久久久久 | 成人片免费看 | 国产精品久久久久一区二区 | 亚洲性爰 | 亚洲一区二区三区免费在线观看 | 精品欧美一区二区在线观看欧美熟 | 精品国产乱码久久久久久88av | 久久国产精品久久国产精品 | 日本一区二区不卡视频 | 成人做爰69片免费观看 | 一区二区福利视频 | 日韩中文字幕网 | 精品国产31久久久久久 | 色吧综合| 午夜激情免费 | 欧美成人精品一区二区男人看 | 成人免费视频网站在线观看 | 日韩在线观看一区 | 久久久噜噜噜www成人网 | 毛片免费在线 | 奇米四色在线观看 | 91色啪 | 成人免费观看男女羞羞视频 | 成人午夜激情 | 日本不卡视频在线播放 | 99免费在线视频 | 久久久网| 欧美久久久久久久久 | 亚洲欧美日韩一区二区 | 日本免费视频在线观看 | 日本高清不卡视频 | 少妇一级淫片免费放播放 | 午夜精品一区二区三区在线视 | 成人免费视频网站在线看 | 91玖玖 | 日韩精彩视频 | 精品av | 日韩视频免费看 |