找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

AVR單片機PCF8591轉(zhuǎn)換實例源程序操作庫

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:76190 發(fā)表于 2015-4-5 18:36 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
目標系統(tǒng):   基于AVR單片機                                                
應用軟件:   ICCAVR                                                      
版    本:   Version 1.0                                                      
實驗內(nèi)容:
初始化、讀取AD、輸出DA,使用PA口的LED指示獲取的AD數(shù)據(jù),使用萬用表測量DA的輸出電壓。
----------------------------------------------------------------------
硬件連接:
將PA口的LED指示燈使用短路帽短接;
PCF8591:VCC、GND、SDA、SCL
| | | |
SMK1632:VCC、GND、SDA、SCL
----------------------------------------------------------------------
注意事項:
(1)若有加載庫函數(shù),請將光盤根目錄下的“庫函數(shù)”下的“ICC_H”文件夾拷到D盤
(2)請詳細閱讀“使用必讀”及相關資料。
----------------------------------------------------------------------
  1. #include <iom16v.h>

  2. #define WR_DADR 0x90 //write device-address
  3. #define RD_DADR 0x91 //read device-address
  4. #include "D:\ICC_H\PCF8591.H"

  5. #define DISP_DDR DDRA
  6. #define DISP_PORT PORTA

  7. /*--------------------------------------------------------------------
  8. 函數(shù)名稱:PCF8591
  9. 函數(shù)功能:
  10. 注意事項:
  11. 提示說明:
  12. 輸 入:
  13. 返 回:
  14. --------------------------------------------------------------------*/
  15. void errDisp()
  16. {
  17. DISP_PORT = 0X55;
  18. delay50ms(4);
  19. DISP_PORT = 0X00;
  20. delay50ms(4);
  21. DISP_PORT = 0XAA;
  22. delay50ms(4);
  23. DISP_PORT = 0X00;
  24. delay50ms(4);
  25. }
  26. /*--------------------------------------------------------------------
  27. 函數(shù)全稱:PCF8591
  28. 函數(shù)功能:
  29. 注意事項:最好不要將 TWBR 的值改太小,否則可能出錯
  30. 提示說明:假設系統(tǒng)時鐘為16M,則TWI波特率=CLK/(16+2*(TWBR)*4)=400K
  31. 輸 入:
  32. 返 回:
  33. --------------------------------------------------------------------*/
  34. void twi_init() //TWI(I2C)初始化
  35. {
  36. TWBR = 0X12; //設置TWI波特率
  37. TWSR &= 0XFC; //設置TWI預分頻 為 1
  38. }
  39. /*--------------------------------------------------------------------
  40. 函數(shù)名稱:PCF8591
  41. 函數(shù)功能:
  42. 注意事項:
  43. 提示說明:
  44. 輸 入:
  45. 返 回:
  46. --------------------------------------------------------------------*/
  47. void main()
  48. {
  49. uint8 DAval=0,t;
  50. uint8 *pGetDat=&t; //隨便給"pGetDat"一個地址以防內(nèi)存錯誤

  51. DISP_DDR = 0XFF;
  52. twi_init();

  53. while(1)
  54. {
  55. PCF8591_getAD(MODE0,CHNL0,pGetDat);
  56. DISP_PORT = *pGetDat;
  57. PCF8591_setDA(DAval++);
  58. delay50ms(4);
  59. }
  60. }
復制代碼



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

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表