单片机与嵌入式系统ppt课件

上传人:我*** 文档编号:148196794 上传时间:2020-10-17 格式:PPT 页数:53 大小:2.46MB
返回 下载 相关 举报
单片机与嵌入式系统ppt课件_第1页
第1页 / 共53页
单片机与嵌入式系统ppt课件_第2页
第2页 / 共53页
单片机与嵌入式系统ppt课件_第3页
第3页 / 共53页
单片机与嵌入式系统ppt课件_第4页
第4页 / 共53页
单片机与嵌入式系统ppt课件_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《单片机与嵌入式系统ppt课件》由会员分享,可在线阅读,更多相关《单片机与嵌入式系统ppt课件(53页珍藏版)》请在金锄头文库上搜索。

1、2020/10/17,第四章 汇编语言程序设计,4.1 常用的伪指令 定义汇编起始位置伪指令ORG ORG nn ;nn为16位地址 例如: ORG 2000H ;定义了下面指令的地址是从2000H开始 MOV SP,#80H ;设堆栈 . 赋值伪指令EQU 字节名称 EQU 数据(或地址或汇编符号) 例如: LED_AB EQU 2000H ;LED_AB 等于 2000H NUMB EQU 30H KK EQU R0 一般放在程序开头,赋值后不能更改,2020/10/17, 定义字节常量DB(查表用) 标号: DB 8位二进数表 例如: TAB1: DB 12H,34H,77H, TAB2

2、: DB 07H,44H, 定义字常量DW(查表用) 标号: DW 16位二进数表 例如:(每个字占个字节,高8位在先,低8位在后) ORG 1000H TAB: DW 1234H,3CH,2020/10/17, 预留存储空间伪指令DS 标号: DS 表达式 从定义地址开始保留DS之后表达式的值所规定的存储单元,以备后用。例如: ORG 1000H DS 08H DB 30H,8AH 汇编以后,从1000H保留8个单元,然后从1008H开始给内存赋值,即 (1008H)=30H (1009H)=8AH,2020/10/17,位地址符号伪指令BIT 位名称 BIT I/O口(或位地址) 例如:

3、CLK BIT P1.4 ;定义P1.4为CLK AD_CS BIT P1.6 ;定义P1.6为AD_CS FLG BIT 00H ;定义00H位地址为FLG 定义汇编结束指令END 标号: END 地址或标号 END 指令一定要放到程序的最后,否则不会编译!,2020/10/17,4.2 汇编程序设计过程 明确课题的任务(硬件/功能/精度等); 按功能,分块规划程序结构(模块设计/子程序); 分配存储器资源(定义变量/设堆栈.); 根据功能选择合适的指令组合; 对源程序进行编译,调试和修改; 烧写代码(下载代码.)。,2020/10/17,中断向量入口地址表,2020/10/17,4.3 汇

4、编程序的结构,CLK BIT P1.7 ;I/O口定义. NUB EQU 2020H ;常数或地址定义. . ;定义变量或常数 ORG 0000H ;复位入口地址(上电) LJMP MAIN ;跳到主程序 ORG 0003H ;INT0入口地址(P3.2) LJMP T_INT0 ;跳到INT0中断程序 ORG 000BH ;定时器T0入口地址(P3.4) LJMP T_T0 ;跳到T0中断程序 ORG 0013H ;INT1入口地址(P3.3) LJMP T_INT1 ;跳INT1中断程序 ORG 001BH ;定时器T1入口地址(P3.5) LJMP T_T1 ;跳T1中断程序 ORG 0

5、023H ;串口入口地址(P3.0,P3.1) LJMP T_CK ;跳串口中断程序 . ;,2020/10/17,ORG 0100H T_INT0: . ;INT0中断子程序 RETI T_INT1: ;INT1中断子程序 RETI T_T0: ;T0中断子程序 RETI T_T1: ;T1中断子程序 RETI T_CK: ;串口中断子程序 RETI ;其他子程序. ; MAIN: MOV SP,#90H ;设堆栈(主程序部分) MOV IE, #00H ; ;其他指令 END ;结束,2020/10/17,顺序程序 分支程序 单分支 双分支 多分支 循环程序 单重循环 多重循环,常用程序结

6、构,2020/10/17,顺序程序,例1:4字节(双字)加法。将内部RAM 30H开始的4个单元中存放的4字节十六进制数和内部RAM 40H单元开始的4个单元中存放的4字节十六进制数相加,结果存放到40H开始的单元中。(如图所示),2020/10/17,ORG0000H MOVA,30H ADD A,40H MOV40H,A;最低字节加法并送结果 MOVA,31H ADDCA,41H MOV41H,A;第二字节加法并送结果 MOVA,32H ADDC A,42H MOV42H,A;第三字节加法并送结果 MOVA,33H ADDCA,43H MOV43H,A ;第四字节加法并送结果,进位位在CY

7、中 SJMP $ END,源程序:,2020/10/17,2020/10/17,分支程序,多分支,单分支,双分支,2020/10/17,单分支程序,例2:如图所示,设计一段程序实现功能:如果寄存器A中1的个数为奇数,所有的二极管发光;如果全0,则只让D1-D4发光;否则全灭。,30P,2020/10/17,ORG 0000H MOV A,#00011100B JB P,JISHU JZ QUAN MOV P2,#00H SJMP TOend JISHU:MOV P2,#0FFH SJMP TOend QUAN:MOV P2,#0FH TOend: SJMP $ END,流程图:,源程序:,判断

8、奇偶标志位的值,判断A的值是否为0,A有偶数个1,二极管灭,A有奇数个1,二极管全亮,A为0,D1-D4亮,2020/10/17,A中1的个数为奇数,30P,2020/10/17,A中1的个数为0,30P,2020/10/17,A中1的个数为偶数,30P,2020/10/17,双分支程序,例3:内部RAM的40H单元和50H单元各存放了一个8位无符号数,请比较这两个数的大小,比较结果用发光二极管显示(LED为高有效): 若(40H)(50H),则P2.0管脚连接的D1发光; 若(40H)(50H),则P2.1管脚连接的D2发光。,2020/10/17,流程图,X EQU 40H Y EQU 5

9、0H ORG0000H MOV P2,#0 MOV X,#78H MOV Y,#0F0H MOV A, X CLR C SUBB A,Y JC L1 ;CY=1,转移到L1 SETB P2.0 ;CY=0,(40H)(50H),点亮P2.0 SJMP FIN ;直接跳转到结束等待 L1:SETB P2.1 ;(40H)(50H),点亮P2.1 FIN:SJMP $ END,源程序,2020/10/17,多分支程序,例4:在某单片机系统中,按下一按键,键值(代表哪个键被按下)存放在内部RAM的40H单元内。设计一段程序实现功能: 如果(40H)=00H,调用子程序SUB1; 如果(40H)=01

10、H,调用子程序SUB2; 如果(40H)=02H,调用子程序SUB3; 如果(40H)=03H,调用子程序SUB4; 如果(40H)=04H,调用子程序SUB5。,2020/10/17,流程图,2020/10/17,源程序, MOV A,40H MOV B,#3 MUL AB MOV DPTR,#TAB JMP A+DPTR TAB:LJMP SUB1 LJMP SUB2 LJMP SUB3 LJMP SUB4 LJMP SUB5,(40H)3 传送给A,查表转移,转移地址表,对AJMP指令应将分支序号乘以2, 转移范围为2KB;对LJMP指令应将分支序号乘以3, 转移范围为64KB。,202

11、0/10/17,循环程序,2020/10/17,定时程序:用循环程序将指令重复多次执行,实现软件延时。,单重循环延时 例5:假设单片机的fosc=12MHz,计算单片机执行下面程序消耗的时间。 DELAY: MOV R5,#TIME ;1机器周期 MM: NOP ;1机器周期 NOP ;1机器周期 DJNZ R5,MM ;2机器周期 RET ;2机器周期 1T=12/12MHZ=1s 执行完以上5条语句,所花时间: Tdelay=(1+(1+1+2)TIME+2)1s 第一条和第五条指令延时时间可忽略不计 Tdelay=4TIME1s 最长定时:TIME=255时,Tdelay1ms,2020

12、/10/17,多重循环延时 例6:假设单片机的fosc=12MHz,计算单片机执行下面程序消耗的时间。 DELAY: MOV R3,#TIME1 ;1机器周期 LOOP1: MOV R2,#TIME2 ;1机器周期 LOOP2: NOP ;1机器周期 NOP ;1机器周期 NOP ;1机器周期 NOP ;1机器周期 NOP ;1机器周期 NOP ;1机器周期 DJNZ R2,LOOP2 ;2机器周期 DJNZ R3,LOOP1 ;2机器周期 RET ;2机器周期 执行完以上语句(第一条和最后一条语句执行时间忽略不计),所花时间: Tdelay=(1+(6+2)TIME2+2)TIME11s T

13、IME1=TIME2=250时,Tdelay500ms 则: MOV R0,#02 LOOP3:LCALL DELAY DJNZ R0,LOOP3 可实现1s延时,2020/10/17,练习,参照下图设计一个彩灯控制程序,让8个led按照自己的设想发光,显示的样式尽可能的丰富。,2020/10/17,2020/10/17,HD-51-A型 学习/开发板,2020/10/17,原理图,2020/10/17,ORG0000H START: CLRP1.0 ;第一个LED亮 SETBP1.1 ;第二个LED灭 LCALLDELAY ;延时0.5秒 SETBP1.0 ;第一个LED灭 CLRP1.1

14、;第二个LED亮 LCALLDELAY ;延时0.5秒 SJMPSTART ;反复循环 ;延时子程序,12M晶振延时约500毫秒 DELAY: MOVR4,#4 L3: MOVR2,#250 L1: MOVR3,#250 L2: DJNZR3,L2 DJNZR2,L1 DJNZR4,L3 RET END START,流水灯程序,2020/10/17,2020/10/17,LED(Light Emitting Diode),八段数码管,(a)共阴极,GND,(b)共阳极,2020/10/17,编码,D7,D6,D5,D4,D3,D2,D1,D0,2020/10/17,按键,通常,按键所用开关为机

15、械弹性开关,一般为常开型,不按下时触点断开,按下时闭合。 按键按下和松开的瞬间,伴随有一连串的抖动,抖动时间一般为510ms。 检测出键闭合后,再执行一个10ms左右的延时程序,以避开抖动时间,等信号稳定后再进行按键查询,如果仍保持闭合,则确认有键按下,否则认为是抖动。,2020/10/17,例:按键则数码管增一,开始,K1按下?,数码管初始显示为0,延时10ms,再次判断K1按下?,K1抬起?,数码管增1显示,是,否,否,是,是,否,2020/10/17,按键则数码管增一程序,K1 BIT P1.4 SMG_SEL BIT P1.7 SMG DATA 30H ORG 0000H LJMP MAIN ORG

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号