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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

bascom avr版熱電偶TCK+AD8495+ADC測溫

[復制鏈接]
跳轉到指定樓層
樓主
本帖最后由 taotie 于 2020-9-3 13:13 編輯



rem Main.bas file generated by New Project wizard
rem
rem Created:   周二 8月 25 2020 TAOTIE
rem Processor: ATmega8
rem Compiler:  BASCOM-AVR

rem Write your code here

$RegFile = "m8def.dat"
$Crystal = 8000000
'$Baud = 19200

$HWstack = 40
$SWstack = 8
$FrameSize = 40

Declare Sub Adc_isr()
'配置單模式和自動預分頻器設置

'單模式必須與GETADC()函數一起使用

'預分頻器將內部時鐘除以2、4、8、16、32、64或128

'因為ADC需要一個50-200千赫的時鐘

'自動功能將選擇可能的最高時鐘頻率
Config Adc = Free , Prescaler = Auto , Reference = avcc                               'Internal
'*******************OLED配置*********************************************************************************
Config Scl = Portc.5                                                           ' 用I2C引腳Scl = Portc.5 ,Sda = Portc.4
Config Sda = Portc.4
Config Twi = 400000                                                             ' i2c 的速度

I2cinit
$lib "i2c_twi.lbx"                                                                        ' 不使用模擬I2c的軟件,而是使用twi
$lib "glcdSSD1306-I2C.lib"                                                        ' 用glcdSSD1306-I2C庫替換默認庫要添加在bascom avr庫中

#if _build < 20784
Dim ___lcdrow As Byte , ___lcdcol As Byte                                ' 老版本變量格式進行編譯
#endif

Config Graphlcd = Custom , Cols = 128 , Rows = 64 , Lcdname = "SSD1306"   '配置圖形顯示器

'*********現在給芯片供電*********************
On ADC Adc_isr Nosave    'Nosave指定的中斷發生時執行子程序。
Enable ADC
Enable Interrupts


'*******變量***********************
Dim W As long , Channel As Byte
Dim i As long
Dim d As string*5
Channel = 0


'************主程序************************
Do
  Channel = 0                    '現在從通道0讀取A/D值
  '閑置將使微型計算機進入睡眠狀態。.
  '一個中斷就會喚醒微型計算機.

Start ADC
   Idle
nop
nop
Stop ADC
waitms 10
i=w*5000                                 '分度轉換
i=i/1023
i=i-1250
i=i/5
'**********誤差校準*************
i=i-1
if i>10 then i=i+1
if i>73 then i=i-1
if i>124 then i=i-1
if i>139 then i=i+1
if i>=183 then i=i+1
if i>221 then i=i-1
if i>226 then i=i+1
if i>267 then i=i-1
if i>269 then i=i+1
if i>296 then i=i-1
if i>314 then i=i+1'太煩。。。后面不管了
'************************************
d=str(i)                            '數值轉字符串
d= format(d, "+000")            '輸出結果格式化------覆蓋顯示模式避免顯示跳動

  Setfont Font12x16
  Lcdat 2, 2 , "Channel " ;": "; Channel
Lcdat 6, 2 ,"value";": "; d
Loop
End

Sub Adc_isr()
  $asm
    push r26                               '在堆棧上推送寄存器      STACK ← Rr
    push r27
    push r24
    in r24,SREG                                       '進入 Por               Rd ← P
    push r24
    push r25
  $End Asm

  W = GetADC(Channel)

  $Asm
    pop r25                                     '從堆棧彈出寄存器             Rd ← STACK
    pop r24
    Out SREG,r24
    pop r24
    pop r27
    pop r26
  $end Asm
End Sub


$include "../Font12x16.font"   

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产999精品久久久 午夜天堂精品久久久久 | 911网站大全在线观看 | 日本不卡在线视频 | 影视一区| 亚洲乱码一区二区三区在线观看 | 欧美二级 | 国产高清视频在线观看 | 亚洲国产网址 | 岛国毛片 | 国产精品久久午夜夜伦鲁鲁 | 国产激情视频网站 | 日操操| 日韩1区 | 国产精品视频500部 a久久 | 国产精品国产a级 | 久久久久久久久久久久久久国产 | 午夜久久久久久久久久一区二区 | 国产综合视频 | 国产一级一级毛片 | 欧美日韩一区二区在线 | 国产成人精品综合 | 色偷偷888欧美精品久久久 | 欧美精品成人 | 激情网站在线观看 | 一区二区免费看 | 日韩成年人视频在线 | 日韩欧美中文 | 一区二区三区精品视频 | 国产精品欧美一区二区三区不卡 | 欧美成人精品欧美一级 | 中文字幕在线播放不卡 | 欧美日韩亚洲一区 | 国产精品一区二区三区在线 | 免费在线观看一区二区三区 | 麻豆国产一区二区三区四区 | 欧美日韩亚洲国产 | 久久99精品久久久久久 | 成人在线中文字幕 | 欧美激情黄色 | 日韩一区中文字幕 | 黄色毛片在线看 |