历史上的今天
今天是:2024年09月07日(星期六)
2020年09月07日 | bascom avr版热电偶TCK+AD8495+ADC测温
2020-09-07 来源:51hei

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"
史海拾趣
|
近些年,两种防盗产品普及的速度都比较快,一是防盗门,“美新”“盼盼”“步阳”等一类防盗门曾占用中央电视台的黄金时段做广告;二是楼宇对讲电控防盗门(分可视和不可视两种)。从这种情况看,人们在家庭防盗问题上看重的是一个“门”字。但是, ...… 查看全部问答> |
|
恒润科技招实习生 恒润科技成立于1998年,是一家快速发展的高科技公司,总部设在北京, 在上海、成都、长春设有办事处。公司致力于国防电子和汽车电子相关技术的研发,在国防电子方面,公司侧重于控制与制导技术以及射频和信号处理技术的研究,其 ...… 查看全部问答> |
|
对于印刷电路板的布局排列并没有统一固定的模式,每个设计者都可以根据具体情况和习惯方法进行工作,但是一些基本原则是应遵循的。 ①印刷电路板最经济的形状是矩形或正方形。一般应避免设计成异形,以尽可能地降低成本。 ②如果印刷电 ...… 查看全部问答> |
|
EVC中picturebox绘图后刷新的问题,在VC6.0下没问题,EVC4.0下即使强制重绘也不显示,请各位大侠帮忙看看。 软件通过串口读取数据,然后根据数据绘制图形。由于界面大小受限制,所以PictureBox有时会不显示,显示时就绘制图形。简单代码如下: void CZongHeCeLiang::OnPaint() { CPaintDC cdc(this); // device context for painting CPaintDC dc(&m ...… 查看全部问答> |
|
用PB做好的系统,插了个键盘,完全没反应,鼠标就可以用,没问题,Build系统的时候已经选择了USB HID和它的子项USB HID Keyboard and Mouse这两项了 上网查了查资料,如下面,大致说只有US英语,日语,韩语的操作系统才支持键盘,通过他们的Driver ...… 查看全部问答> |
|
本帖最后由 dontium 于 2015-1-23 12:46 编辑 稳压电源电路分为线性稳压电源,集成稳压电源,晶体管稳压电源,交流稳压电源 一:由7805,7905,7812组成的特殊的线性稳压电源 如图所示为一种特殊的电源电路。该电路虽然简单,但可以从两个相同的次 ...… 查看全部问答> |




