; 定时器/计数器T0溢出中断允许位 SETB TR1 ; 定时器/计数器T1开始定时控制位 SETB TR0 ; 定时器/计数器T0 开始定时控制位 MOV PCON,#00H ;SMOD为0不倍增模式 MOV SCON,#0D0H ;串行口设置为模式3,允许接收 SETB ES ;串行口允许中断 SETB EA ;开总中断允许位 ;以下为定时器/计数器T0中断溢出服务程序 ORG 000BH; 定时器/计数器T0中断入口地址 T0SERVE:CPL P3.4 ; 定时器/计数器T0定时取反P3.4口进行高频调制 RETI ;中断返回 ;以下为串行口中断服务程序,以接收一个字节数据为例,多字节以此类推 ORG 0023H;串行口中断入口地址 SENDSERVE:NOP NOP MOV A,SBUF ;把接收缓冲器的数据送到A寄存器 … ;进行数据处理及其它功能操作 RETI ;中断返回 ;以下为串行口发送程序,以发送一个字节数据为例, 多字节以此类推 COMSEND: MOV A,#DATAH ;把数据送到A寄存器 MOV C,P ;根据A中数据产生的偶校验位送到进位标志位 MOV TB8,C ;送偶校验位到发送的第9位数据 MOV SBUF,A ;送数据到发送缓冲器 JNB TI,$ ;以查询方式等待发送结束 CLR TI ;清发送中断标志位 … ;继续发送或其它功能操作 RET 子程序返回 4 结束语 本设计的最大特点在于省略了脉冲振荡器,而仅仅利用多费率电能表上所带单片机的串行口和2个定时器/计数器,这不仅使多费率电能表在硬件设计上更加简单、成本更加低廉,而且在软件上也更加方便、可靠。同时这种红外通信方式也可以应用在带串行口和定时器/计数器的单片机应用领域。 本文所附 SCH 图 由下下载: http://www.21ic.com/upload-image/pic.Sch
|