电能计量装置的无线抄表系统
[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所示。
《电能计量装置的无线抄表系统》相关文章
- › 上海贝岭电能计量芯片顺利通过鉴定
- › 电能计量装置的无线抄表系统
- 在百度中搜索相关文章:电能计量装置的无线抄表系统
- 在谷歌中搜索相关文章:电能计量装置的无线抄表系统
- 在soso中搜索相关文章:电能计量装置的无线抄表系统
- 在搜狗中搜索相关文章:电能计量装置的无线抄表系统