MOVLW 14
MOVWF CNT0;counter0 CNT0=14
TS_0:
BSF RA,TXD 1TXD=1(RA1=1)
RRF DT1,F 1 循环右移DATA1(AD数据高8bit)
RRF DT0,F 1 循环右移DATA0(AD数据低8bit)
MOVLW 11
SKPC ;(如果DT0最高位为1则跳过下一步)
MOVLW 4
3
MOVWF CNT1 1 高电平长度(RRF DT0,F如果有进位(DT0最低位为1)则CN1=11,如果没进位(DT0最低位为0)则CN1=4)
TS_1:
DECFSZ CNT1,F
GOTO TS_1 3*CNT1(延时)
NOP 7+3*CNT1=19 OR 40
BCF RA,TXD 1(RA1=0)
MOVLW 4 1
MOVWF CNT1 1(CNT1=4)
TS_2:
DECFSZ CNT1,F
GOTO TS_2 3*CNT1(延时CNT1=4)
DECFSZ CNT0,F 1
GOTO TS_0 2(循环发送CNT0=14次)
6+3*CNT1=18
RETLW 0
通过RA1发送14位({DATA1,DATA0})
为1的话RA1高电平为11个延时慧银低电平4个延时 ▔▔▔▔▔▔▔▔▔▔▔|▁▁▁▁(波形)
为0的绝碧李话RA1高电平为4个延时低电平4个延时并迟 ▔▔▔▔|▁▁▁(波形)
你测量的是什么信号啊?单片机的供电问不问啊?
不要急着用程序滤波,先确定问题的本质。
即便是滤波也要确定有用信号的特征才能确定滤波器的类型和参数啊。
如果测量的是直流电平(人工给族巧祥定后就不再变化宽配)的可以直接使用最近若兆搏干次的采样值的算术平均数就好了(固定的采样间隔时间,比如0.1秒)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)