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

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

QQ登錄

只需一步,快速開始

搜索
查看: 1980|回復(fù): 1
收起左側(cè)

51單片機(jī)+PCF8591仿真不正確,但是燒錄到單片機(jī)中是可以的,I2C有問(wèn)題?

[復(fù)制鏈接]
ID:1028584 發(fā)表于 2022-5-22 01:09 | 顯示全部樓層 |閱讀模式
如題,使用PCF8591的AD模式時(shí),仿真結(jié)果是正確的,能夠讀到正確的輸出,但是使用DA功能時(shí)就不對(duì)了,使用DA時(shí),設(shè)置輸出2.5V以上能夠正常輸出,設(shè)置輸出2.5V以下就不能正常輸出。
另外在使用AD模式時(shí),控制字不能設(shè)置為0x00,講道理我用AD的時(shí)候模擬輸出端口使能我應(yīng)該是可以置零的啊,但是置零就不對(duì)。。。
貼出原理圖和部分代碼,文件在附件中,求各位大佬解惑
PS.同樣的問(wèn)題也出現(xiàn)在EEPROM ATC02中,也是仿真不正確燒錄到單片機(jī)中正確。。。
這兩個(gè)芯片都是I2C通信,難道是I2C的問(wèn)題?

PCF8591.zip

84.92 KB, 下載次數(shù): 9

代碼及仿真文件

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

ID:1028584 發(fā)表于 2022-5-22 01:13 | 顯示全部樓層
帖子長(zhǎng)度有限制,現(xiàn)將部分單片機(jī)代碼貼上
  1. #include <REGX52.H>
  2. #include "delay.h"

  3. //這里的延時(shí)都可以去掉,是用來(lái)調(diào)試代碼的時(shí)候方便分析的

  4. /*********************
  5. /*@brief        該文件定義了I2C的6個(gè)時(shí)序,可以直接調(diào)用,
  6. /*@param        6個(gè)時(shí)序分別為起始、發(fā)送字節(jié)、接收應(yīng)答、接收字節(jié)、發(fā)送應(yīng)答、終止
  7. /*@retval
  8. *********************/

  9. //單片機(jī)實(shí)際連接引腳
  10. sbit scl = P3^4;
  11. sbit sda = P3^5;

  12. /*********************
  13. /*@brief        I2C起始條件,SCL高電平期間,SDA從高電平切換到低電平
  14. /*@param        無(wú)
  15. /*@retval        無(wú)
  16. *********************/
  17. void I2C_start() {
  18.     sda =1;
  19.     scl = 1;
  20.     delay10us();
  21.     sda =0;
  22.     delay10us();
  23.     scl =0;
  24. }

  25. /*********************
  26. /*@brief        I2C終止條件,SCL高電平期間,SDA從低電平切換到高電平
  27. /*@param        無(wú)
  28. /*@retval        無(wú)
  29. *********************/
  30. void I2C_stop() {
  31.     sda = 0;
  32.     scl = 1;
  33.     delay10us();
  34.     sda = 1;
  35. }

  36. /*********************
  37. /*@brief        I2C發(fā)送一個(gè)字節(jié),SCL低電平期間,主機(jī)將數(shù)據(jù)位依次放到SDA線上(高位在前),然后拉高SCL,
  38.                                         從機(jī)將在SCL高電平期間讀取數(shù)據(jù)位,SCL高電平期間SDA不允許數(shù)據(jù)變化,
  39. /*@param        要發(fā)送的字節(jié)
  40. /*@retval        無(wú)
  41. *********************/
  42. void I2C_sendByte(unsigned char Byte) {
  43.     int i;
  44.     for(i=0; i<8; i++) {
  45.         sda = Byte&(0x80>>i);
  46.         delay10us();
  47.         scl = 1;
  48.         delay10us();//這里可能比較重要?
  49.         scl = 0;
  50.     }
  51. }

  52. /*********************
  53. /*@brief        I2C接收一個(gè)字節(jié),主機(jī)在接收之前需要釋放SDA
  54.                                         SCL低電平期間,從機(jī)將數(shù)據(jù)位依次放到SDA線上(高位在前),然后拉高SCL,
  55.                                         主機(jī)將在SCL高電平期間讀取數(shù)據(jù)位,所以SCL高電平期間SDA不允許數(shù)據(jù)變化
  56. /*@param        無(wú)
  57. /*@retval        接收到的數(shù)據(jù)
  58. *********************/
  59. unsigned char I2C_receiveByte() {
  60.     unsigned char Byte=0x00;
  61.     int i;
  62.     sda =1;
  63.     for(i=0; i<8; i++) {
  64.         scl=1;
  65.         if(sda)(Byte|=(0x80>>i));
  66.         delay10us();
  67.         scl=0;
  68.         delay10us();
  69.     }
  70.     return Byte;
  71. }

  72. /*********************
  73. /*@brief        I2C發(fā)送應(yīng)答
  74. /*@param        數(shù)據(jù)0表示應(yīng)答,數(shù)據(jù)1表示非應(yīng)答
  75. /*@retval        無(wú)
  76. *********************/
  77. void I2C_sendACK(bit ack) {
  78.     sda = ack;
  79.     delay10us();
  80.     scl = 1;
  81.     scl =0;
  82. }

  83. /*********************
  84. /*@brief        I2C接收應(yīng)答,主機(jī)在接收之前,需要釋放SDA
  85. /*@param        數(shù)據(jù)0表示應(yīng)答,數(shù)據(jù)1表示非應(yīng)答
  86. /*@retval        接收到的應(yīng)答標(biāo)志
  87. *********************/
  88. bit I2C_receiveACK() {
  89.     bit ack;
  90.     sda =1;
  91.     delay10us();
  92.     scl =1;
  93.     ack = sda;
  94.     delay10us();
  95.     scl =0;
  96.     return ack;
  97. }
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 成人亚洲视频 | 91超碰caoporn97人人 | www.99re | 亚洲福利视频一区二区 | 免费精品久久久久久中文字幕 | 亚洲成人一级 | 99re国产 | 成人在线精品视频 | 久久久精品视频一区二区三区 | 久久精品a | 国产乱码精品一区二区三区五月婷 | 91久久精品视频 | 久久大陆 | 一级毛片色一级 | 欧美日韩福利视频 | 欧美在线视频网站 | 久久国产精品免费一区二区三区 | 黑人精品 | 国产精品九九视频 | 午夜www| 成人精品鲁一区一区二区 | 欧美成视频在线观看 | 精品亚洲永久免费精品 | 看亚洲a级一级毛片 | 精品国产91乱码一区二区三区 | a级毛片免费高清视频 | 热re99久久精品国99热观看 | 自拍 亚洲 欧美 老师 丝袜 | 久久黄视频 | 欧美日韩高清 | 999久久久国产精品 欧美成人h版在线观看 | 日韩欧美一区二区三区四区 | 91在线免费视频 | 一道本不卡 | 337p日韩| 精品一二三区 | 亚洲在线成人 | 丁香一区二区 | 在线中文字幕视频 | 蜜桃传媒一区二区 | 天天爽天天干 |