;振荡器1mhzr/c
;命令时钟250khz
include
page1macro
bsfstatus,rp0;page1
endm
page0macro
bcfstatus,rp0;page0
endm
cblock0ch
time1,temp
lo_val,hi_val,msn,lsn
digit1,digit2
count,read
ssave,wsave
flags
endc
;==================================
org00
gotoinit
org04
btfssintcon,t0if
gotoend_int
movwfwsave
swapfstatus,w
movwfssave;中断保护
decfcount,f
decfszread,f
gotoint2
calladconv;a/d
movlw.16;
movwfread
int2movfcount,0
btfscstatus,z
bsfflags,0;eot
bcfintcon,t0if
end_intswapfssave,w
movwfstatus;
swapfwsave,f;
swapfwsave,w
retfie;
;==========查表===============
tableaddwfpcl;portb
retlwb’01110111’;0
retlwb’00010100’;1
retlwb’00111011’;2
retlwb’00111110’;3
retlwb’01011100’;4
retlwb’01101110’;5
retlwb’01101111’;6
retlwb’00110100’;7
retlwb’01111111’;8
retlwb’01111100’;9
retlw0
retlw0
retlw0
retlw0
retlw0
retlw0
retlw0
;*********************温度转变******************
lookupaddwfpcl
retlw.99;00
retlw.99;01
retlw.99;02
retlw.99;03
retlw.91;04
retlw.81;05
retlw.73;06
retlw.66;07
retlw.59;08
retlw.52;09
retlw.45;0a
retlw.39;0b
retlw.31;0c
retlw.23;0d
retlw.13;0e
retlw.0;0f
retlw.0;catchfor》f0h
;==========a/d转变值存到temp==========
interpmovflsn,0;初值
swapflsn,w;swap&save
movwfmsn;intow
movlw0fh
andwflsn,f;stripoffupperrubbish
andwfmsn,f;stripoffupperrubbish
movfmsn,0;reload
calllookup;getvalue
movwflo_val;saveit
incfmsn,w;incrementpointer
calllookup;getnextvalue
subwflo_val,w;getdifference&save
movwfhi_val
multaddwfhi_val,f;addtocurrent
decfszlsn,f;countdownonmultiplyloop
gotomult
swapfhi_val,w;divideby16
andlw0fh;extractuppernibble
subwflo_val,w;addlovaluetolovaluetogetresult
return
adconvbsfadcon0,go;startconversion
movlw.5;waitdelay10us
movwftemp
decfsztemp,f;loopforawhile
goto$-1
btfscadcon0,go;testforendofconversion
goto$-1
retlw0
bin_bcdmovwfdigit1;firstdigit
clrfdigit2;seconddigit
tenlopmovlw.10
subwfdigit1,w;findouthowmany10’s
btfscstatus,c
incfdigit2,f
btfscstatus,c
movwfdigit1;remainder1’sleft
btfscstatus,c
gototenlop
return
;=======================================
initclrfportb
clrfporta
clrfadcon0
clrfflags
page1
movlwb’11110011’
movwftrisa
movlwb’10000000’;
movwftrisb;setupportb
movlwb’00000100’;/32
movwfoption_reg
movlwb’00000010’
movwfadcon1
page0
movlwb’00001000’;setupchangeofstateonportb
movwfintcon;towakeup
sleep;shutdown
movlwb’11000001’;seta/dinternalrcclock
;channel0,a/drunning
movwfadcon0;doit
movlw.153;timeoutvalue
movwfcount
movlw.16;intervaltimerreload
movwfread
movlwb’10100000’;setupchangeofstateonportb
movwfintcon;towakeup
calladconv;performa/dconversion
;==================main====================
mainbtfscflags,0;testfortimeout
gotoinit;yessoshutdown
movfadres,0;loadvalue
movwflsn;storeforconversion
callinterp;usinginterpolationmethod
callbin_bcd;convertinto2digits
movfdigit1,0;loadmsb
calltable;convertinto7segmentformat
movwfportb;sendtodisplay
bsfporta,2;enablecharacter
btfsstmr0,6;testbit
goto$-1;loop
bcfporta,2
movfdigit2,0;loadlsb
calltable;convertinto7segmentformat
movwfportb;sendtodisplay
bsfporta,3;enablecharacter
btfsctmr0,6;testbit
goto$-1;loop
bcfporta,3
gotomain
end
e络盟推出全新的 Keysight Infiniivision 1000 X 系列示波器
半导体市场进行战略转移_英特尔、英伟达、MU抢得先机
2018安防大事件回顾 BAT跨界入局安防
为什么要用Serdes?
漫步者Fun Buds评测:纯净外观清音入耳,时刻静享万物声
基于pic单片机测温程序分享
室内led显示屏p2.5是什么意思,led显示屏的型号
蔚来上线 100kWh 电池包:实现 “无热蔓延”
苹果13mini是5g手机吗
SM系列全隔离RS-485收发芯片“全家福”来啦!
基于FPGA的LCoS驱动和图像处理系统设计
区块链技术在广告科技行业发展还需解决五大障碍
曙光分布式存储软件架构实现ParaStor持续迭代升级
机器人和自动化对就业的影响
指纹锁如何设置指纹
程控电源是干什么用的 程控电源保养
LED次级恒流设计
智能水管理怎样来实现
半导体激光器,新崛起的激光器
vivo Z5i手机在官网上架,搭载SDM675处理器