电能计量装置的无线抄表系统
ldi tmp,$d9 ;设置堆栈指针
out spl,tmp
clr tmp ;设置B口、D口为输入且不带上拉
out ddrb,tmp
out ddrd,tmp
out portb,tmp
ldi tmp,2 ;设置定时器分频系数及定时器赋初值
out timsk,tmp ;定时周期为6.4ms,开定时器中断
ldi tmp,timer T
out tccr0,tmp
ldi tmp,$d8 ;允许接收中断和发送中断
out ucr,tmp
ldi tmp,baud ;设置波特率为9600baud
out ubrr,tmp
ldi tmp,watchT ;设置看门狗定时器的周期及初值
out wdtcr,tmp
ldi tmp,$0a ;设置模块比较器工作方式
out acsr,tmp
ldi r26,address ;给单片机赋初始地址
ldi tmp,$2d
st x+,tmp
ldi tmp,$d0
st x+,tmp
ldi tmp,$77
st x+,tmp
ldi tmp,$07
st x+,tmp
ldi tmp,$02
st x,tmp
ldi r26,figa0 ;清所有标志位
clr tmp
st x+,tmp
st x,tmp
sei ;开全局中断
2.定时器中断服务程序
定时器中断服务程序主要是测量各电表的脉冲数。由于电表输出脉冲宽度为80ms,其误差为±20%,即最窄脉冲宽度约为64ms,最宽脉冲宽度约为96ms。因而本系统设计的定时时间为6.4ms,为了抗以免发生脉冲误计,采用了数字滤波的方法,要求脉冲输入的引脚电平连续保持10次为高电平时才计1次脉冲,避免了窄脉冲的干扰引起的误计。
3.串行通信接收和发送中断服务程序
串行通信的接收中断和发送中断服务程序主要完成单片机和上位机之间的数据交换。其中接收中断服务程序主要是接收从上位机传来的
《电能计量装置的无线抄表系统(第2页)》