![]() |
發布時間: 2023-10-8 23:45
正文摘要:$regfile = "m8def.dat" $crystal = 8000000 '$baud = 19200 'Config Clockdiv = 1 ... |
問題可能出在單片機與終端通訊配置上: 1,要做到mega16屬性中晶振頻率與程序代碼中的頻率一致。 2,終端中波特率的選擇與代碼中的一致。 3,單片機與終端連接是叫擦連接即:TXD---RXD 試試看,祝你成功~~ |
我已經轉戰使用ADS1110了,沒有使用ADS1115了。我只需要一個通道就可以。我現在是ADS1110和ATMEGA16。使用上面那個程序,讀出來的數據全是0.0 麻煩大神指導指導 |
先生,不能簡單地套用啊~~~ 這個ads1110只有一個adc通道。你那個1115有4個通道需另外要配置的 我已上傳了別人寫的程序及仿真動畫圖片,你再琢磨琢磨 ![]() |
你好,我參照這個用MEGA16代替了mega8,讀出來的數據全部是0,求大佬解答,十分感謝! $regfile = "m16adef.dat" $crystal = 12000000 $baud = 9600 Config Scl = Portc.0 Config Sda = Portc.1 Config Twi = 400000 I2cinit $lib "i2c_twi.lbx" ' 不使用模擬軟I2C,使用硬TWI $lib "glcdSSD1306-I2C.lib" ' 用這個特殊的lib覆蓋默認lib Config Single = Scientific , Digits = 3 '設置 單精度=科學計數法,保留點后位數 Dim dianya_zhuanhuan As Single '計算電壓轉換變量 Dim Pga As Integer '增益變量 Dim CELIANGh As Byte , CELIANGl As Byte '數據測量變量 Pga = 1 ' Do Gosub xie '調用測量讀取計算子程序 Gosub duqu '調用測量結果子程序 print dianya_zhuanhuan 'dianya_zhuanhuan Waitms 250 Waitms 50 Loop End '------------------------------------------------------------------------------ xie: I2cstart 'start condition I2cwbyte &H90 'slave address I2cwbyte &H8C 'asdress of EEPROM I2cstop 'stop condition Waitms 10 'wait for 10 milliseconds Return duqu: '測量讀取計算子程序 I2cstart I2cwbyte &H91 '讀取地址 I2crbyte CELIANGh , Ack '測量讀數 如果要讀取更多字節,請指定ACK。 I2crbyte CELIANGl , Nack '如果NACK是要讀取的最后一個字節,則指定NACK I2cstop '停止位 dianya_zhuanhuan = CELIANGh * 256 '左移至高8位 dianya_zhuanhuan = dianya_zhuanhuan + CELIANGl '添加低8位 dianya_zhuanhuan = dianya_zhuanhuan * 2.048 dianya_zhuanhuan = dianya_zhuanhuan / 32768 dianya_zhuanhuan = dianya_zhuanhuan / Pga dianya_zhuanhuan = dianya_zhuanhuan *1000 '擴大1千倍以mV單位顯示 Return |