AVR汇编百例晋级篇参考程序Word文件下载.docx

上传人:b****0 文档编号:13505756 上传时间:2022-10-11 格式:DOCX 页数:45 大小:36.23KB
下载 相关 举报
AVR汇编百例晋级篇参考程序Word文件下载.docx_第1页
第1页 / 共45页
AVR汇编百例晋级篇参考程序Word文件下载.docx_第2页
第2页 / 共45页
AVR汇编百例晋级篇参考程序Word文件下载.docx_第3页
第3页 / 共45页
AVR汇编百例晋级篇参考程序Word文件下载.docx_第4页
第4页 / 共45页
AVR汇编百例晋级篇参考程序Word文件下载.docx_第5页
第5页 / 共45页
点击查看更多>>
下载资源
资源描述

AVR汇编百例晋级篇参考程序Word文件下载.docx

《AVR汇编百例晋级篇参考程序Word文件下载.docx》由会员分享,可在线阅读,更多相关《AVR汇编百例晋级篇参考程序Word文件下载.docx(45页珍藏版)》请在冰豆网上搜索。

AVR汇编百例晋级篇参考程序Word文件下载.docx

STRT38:

RJMPRST38;

主机从1#,2#,3#,4#分机接收数据块在$1C0-1CF,$1D0-1DF,$1E0-1EF)和$1F0-1FF

.ORG$00B;

RJMPSTRT38

.ORG$00C

RJMPSTRT38;

主机不设串口中断,只以查询接收

.ORG$011

RST38:

LDIR16,12

OUTUBRR,R16;

设波特率:

[BAUDRATE=FCP/16(UBRR+1)]

CLRR15;

初始化分机号

LDIR27,HIGH(DTPINT)

LDIR26,LOW(DTPINT);

发送数据指针(首指$180)

LDIR29,HIGH(DRPINT)

LDIR28,LOW(DRPINT);

接收数据指针(首指$1C0)

NEXTNO:

LDIR16,$18

OUTUCR,R16;

允许UART接收和发送,8位数据模式

INCR15;

指向1#分机

OUTLP:

OUTUDR,R15;

呼分机号,1:

1#/2:

2#/03:

3#/04:

4#...

TSLOP:

INR16,USR

SBRSR16,7

RJMPTSLOP;

分机返回机号?

INR16,UDR

CPR16,R15;

分机号正确返回?

BRNEOUTLP

LDIR16,$1C;

改为9位数据模式TXB8=0

TXLOP:

LDR16,X+

OUTUDR,R16;

向分机发送数据块

TESTL:

INR17,USR

SBRSR17,5

RJMPTESTL;

等待发送完成

CPIR16,$0A

BRNETXLOP;

RXTST:

SBRSR17,7;

RXC=1收到数据

RJMPRXTST;

等待接收分机返回数据块

INR16,UDR

STY+,R16;

存储接收数据

CPIR16,$0A;

分机数据块发完?

BRNERXTST

MOVR16,R15

CPIR16,4;

与分机轮询通讯完毕?

BRNENEXTNO;

未完转对下一分机通信

HH38:

RJMPHH38;

否则踏步(可改为处理分机返回的数据,之后再进行下一个轮询)

.DSEG

.ORG$180

DTPINT:

.BYTE$40

$41$45$65$73$46$42$40$6F$33$44$66$5C$4D$4B$0D$0A

$42$4F$66$78$47$45$44$63$32$48$60$7C$6D$45$0D$0A

$43$56$55$53$4D$4F$40$2E$31$42$67$4C$47$4A$0D$0A

$45$54$59$63$3D$4B$48$2F$35$48$69$3C$77$43$0D$0A

.ORG$1C0

DRPINT:

范例92

多机通讯1#分机程序/晶振4MHZ

.EQUDTPIT1=$180;

(UBRR)=12波特率为19200(REL.ERR.=0.16%)

.EQUDRPNT1=$1C0

STRT39:

RJMPRST39

.ORG$00B

RJMPUARXC;

8535UART接收完成中断

RJMPUATXC;

UART发送完成中断

RST39:

CLRR18;

清除分机被选中(R18,6)和主机数据块接收完毕标志(R18,7)

设波特率[BAUDRATE=4000000/16*(12+1)=19200]

LDIR16,HIGH(DRPNT1)

MOVR8,R16

LDIR16,LOW(DRPNT1)

MOVR9,R16;

r8,r9:

接收数据指针(FIRSTPOINTTO$1C0)

LDIR16,$98;

允许UART中断接收,8位数据模式

OUTUCR,R16

SEI

RXDTS:

SBRSR18,6;

主机呼号已收到(若收到,在R17中)?

RJMPRXDTS

OUTUDR,R17;

返还该机号

TXDON:

SBRSR16,5

RJMPTXDON;

该机号发送完成?

LDIR16,$9C;

允许UART中断接收,9位数据模式,TXB8=0

OUTUCR,R16

RCVBLK:

SBRSR18,7

RJMPRCVBLK;

主机发来数据块已接收完毕?

LDIR16,HIGH(DTPIT1)

MOVR6,R16

LDIR16,LOW(DTPIT1)

MOVR7,R16;

设发送数据指针r6r7,首指$180

LDIR16,$3C;

允许UART中断发送,9位数据模式,TXB8=0

TXDN:

SBICUCR,5

RJMPTXDN;

发送完毕?

RJMPRST39;

:

UART中断接收程序

UARXC:

SBICUSR,4

RETI;

祯错误(主机正与其它分机进行9位数据模式通信),不予接收

INR14,SREG;

保存当前状态

TSTR18

BREQNUMB;

(R18)=0时收到数据,只可能是机号,转去核实

PUSHR16;

否则为主机向本分机发来数据块(9位模式,机号已符合)

PUSHR26

PUSHR27

INR17,UDR;

接收数据

MOVXH,R8

MOVXL,R9;

取接收数据指针

STX+,R17;

转入RAM

MOVR8,XH

MOVR9,XL;

存数据指针

CPIR17,$0A;

是数据块结束符LF?

BRNERSCOM1

SBRR18,$80;

收到完整数据块标志

RSCOM1:

POPR27

POPR26

POPR16

DRETI:

OUTSREG,R14

RETI

NUMB:

取出数据

CPIR17,1;

是1#分机?

2#分机与$02比较/3#分机与$03比较...

BRNEDRETI;

机号不符合,转!

SBRR18,$40;

建机号符合标志

RJMPDRETI

UART中断发送程序

UATXC:

r6r7:

发送数据指针,首指$180

INR16,SREG

PUSHR16

MOVXH,R6

MOVXL,R7;

取出发送指针

LDR16,X+;

取数据,调指针

MOVR6,XH

MOVR7,XL

送入发送寄存器

BRNESDCOM

CBIUCR,5;

发送最后1个字符后,禁止发送寄存器空中断(CLRUDRIE)

LDIR16,HIGH(DRPINT)

LDIR16,LOW(DRPINT)

接收数据指针初始化(POINTTO$1C0)

SDCOM:

OUTSREG,R16

DTPIT1:

DRPNT1:

.BYTE$10

范例93

以中断方式写入EEPROM(仅对8535,8515无此功能),克服查询方式占用过多机时的缺点,

并可在线写入

运作过程特点如下:

(1)主程序初始化时设置EEPROM就绪(ready)中断使能位和中断总使能位

(2)在主程序中写入第一个字节,写入完成后引起就绪中断,其他写入在中断服务中完成

(3)本程序为一写入特例,写入地址为$100--$1FF,可作适当修改(如设块长计数器等)

(4)为防止高优先级中断破坏写入过程,中断服务中不允许中断嵌套

(5)本例为简化程序只以查询写入地址循环作为背景程序,实用时可改为具体的背景序

(6)如能确信当前系统没有EEPROM正在写入,可删除对其进行查询部分.

STWEEP:

LDIR16,HIGH(ramend)

OUTSPH,R16

LDIR16,LOW(ramend)

OUTSPL,R16

SBIEECR,3;

设置EEPROM就绪(ready)中断使能位

SEI;

中断总使能

RJMPSRTW

.ORG$00F

RJMPEEPRDY;

8535EEPROM就绪(ready)中断向量

SRTW:

LDIYH,1

LDIYL0;

EEPROM写入首地址:

$100

LDIXL,$60;

欲写入数据块首地址:

$60

CLRXH

WEEP0:

SBICEECR,1;

当前有EEPROM写入操作,有则等待写入完成

RJMPWEEP0

RCALLWREEP;

写入第一个字节,($60)->

$100,写入完成后,EEWE=0时引发EEPROM就绪中断

INCYL;

调整写入地址指针

HHWEEP:

TSTYL

BRNEHHWEEP

CPIYH,2;

写入地址达到$2

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 小升初

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1