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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5750|回復: 0
收起左側

CC2530紅外對管計數器驅動程序與使用教程

[復制鏈接]
ID:244570 發表于 2017-11-1 22:45 | 顯示全部樓層 |閱讀模式
1.實驗目的
28.紅外對管計數器

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


3.實驗相關電路圖




其它型號也行的,只是講他的原理,自己購買請注意電壓就行。
【名稱】E18-D50NK

【描述】這是一種集發射與接收于一體的光電傳感器。檢測距離可以根據要求進行調節。該傳感 器具有探測距離遠、受可見光干擾小、價格便宜、易于裝配、使用方便等特點,可以廣泛應用于機器 人避障、流水線計件等眾多自動化產品。

光電式傳感器(光電開關)NPN 常開 型號:E18-D50NK。




1、輸出電流 DC/SCR/繼電器 Control output:100mA/5V 供電
2、消耗電流 DC<25mA
3、響應時間 <2ms
4、指向角:≤15°,有效距離 3-50CM 可調
5、檢測物體:透明或不透明體
6、工作環境溫度:-25℃~+55℃
7、標準檢測物體:太陽光 10000LX 以下 白熾燈 3000LX 以下
8、外殼材料:塑料

電氣特性:              U:5VDC              I:100mA              Sn:3-50CM

尺寸:              直徑:17MM              傳感器長度:45MM              引線長度:45CM 應用案例:

1、生產線貨物自動計數設備              2、多功能提醒器              3、走迷宮機器人

【注意事項】為保護動作的可靠和壽命長,請避免有關規定以外的溫度外界(戶外)條件下,接近傳感器 雖為耐水結 構,若裝上罩使用,勿使水和水容性切削油等淋到,則可更好地提高可靠性及壽命。還請 避免在有化學藥劑,特別是在強堿、酸、硝酸、銘酸、熱濃硫酸等氣候中使用。

紅色:接 4.5-5V 電源高電平 黃色:接單片機,輸出 TTL 電平給單片機 綠色:接 GND 0V 電源低電平

前方無障礙輸出高電平,有障礙輸出口(黃色)電平會從高電平變成低電平,背面圖有一個電位器可 以調節障礙的檢測距離,一旦調節好電位器(如調節好的最大距離 50cm)則在有效距離內(如 40cm


在電路設計中可以再輸出端黃線加上拉電阻 10K 到 5V,再接入單片機檢測,會比較穩定,單片機檢
測可以采用外部硬件中斷 INT0 INT1 等來實現。
4.實驗相關寄存器

實驗中使用 P0_4 作為檢測引腳, 擋住紅外對管時對管上的燈亮,拿開就滅。發生一次 D1 也會改變。串口配置也 115200 8N1

5.源碼分析 請看相應工程,有注釋前面講的太多,不重復講了。
6.實驗步驟
1.用杜邦線連接好傳感器,注意引腳一定要接正確哦

2.編譯調試下載程序

3.打開串口配置為 115200 8N1 ,D2 應該長亮。擋住紅外對管,對管上的燈亮,拿開就滅。



CC2530源程序如下:
  1. /****************************************************************************
  2. * 文 件 名: main.c
  3. * 作    者: Andy
  4. * 修    訂: 2017-11-2
  5. * 版    本: 1.0
  6. * 描    述: 擋住紅外對管,對管上的燈亮,拿開就滅。發生一次D1也會改變
  7. *           P0.4口為傳感器的輸入端 串口配置也115200 8N1
  8. ****************************************************************************/
  9. #include <ioCC2530.h>
  10. #include <stdio.h>
  11. #include <string.h>

  12. typedef unsigned char uchar;
  13. typedef unsigned int  uint;

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

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

  18. uint count;             //計數器

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

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

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


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

  81. void main(void)
  82. {     
  83.     char buf[10];
  84.    
  85.     memset(buf, 0, 10);     
  86.     InitLed();                        //設置LED燈和P0.4相應的IO口
  87.     InitUart();                       //調置串口相關寄存器

  88.     CLKCONCMD &= ~0x40;               //設置系統時鐘源為32MHZ晶振
  89.     while(CLKCONSTA & 0x40);          //等待晶振穩定為32M
  90.     CLKCONCMD &= ~0x47;               //設置系統主時鐘頻率為32MHZ   
  91.       
  92.     InitUart();                       //調置串口相關寄存器
  93.   
  94.     while(1)                          //無限循環
  95.     {
  96.         if(DATA_PIN == 0)             //擋住紅外對管輸出低電平,平時為高電平
  97.         {                             //不同的型號可能不同,修改觸發電平就行        
  98.             LED1 = ~LED1;             //擋住紅外對管D1發生變化
  99.             while(!DATA_PIN);           
  100.             count++;
  101.             sprintf(buf, "%05d ", count);
  102.             UartSendString(buf, 6); //串口發送數據,顯示當前記數值
  103. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

0.png

所有資料51hei提供下載:
28.紅外對管計數器.rar (394.63 KB, 下載次數: 39)
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日本人做爰大片免费观看一老师 | 视频一区二区国产 | 四虎成人在线播放 | 国产成人精品综合 | 人人射人人插 | 亚洲一区二区中文字幕 | 欧美国产亚洲一区二区 | 亚洲成av人片在线观看无码 | 亚洲人成一区二区三区性色 | 日韩中文一区二区三区 | 99精品一级欧美片免费播放 | 国产精品欧美一区二区三区 | 亚洲女人天堂成人av在线 | 琪琪午夜伦伦电影福利片 | 国产成人免费一区二区60岁 | 国产高清亚洲 | 国产精品一二区 | 国产日韩欧美综合 | 日本亚洲欧美 | 鸳鸯谱在线观看高清 | 伦理午夜电影免费观看 | 日韩欧美国产精品 | 成人av一区 | 九色网址| 在线观看免费毛片 | 国产精品久久久久久久久动漫 | av网址在线| av在线免费不卡 | 亚洲日本乱码在线观看 | av黄色免费| 亚洲国产精品一区二区久久 | 一区二区三区四区毛片 | a网站在线观看 | 国产一级片av | 亚洲精品天堂 | 你懂的免费在线 | 日韩欧美三区 | 台湾a级理论片在线观看 | 羞羞视频在线观看免费观看 | 欧美中文字幕一区二区三区亚洲 | 欧美在线a |