ImageVerifierCode 换一换
格式:DOCX , 页数:45 ,大小:36.23KB ,
资源ID:13505756      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/13505756.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(AVR汇编百例晋级篇参考程序Word文件下载.docx)为本站会员(b****0)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、STRT38: RJMP RST38 ;主机从1#,2#,3#,4#分机接收数据块在$1C0-1CF,$1D0-1DF,$1E0-1EF)和$1F0-1FF .ORG $00B ; RJMP STRT38 .ORG $00C RJMP STRT38 ;主机不设串口中断,只以查询接收 .ORG $011RST38: LDI R16,12 OUT UBRR,R16 ;设波特率:BAUD RATE=FCP/16(UBRR+1) CLR R15 ;初始化分机号 LDI R27,HIGH(DTPINT) LDI R26,LOW(DTPINT);发送数据指针(首指$180) LDI R29,HIGH(DR

2、PINT) LDI R28,LOW(DRPINT);接收数据指针(首指$1C0)NEXTNO: LDI R16,$18 OUT UCR,R16 ;允许UART接收和发送,8位数据模式 INC R15 ;指向1#分机OUTLP: OUT UDR,R15 ;呼分机号,1:1#/2:2#/03:3#/04:4#.TSLOP: IN R16,USR SBRS R16,7 RJMP TSLOP ;分机返回机号? IN R16,UDR CP R16,R15 ;分机号正确返回? BRNE OUTLP LDI R16,$1C ;改为9位数据模式 TXB8=0TXLOP: LD R16,X+ OUT UDR,R

3、16 ;向分机发送数据块TESTL: IN R17,USR SBRS R17,5 RJMP TESTL ;等待发送完成 CPI R16,$0A BRNE TXLOP ;RXTST: SBRS R17,7 ;RXC=1 收到数据 RJMP RXTST ;等待接收分机返回数据块 IN R16,UDR ST Y+,R16 ;存储接收数据 CPI R16,$0A ;分机数据块发完? BRNE RXTST MOV R16,R15 CPI R16,4 ;与分机轮询通讯完毕? BRNE NEXTNO ;未完转对下一分机通信HH38: RJMP HH38 ;否则踏步(可改为处理分机返回的数据,之后再进行下一个

4、轮询) .DSEG .ORG $180DTPINT:.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 $1C0DRP

5、INT:范例92多机通讯1#分机程序/晶振4MHZ.EQU DTPIT1=$180 ;(UBRR)=12 波特率为19200(REL.ERR.=0.16%).EQU DRPNT1=$1C0STRT39: RJMP RST39 .ORG $00B RJMP UARXC ;8535UART接收完成中断 RJMP UATXC ;UART发送完成中断RST39: CLR R18 ;清除分机被选中(R18,6)和主机数据块接收完毕标志(R18,7)设波特率BAUD RATE=4000000/16*(12+1)=19200 LDI R16,HIGH(DRPNT1) MOV R8,R16 LDI R16,L

6、OW(DRPNT1) MOV R9,R16 ;r8,r9:接收数据指针(FIRST POINT TO $1C0) LDI R16,$98 ;允许UART中断接收,8位数据模式 OUT UCR,R16 SEIRXDTS: SBRS R18,6 ;主机呼号已收到(若收到,在R17中)? RJMP RXDTS OUT UDR,R17 ;返还该机号TXDON: SBRS R16,5 RJMP TXDON ;该机号发送完成? LDI R16,$9C ; 允许UART中断接收,9位数据模式,TXB8=0 OUT UCR,R16 RCVBLK: SBRS R18,7 RJMP RCVBLK ;主机发来数据块

7、已接收完毕? LDI R16,HIGH(DTPIT1) MOV R6,R16 LDI R16,LOW(DTPIT1) MOV R7,R16 ;设发送数据指针r6r7,首指$180 LDI R16,$3C ;允许UART中断发送,9位数据模式,TXB8=0TXDN: SBIC UCR,5 RJMP TXDN ;发送完毕? RJMP RST39 ; :UART中断接收程序UARXC: SBIC USR,4 RETI ;祯错误(主机正与其它分机进行9位数据模式通信),不予接收 IN R14,SREG ;保存当前状态 TST R18 BREQ NUMB ;(R18)=0时收到数据,只可能是机号,转去核

8、实 PUSH R16 ;否则为主机向本分机发来数据块(9位模式,机号已符合) PUSH R26 PUSH R27 IN R17,UDR ;接收数据 MOV XH,R8 MOV XL,R9 ;取接收数据指针 ST X+,R17 ;转入RAM MOV R8,XH MOV R9,XL ;存数据指针 CPI R17,$0A ;是数据块结束符LF? BRNE RSCOM1 SBR R18,$80 ;收到完整数据块标志RSCOM1: POP R27 POP R26 POP R16DRETI: OUT SREG,R14 RETINUMB:取出数据 CPI R17,1 ;是1#分机?2#分机与$02比较/3#

9、分机与$03比较. BRNE DRETI ;机号不符合,转! SBR R18,$40 ;建机号符合标志 RJMP DRETI UART中断发送程序UATXC:r6 r7:发送数据指针,首指$180 IN R16,SREG PUSH R16 MOV XH,R6 MOV XL,R7 ;取出发送指针 LD R16,X+ ;取数据,调指针 MOV R6,XH MOV R7,XL送入发送寄存器 BRNE SDCOM CBI UCR,5 ;发送最后1个字符后,禁止发送寄存器空中断(CLR UDRIE) LDI R16,HIGH(DRPINT) LDI R16,LOW(DRPINT)接收数据指针初始化(PO

10、INT TO $1C0)SDCOM: OUT SREG,R16DTPIT1:DRPNT1:.BYTE $10范例93以中断方式写入EEPROM(仅对8535,8515无此功能),克服查询方式占用过多机时的缺点,并可在线写入运作过程特点如下:(1)主程序初始化时设置EEPROM就绪(ready)中断使能位和中断总使能位(2)在主程序中写入第一个字节,写入完成后引起就绪中断,其他写入在中断服务中完成(3)本程序为一写入特例,写入地址为$100-$1FF,可作适当修改(如设块长计数器等)(4)为防止高优先级中断破坏写入过程,中断服务中不允许中断嵌套(5)本例为简化程序只以查询写入地址循环作为背景程序

11、,实用时可改为具体的背景序(6)如能确信当前系统没有EEPROM正在写入,可删除对其进行查询部分.STWEEP: LDI R16,HIGH(ramend) OUT SPH,R16 LDI R16,LOW(ramend) OUT SPL,R16 SBI EECR,3 ;设置EEPROM就绪(ready)中断使能位 SEI ;中断总使能 RJMP SRTW .ORG $00F RJMP EEPRDY ;8535 EEPROM就绪(ready)中断向量SRTW: LDI YH,1 LDI YL 0 ;EEPROM 写入首地址:$100 LDI XL,$60 ;欲写入数据块首地址:$60 CLR XHWEEP0: SBIC EECR,1 ;当前有EEPROM写入操作,有则等待写入完成 RJMP WEEP0 RCALL WREEP ;写入第一个字节,($60)-$100,写入完成后,EEWE=0时引发EEPROM就绪中断 INC YL ;调整写入地址指针HHWEEP: TST YL BRNE HHWEEP CPI YH,2 ;写入地址达到$2

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

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