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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

問一個單片機DA數值顯示不穩定問題

[復制鏈接]
跳轉到指定樓層
樓主
/*********************************問一個DA數值顯示不穩定問題*************************************/     

我的問題是我定義了一個變量,但是讀取PCF8591(支持I2C協議的AD/DA轉換器)的數值的時候我是把指向變量的指針傳進I2CRecStr(),這個是讀取DA值函數,但是我發現數碼管顯示單片機電位器電阻值大小的時候,當數值大概大于60的時候顯示穩定,但是如果小于60就會閃爍兩個數值,比如52和211,42和171等等,使用了另一個電位器就沒問題。然后我是用教程自己的程序時發現使用這兩個電位器都沒有這個問題,所以我想問下是我自己的函數寫的有問題還是線路出現了問題呢?

單片機源程序如下:
/****************************我寫的程序******************************************/
#include <reg52.h>
#include "Delay.h"
#include "Display.h"
#include "I2C.h"

#define uchar unsigned char


void main()
{
        uchar num;
        uchar PCF8591_addr, PCF8591_control_addr;
        PCF8591_addr = 0x90;
        PCF8591_control_addr = 0x00;
        
        Init_Timer0();
        
        while(1)
        {
                I2CRecStr(PCF8591_addr,PCF8591_control_addr, &num, 1);
                TempData[0] = DuanMa[num/100];
                TempData[1] = DuanMa[(num%100)/10];
                TempData[2] = DuanMa[(num%100)%10];
                DelayMs(200);
                        }
        
}



以下是I2C.c中的函數


/*----------------------------------------------------------------
                    向有子地址器件讀取多字節數據函數               
函數原型: bit  I2RecStr(uchar sla,uchar suba,uchar *s,uchar no);  
功能:     從啟動總線到發送地址,子地址,讀數據,結束總線的全過程,從器件
          地址sla,子地址suba,讀出的內容放入s指向的存儲區,讀no個字節。
           如果返回1表示操作成功,否則操作有誤。
注意:    使用前必須已結束總線。
----------------------------------------------------------------*/

bit I2CRecStr(uchar sla, uchar suba, uchar *s, uchar no)
{
        uchar i;
        
        Start_I2C();
        WriteByte(sla);
        if(ack == 0)
        {
                return 0;
        }
        WriteByte(suba);
        if(ack == 0)
        {
                return 0;
        }
        
        Start_I2C();
        WriteByte(sla+1);
        if(ack == 0)
        {
                return 0;
        }
        for(i=0;i<(no-1);i++)
        {
                *s = ReadByte();
                Ack_I2C();
                s++;
        }
        *s = ReadByte();
        NoAck_I2C();
        Stop_I2C();
        return 1;
}


/*********************分割線***********************/
/*********************************教程源程序*****************************************/
main()
{
unsigned char num=0;
Init_Timer0();


while (1)         //主循環
  {

num=ReadADC(0);
TempData[0]=dofly_DuanMa[num/100];   
TempData[1]=dofly_DuanMa[(num%100)/10];
TempData[2]=dofly_DuanMa[(num%100)%10];
//主循環中添加其他需要一直工作的程序
DelayMs(100);
  }
}


/*------------------------------------------------
             讀AD轉值程序
輸入參數 Chl 表示需要轉換的通道,范圍從0-3
返回值范圍0-255
------------------------------------------------*/
unsigned char ReadADC(unsigned char Chl)
{
   unsigned char Val;
   Start_I2c();               //啟動總線
   SendByte(AddWr);             //發送器件地址
     if(ack==0)return(0);
   SendByte(0x40|Chl);            //發送器件子地址
     if(ack==0)return(0);
   Start_I2c();
   SendByte(AddWr+1);
      if(ack==0)return(0);
   Val=RcvByte();
   NoAck_I2c();                 //發送非應位
   Stop_I2c();                  //結束總線
  return(Val);
}


/*************************以下是PCF8591的電路圖*********************************/
SCL和SDA就是I2C的總線。


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

使用道具 舉報

沙發
ID:56665 發表于 2019-6-14 08:10 | 只看該作者
都不用看程序,從你描述的情形看,電位器肯定有問題。
回復

使用道具 舉報

板凳
ID:10947 發表于 2019-6-15 17:02 | 只看該作者
電位器應該有問題,有點接觸不良;
教程的源碼可能經過了濾波,所以過濾掉了波動
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲网站在线观看 | 91国内精精品久久久久久婷婷 | 天天草草草 | 亚洲电影一区 | 国产超碰人人爽人人做人人爱 | 亚洲国产中文在线 | 国内精品久久久久久影视8 最新黄色在线观看 | 精品国产乱码久久久久久牛牛 | 91在线看网站 | 精品国产乱码久久久久久a丨 | 一区二区三区四区国产 | 免费在线国产视频 | 久久久久久毛片免费观看 | 日本免费一区二区三区四区 | 精品国产成人 | 精品视频在线一区 | 亚洲精品久久久久久一区二区 | 国产欧美精品一区二区色综合 | 国产精品福利在线观看 | 亚洲福利在线观看 | 国产午夜精品一区二区三区四区 | 自拍偷拍中文字幕 | 日本又色又爽又黄又高潮 | 亚洲欧美国产精品一区二区 | 成人免费在线观看 | 久久久国产精品视频 | 欧美精品一区二区在线观看 | 激情毛片| 91亚洲国产成人精品一区二三 | 在线观看中文字幕 | 欧美一级电影免费 | 日韩在线观看 | 国产色网 | 国产精品一区二区三区四区 | 中文字幕视频在线 | 成人免费视频7777777 | 完全免费在线视频 | 国产一级毛片视频 | 99久久精品国产麻豆演员表 | 国产一区二区在线免费观看 | 亚洲精品成人网 |