汇编语言单片机程序创新设计ppt课件.ppt

汇编语言单片机程序创新设计ppt课件.ppt

ID:59238264

大小:496.50 KB

页数:38页

时间:2020-09-22

汇编语言单片机程序创新设计ppt课件.ppt_第1页
汇编语言单片机程序创新设计ppt课件.ppt_第2页
汇编语言单片机程序创新设计ppt课件.ppt_第3页
汇编语言单片机程序创新设计ppt课件.ppt_第4页
汇编语言单片机程序创新设计ppt课件.ppt_第5页
资源描述:

《汇编语言单片机程序创新设计ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、单片机接口技术及应用单片机接口技术及应用汇编语言的单片机程序设计应用电子系3汇编语言的单片机程序设计课程目录一、程序设计概述二、汇编语言的伪指令三、汇编语言的典型程序结构四、汇编语言的子程序设计五、汇编语言实用子程序举例六、几个端口实验的任务书2021/7/281.延时子程序设计例:编写10ms延时子程序。(假设晶振频率为12MHZ)D10ms:MOVR5,#10;1usD1ms:MOVR4,#249;1usDL:NOPNOPDJNZR4,DL;4x249=996usDJNZR5,D1ms;2us,总循环共(1+996+2)×10=9990usRET;2us2021/7/28延时子程序设计

2、要点:初始化:循环次数赋值循环体次数计算:晶振频率→机器周期→循环体时间→循环次数精确计算:考虑赋值次数与时间,还要考虑进入与返回时间进入时,应注意子程序使用到的寄存器的保护;返回时,无参数带出。多时间延时子程序如何设计?——外循环次数参数带入,内循环时间固定。2021/7/28子程序:DLnms:NOPD1ms:MOVR4,#249DL:NOPNOPDJNZR4,DLDJNZR5,D1msRET;主程序:……MOVR5,#nCALLDLnms……多时间延时子程序调用2021/7/282.输入设备子程序设计拨码开关电路设计拨码开关状态的读取?设置输入端口读输入端口保存输入值KEYRD:MO

3、VP3,#0FFHMOVA,P3MOVR5,ARET2021/7/28轻触开关电路设计轻触开关状态的读取?设置输入端口读输入端口去抖动保存输入值2021/7/28ANYKEY:MOVP3,#0FFHNOKEY:MOVA,P3CPLAJZNOKEY;无键按下MOVTEMP,P3;有键按下,TEMP为存储器单元,保存结果CALLD10msMOVA,P3CJNEA,TEMP,NOKEY;去抖MOVR5,A;保存按键SETB00H;有键标志RET2021/7/28例:有二个轻触开关,分别控制二个计数器,每按一次,计数器加1,最大分别加到5与9,又从0开始。编写其子程序。寄存器资源分配:R3、R4:

4、保存计数值R5:保存开关值设计关键点:是否有按键?有按键,是什么键?是否同一次按下的键?2021/7/28按键判断、去抖ANYKEY:MOVP3,#03HNOKEY:MOVA,P3ORLA,#0FCHCPLAJZNOKEYMOVTEMP,ACALLD10MSMOVA,P3ORLA,#0FCHCPLACJNEA,TEMP,NOKEYMOVR5,ARETKEYAGIN:MOVP3,#03HKEYTA:MOVA,P3ORLA,#0FCHCPLACJNEA,TEMP,KEYCHSJMPKEYTAKEYCH:NOPRET按键释放判断2021/7/28计数控制COUNTER:MOVA,R5CJNEA,

5、#01,KEY2CONCJNER3,#05,CON1ADDMOVR3,#00HSJMPCONOVERCON1ADD:INCR3SJMPCONOVERKEY2CON:CJNER4,#09H,CON2ADDMOVR4,#00HSJMPCONOVERCON2ADD:INCR4CONOVER:NOPRET2021/7/28主程序引用:TEMPEQU30HORG0000HLJMPMAINORG00100HMAIN:MOVR3,#00HMOVR4,#00HLOOP:LCALLDISPLCALLANYKEYLCALLCOUNTERLCALLKEYAGINSJMPLOOPDISP:MOVA,R3SWAPA

6、ORLA,R4MOVP1,ARET2021/7/28问题:1.分析程序工作过程——多个子程序调用关系2.如何分解任务(判键—去抖—计数—键盘再次判断—显示)3.显示从P1口输出,用发光二极管代替,也可以用带译码的数码实现4.修改程序,将程序修改为二键,先选择需要调整的计数位(可以闪烁显示),再用相同二键分别实现加减功能改变计数值。2021/7/283.信号处理(运算)子程序设计例:编写多字节无符号数的减法子程序。设2个多字节无符号数的低字节地址分别存于R0和R1中,低字节在高地址单元。相减后的差存放在减数原来的位置。子程序入口:(R0)=被减数低字节地址;(R1)=减数的低字节地址;(R7

7、)=字节数子程序出口:(R1)=差的高字节地址;2021/7/28程序:ORG0000HljmpMAINORG0040HMAIN:MOVR0,#37HMOVR1,#3FHACALLNSUBSJMP$NSUB:MOVR7,#3CLRCNSUB1:MOVA,@R0SUBBA,@R1MOV@R1,ADECR0DECR1DJNZR7,NSUB1INCR1RETEND2021/7/28例:利用子程序实现c=a2+b2。设a,b,c

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。