汇编语言的单片机程序设计.ppt
《汇编语言的单片机程序设计.ppt》由会员分享,可在线阅读,更多相关《汇编语言的单片机程序设计.ppt(39页珍藏版)》请在三一办公上搜索。
1、单片机接口技术及应用,单片机接口技术及应用 汇编语言的单片机程序设计,*,应用电子系,3,汇编语言的单片机程序设计,课程目录,一、程序设计概述二、汇编语言的伪指令三、汇编语言的典型程序结构四、汇编语言的子程序设计五、汇编语言实用子程序举例六、几个端口实验的任务书,*,1.延时子程序设计,例:编写10ms延时子程序。(假设晶振频率为12MHZ)D10ms:MOV R5,#10;1usD1ms:MOV R4,#249;1us DL:NOP NOP DJNZ R4,DL;4x249=996us DJNZ R5,D1ms;2us,总循环共(1+996+2)10=9990us RET;2us,*,延时子
2、程序设计要点:,初始化:循环次数赋值循环体次数计算:晶振频率机器周期循环体时间循环次数精确计算:考虑赋值次数与时间,还要考虑进入与返回时间进入时,应注意子程序使用到的寄存器的保护;返回时,无参数带出。多时间延时子程序如何设计?外循环次数参数带入,内循环时间固定。,*,子程序:DLnms:NOPD1ms:MOV R4,#249 DL:NOP NOP DJNZ R4,DL DJNZ R5,D1ms RET;,主程序:MOV R5,#n CALL DLnms,多时间延时子程序调用,*,2.输入设备子程序设计,拨码开关电路设计,拨码开关状态的读取?,设置输入端口,读输入端口,保存输入值,KEYRD:M
3、OV P3,#0FFH MOV A,P3 MOV R5,A RET,*,轻触开关电路设计,轻触开关状态的读取?,设置输入端口,读输入端口,去抖动,保存输入值,*,ANYKEY:MOV P3,#0FFHNOKEY:MOV A,P3 CPL A JZ NOKEY;无键按下 MOV TEMP,P3;有键按下,TEMP为存储器单元,保存结果 CALL D10ms MOV A,P3 CJNE A,TEMP,NOKEY;去抖 MOV R5,A;保存按键 SETB 00H;有键标志 RET,*,例:有二个轻触开关,分别控制二个计数器,每按一次,计数器加1,最大分别加到5与9,又从0开始。编写其子程序。,寄存
4、器资源分配:R3、R4:保存计数值 R5:保存开关值,设计关键点:是否有按键?有按键,是什么键?是否同一次按下的键?,*,按键判断、去抖,ANYKEY:MOV P3,#03HNOKEY:MOV A,P3 ORL A,#0FCH CPL A JZ NOKEY MOV TEMP,A CALL D10MS MOV A,P3 ORL A,#0FCH CPL A CJNE A,TEMP,NOKEY MOV R5,A RET,KEYAGIN:MOV P3,#03HKEYTA:MOV A,P3 ORL A,#0FCH CPL A CJNE A,TEMP,KEYCH SJMP KEYTAKEYCH:NOP R
5、ET,按键释放判断,*,计数控制,COUNTER:MOV A,R5 CJNE A,#01,KEY2CON CJNE R3,#05,CON1ADD MOV R3,#00H SJMP CONOVERCON1ADD:INC R3 SJMP CONOVERKEY2CON:CJNE R4,#09H,CON2ADD MOV R4,#00H SJMP CONOVERCON2ADD:INC R4CONOVER:NOP RET,*,主程序引用:TEMP EQU 30H ORG 0000H LJMP MAIN ORG 00100HMAIN:MOV R3,#00HMOV R4,#00HLOOP:LCALL DISP
6、LCALL ANYKEYLCALL COUNTERLCALL KEYAGIN SJMP LOOP,DISP:MOV A,R3 SWAP A ORL A,R4 MOV P1,A RET,*,问题:1.分析程序工作过程多个子程序调用关系2.如何分解任务(判键去抖计数键盘再次判断显示)3.显示从P1口输出,用发光二极管代替,也可以用带译码的数码实现4.修改程序,将程序修改为二键,先选择需要调整的计数位(可以闪烁显示),再用相同二键分别实现加减功能改变计数值。,*,3.信号处理(运算)子程序设计,例:编写多字节无符号数的减法子程序。设2个多字节无符号数的低字节地址分别存于R0和R1中,低字节在高地址单
7、元。相减后的差存放在减数原来的位置。子程序入口:(R0)=被减数低字节地址;(R1)=减数的低字节地址;(R7)=字节数子程序出口:(R1)=差的高字节地址;,*,程序:ORG 0000H ljmp MAIN ORG 0040HMAIN:MOV R0,#37H MOV R1,#3FH ACALL NSUB SJMP$,NSUB:MOV R7,#3 CLR CNSUB1:MOV A,R0 SUBB A,R1 MOV R1,A DEC R0 DEC R1 DJNZ R7,NSUB1 INC R1 RET END,*,例:利用子程序实现c=a2+b2。设a,b,c分别存于内部RAM的30H,31H,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 单片机 程序设计

链接地址:https://www.31ppt.com/p-5993760.html