;******** 本程序寄存器变量定义:
.def USARTAI_TEMP = r16 ;暂存寄存器
.def USARTAI_TEMP2 = r17 ;暂存寄存器2
.def USARTAI_TEMP3 = r18 ;暂存寄存器3
;******** 本程序常数定义:
.equ USARTAI_TCOMI = $e0 ;发送命令作业标志值(11100000)
.equ DataUPD_TALWI = $c0 ;允许更新发送数据标志值(11000000)
.equ USARTAI_TEndI = $f0 ;全部数据发送结束标志值(11110000)
.equ USARTAI_RCOMI = $07 ;接收命令作业标志值(00000111)
.equ DataUPD_RALWI = $03 ;允许处理接收数据标志值(00000011)
.equ USARTAI_RUPDI = $0a ;接收作业己更新标志值(00001010)
.equ USARTAI_REndI = $0f ;全部数据接收结束标志值(00001111)
.equ USARTAI_ENALWI = $10 ;允许 USART 发生收发错误次数值(16次)
.equ USARTAI_CMATNI = $0a ;收发命令的字符串总长度数值(10个)
.equ USARTAI_CMANI = $03 ;收发命令的有效字符串长度数值(3个)
;******** 程序指令代码清单:
;*******************************************************************************
;*
;* USART 异步通信中断接收和发送初始化子程序 - “USART_AINT_INI”
;*
;* 说明:
;* 本子程序用于初始化 USART 异步中断接收和发送通信。本初始化子程序只打开了
;* USART 的中断接收功能,没有打开中断发送功能。
;* 本子程序只需在主程序中运行一次即可。除非释放 RXD 与 TXD 引脚功能作为其
;* 他用途,如要再使用 USART 通信则需在主程序中再运行一次本子程序。
;*
;*******************************************************************************
USART_AINT_INI:
push ZL ;压入寄存器中的数值到堆栈
push ZH
in ZL,SREG ;压状态寄存器中的标志值到堆栈
push ZL
ldi ZL,USARTAI_TEndI ;置发送作业全部结束标志值
sts USARTAI_TXEnd,ZL
ldi ZL,USARTAI_TCOMI ;置发送命令作业标志值,首次发送一定为
sts USARTAI_TXCOM,ZL ;请求向对方发送或允许对方发送命令
clr ZL ;清除允许更新发送数据标志
sts DataUPD_TXALW,ZL
ldi ZL,USARTAI_REndI ;置接收作业全部结束标志值
sts USARTAI_RXEnd,ZL
ldi ZL,USARTAI_RCOMI ;置接收命令作业标志值,首次接收一定为
sts USARTAI_RXCOM,ZL ;对方请求发送或对方允许发送命令
clr ZL ;清除接收作业己更新标志
sts USARTAI_RXUPD,ZL
clr ZL ;清除允许处理接收数据标志
sts DataUPD_RXALW,ZL
clr ZL ;清除USART 发生收发错误次数计数器值
sts USARTAI_ERRNum,ZL
clr ZL ;清除定时器/计数器0溢出次数计数器值
sts USARTAI_T0VNum,ZL
cli ;禁止全局中断
ldi ZL,USARTAI_UBRRL ;设置通信波特率
out UBRRL,ZL
ldi ZL,USARTAI_UBRRH
out UBRRH,ZL
ldi ZL,(1<<URSEL)|(1<<UPM1)|(1<<UPM0)|(1<<UCSZ1)|(1<<UCSZ0)
;设置帧格式: 8 个数据位, 1 个停止位,
;并使能奇校验。USART 异步模式
; ldi ZL,(1<<URSEL)|(1<<UPM1)|(1<<UPM0)|(1<<USBS)|(1<<UCSZ1)|(1<<UCSZ0)
;设置帧格式: 8 个数据位, 2 个停止位,
;并使能奇校验。USART 异步模式
out UCSRC,ZL
ldi ZL,(1<<RXEN)|(1<<TXEN)|(1<<RXCIE)
out UCSRB,ZL ;接收器与发送器使能和接收结束中断使能
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] 下一页
本文关键字:通信 程序 AVR单片机,单片机-工控设备 - AVR单片机