欢迎来到第壹文秘! | 帮助中心 分享价值,成长自我!
第壹文秘
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 第壹文秘 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    AVR汇编百例 - 晋级篇 - 参考程序.docx

    • 资源ID:1205305       资源大小:106.70KB        全文页数:32页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    AVR汇编百例 - 晋级篇 - 参考程序.docx

    :范例91.ORG0.EQUDTPINT-S180.EQUDRPINT=SICOOUTUCR.R16;允许UART接收和发送.8位数据模式INCK15;指向1#分机OUT1.P:OUIrUDR,R15:呼分机号,1:12:2S/03:3«/04TS1.OP:INR16,USRSBRSR16.7RJMPTS1.OP;分机返回机号?INR16,UDRCPR16,R15:分机号正确返回?BRNEOUT1.P1.DIR16JIC:改为9位数据模式TXB8=0OUTUCR,R16TX1.OP:1.DR16,X+OUTUDR.R16:向分机发送数据块R1.6,S18TBST1.:INR17.1.SR;以下提供几个补充参考程序,都带有详细说明和指令注称.它们是主从多机遹讯程序,采;用中断方式写入EEPMM直接对晶振分频产生0.1秒和秒号的精确定时程序,以及RS-232/;RST85标准转换程序,AVR频率计程序,申行时铺口历芯片OS1302读写,共现时法的PUM输出、;猿入捕获测周期程序和定时信号获取,以及DS18B20测湿等程序.多机通讯主要用8和9(数;据模式区分被选分机(9位)和其它分机(8位),到达主机只与被选分机交换数据之目的.以中;断方式写Ef-TROM的优点是可与系统运行同时进行(即在规写入),占用很少机时.:精确定时用定时/计数器1(或0)直接对MeU主频(不设分领)设定时间常数,分频精度可到达;1HZ.RS-232/RS-185标准转换程序中AVR不作中转,使两种器件相关脚位也接连接.以TCNTO;定时,以TO引脚接收RS232数楙.以收到RS232字符起始位下跳沿或结束符($03)为依据.;控制切换RST85的收发使能.(系统中的主AVR可兼做对通信标准之监控转换,即只是在完成;主要工作任务的同时附带'进行),具体过程不再细述.申行时铺口历芯片DS1302具体积小,;可擢性高,与单片机连接方便等优点.;以下程序请参看有关章节或程序中的注择;多机通讯主机程序/晶振4WIZ:以8/9位数据模式区分被选/未被选分机通讯:IJBRR,12波特率19200(RE1.ERR.-0.16%):主机对I瓦2W,3#,,信分机发送数据块在S180T8F,$190-19E$1AOTAD和S1.BO-IBFSTRT38:RJMPRST38:主机从1.a,2»,3*,,信分机接收数据块在S1.CO-ICF,$1DO-1DF,$1EoTEF)和$1FOTFF.ORG$00BRJMPSTRT38.ORG$00CRJMPSTRT38:主机不设申口中断,只以杳询接收.ORG$011RST38:1.DIR16,12OUTUBRR,R16:设波特率:BAUDKATE=FCP/16(UBRR+1)C1.RR15初始化分机号1.DIR27,HIGH(DTPINT)1.DIR26.1.OW(DTPIND:发送数据指针(首指$180)1.1)1R29.HIGH(DRPINT)1.DIR28.1.OW(DRPIND:接收数据指针(首指$1CO)NEXTNO:1.DISBRSRJMPR17.5TEST1.:等待发送完成CPIR1.6,SOABRNETX1.OP*RXTST:INR17.USRSBRSR17,7:RXC=I收到数据RJMpRXTST;等待接收分机返回数据块INR16,UDRSTY+.R16:存储接收数据CPIR16,30A:分机数据块发完?BRNERXTSTMOVR16,R15CPIR16.4;与分机轮询通讯完毕?BRNENEXW:未完转对下一分机通信H38:RJMpIIH38;否则踏步(可改为处理分机返回的数据,之后再进行下一个轮询.DSEG.ORG$180DTPIW:.BYTE$40;$11$45$65$73$46$42$10S6FS33$的$66$5CSWSIB$0DSOA:$42S1.F$66$78$47$45$44$63$32$48$60$7C$6D$45$0DSOA:$43$56$55$53$4D$4F$40S2ES31$42$67$4C$47$4A30DSOA;$15$54$59$63$3D$4B$48S2F635$48$69$3C$77$43$0DSOA.ORGS1.CODRPINT:.BYTE$10;范例92.ORG0:多机通讯IU分机程序/品版4MIIZ.EQUDTPIT1.-S180:<UBRR)=12波特率为19200(RE1.ERR.-0.16%).EQUDRpN门=$ICOSTRT39:IUMPRST39.ORG$00BRJMP1.iARXC:85351JART接收完成中断-ORGSOOCRJMPUATXCIUART发送完成中断,ORG$011RST39:C1.RR18:去除分机被选中(R18.6)和主机数捌块接收完毕标志(R18.7)1.DIR16.12OUT1.三R,R16;设波特率IBAUDRATE=I(X)000016*(12+1)=192001.DIR16,High(DRPNTI)MOVR8.R161.1)1Riei1.OW(DRPNT1.)MOVR9,R16;r8,r9:接收数据指针(FIRSTPOINTTOS1.CO)1.DIR16,$98;允许UART中断接收,8位数据模式OUTUCR,R16SEIRXDTS:SBRSR18.6;主机呼号已收到(若收到,在R17中?RJMPRXDTSOUTIW,R17:返还该机号TXDON:INR16,ISRSBRSR16,5RJMPTXD(N;该机号发送完成?1.DIRI6,$9C;允许URRT中断接收,9位数据模式,TXB8=0OUTIICR,R16RCVB1.K:SBRSR18.7RJM,RCVB1.K:主机发来数据块已接收完毕?1.DIR16,HIGH(DTPIT1)MOVR6,R161.DIR16.1.三(DTPIT1.)MOVR7,R16;设发送数据指针M",首指$1801.OIR16.53C;允许UART中断发送,9位数据模式,TXBS=OOUTUCR,R16TXDN:SBICUCR.5RJMI,TXDN:发送完毕?RJMPRST39::UART中断接收程序1.RXC:SBIC1.SR14RETiINR14,SREG:祯错误(主机正与其它分机进行9位数据模式通信>,不予接收;保存当前状态TSTR18BREQN1.MIi:(R18)=0时收到数据,只可能是机号,转去核实PUSHR16;否则为主机向本分机发来数据块(9位模式,机号已符合)PUSHR26PUSHR27INK17.1.'DR:接收数据MOVXH,R8MOVX1.R9;取接收数据指针STX÷,R17:转入RAYMOVR8,X1.1.MOVR9,X1.;存数据指针CPIR1.7,$OA:是数据块结束符1F?BRNERSCOM1.SBRR18.$80:收到完整数据块标志RSCOM1.:POPR27POPR26POPR16DRETI:OUTSREG1RHRETIN1.三:INR17,IW:取出数据CP1.R17.1:是体分机?2#分机与$02比较/3#分机与603比较.BRNEDRETI;机号不符合,转!SBRR18.340;也机号符合标志RJMPDKETI:UART中断发送程序UATXC:PUSHR16;r6r7:发送数据指针,首指$180INR16.SREGPUSHR16PUSHR26PUSHR27MOVM1.R6MOVX1.,R7:取出发送指针1.DR16,X+;取数据,调指针MOVR6,XHMOVR7.X1.OUTUDR,R16:送入发送存放牌CPIRI6,$0ABRNESDCOMCBIUCR.5:发送最后1个字符后,禁止发送存放潺空中断(C1.RIDRIE)1.DIR16,I1.1.GII(DKPIfJT)MovR8,R161.DIR16,1.0W(>RINT)MOVR9,R16;接收数据指针初始化(POINTTOS1.CO)SDCOM:POPR27POPR26POPR16OUTSREG.R16POPR16RETI.DSEG.ORG$180DTPITk-BYTE$10-ORGS1.CODRPNT1:.BYTE$10;S11S15$65$73$46$42$40$61:$33$44$66$5C$4D$4BSODS0;范例93:以中断方式写入EEPRoM(仅对8535.8515无此功能),克服查询方式占用过多机时的跳点.;并可在处写入;运作过程特点如下:;主程序初始化时设置EEPROM就绪(ready)中断使能位和中断总使能位;(2)在主程洋中写入第一个字节,写入完成后引起就绢中断,其他写入在中断效劳中完成;(3)本程序为一写入特例.写入地址为$100-$IFF,可作适当修改(如设块长计数器等)MQ为防止离优先级中断破坏写入过程,中断效劳中不允许中断嵌套;(5)本例为简化程序只以查询写入地址循环作为背景程序,实用时UJ改为具体的背景序;(6)如能确信当前系统没有EEPROM正在写入,可删除对其进行查询局部.SI1.I-EP:1.1)1R16,IIIGH(amend)OUTSP1.1.1R161.DIR16.1.OW(ra«?nd)OUTSP1.RI6SBIEECR,3;设置EEPROM就绪(ready)中断使能位SEI:中断总使能RJMPSKIW.ORG$00FRJMPEEPRDY;8535EEPROM就绪(ready)中断向嵬SRTf:1.DIYIU1.1)1Y1.0;EEPROM写入首地址:$1001.DIX1.,$60;欲写入数据块首地址:S60C1.RXIIWEEPO:SBICEECR,1:当前有EEPRoM写入操作,有则等待写入完成RJMPWEEPORCA1.1.WREEP;写入第一个字节,($60)->5100,写入完成后,EEWE=O时引发EEPRoY就绪中断INCY1.;调整写入地址指针HHWEEP:TSTY1.BRNEHHWEEPCP1.

    注意事项

    本文(AVR汇编百例 - 晋级篇 - 参考程序.docx)为本站会员(p**)主动上传,第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知第壹文秘(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 1wenmi网站版权所有

    经营许可证编号:宁ICP备2022001189号-1

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第壹文秘网,我们立即给予删除!

    收起
    展开