电能计量装置的无线抄表系统

[09-12 17:46:26]   来源:http://www.88dzw.com  单片机学习   阅读:8737

文章摘要:二、系统软件设计本系统的软件主要包括二大部分:一是数据采集部分,是以AT90S2313单片机与核心的汇编语言的设计;二是PC机通信软件的设计部分。这里要介绍AT90S2313单片机的汇编语言设计问好。其软件设计思想是采用模块化编程,即系统的总体功能由各子程序完成。主要的子程序有定时器中断、数据算是和接收发送中断服务程序等。1.单片机初始化部分主程序部分首先对单片机进行初始化,其包括堆栈指针设置;端口的工作方式设置;定时器的预分频系数和初值设置;串行通信的控制寄存器和波特率寄存器的设置;看门狗定时器的周期及初值设置;单片机的地址设置;开全局中断等,其流程图如图2所法。初始化子程序如下:start

电能计量装置的无线抄表系统,标签:单片机开发,单片机原理,单片机教程,http://www.88dzw.com

二、系统软件设计

本系统的软件主要包括二大部分:一是数据采集部分,是以AT90S2313单片机与核心的汇编语言的设计;二是PC机通信软件的设计部分。这里要介绍AT90S2313单片机的汇编语言设计问好。其软件设计思想是采用模块化编程,即系统的总体功能由各子程序完成。主要的子程序有定时器中断、数据算是和接收发送中断服务程序等。

1.单片机初始化部分

主程序部分首先对单片机进行初始化,其包括堆栈指针设置;端口的工作方式设置;定时器的预分频系数和初值设置;串行通信的控制寄存器和波特率寄存器的设置;看门狗定时器的周期及初值设置;单片机的地址设置;开全局中断等,其流程图如图2所法。初始化子程序如下:

start:

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.串行通信接收和发送中断服务程序

串行通信的接收中断和发送中断服务程序主要完成单片机和上位机之间的数据交换。其中接收中断服务程序主要是接收从上位机传来的各种命令,发送中断服务程序是单片机对上位机的各种命令的响应,如上位机叫单片机发送地址等。接收和发送中断服务程序流程图如图3和图4所示。

上一页  [1] [2] [3]  下一页


Tag:单片机学习单片机开发,单片机原理,单片机教程单片机学习

《电能计量装置的无线抄表系统》相关文章

分类导航
最新更新
热门排行