文档详情

第4章--MCS-51单片机汇编语言程序设计.ppt

发布:2024-03-16约1.53万字共53页下载文档
文本预览下载声明

单片机原理、接口及应用-嵌入式系统技术基础内容提要★汇编语言程序设计概述★汇编语言程序设计步骤★顺序程序设计★分支程序设计★循环程序设计★位操作程序设计★伪指令★程序设计举例★小结4.1汇编语言程序设计概述 MCS-51单片机的编程语言可以是汇编语言也可以是高级语言(如C语言),高级语言编程快捷,但程序长,占用存储空间大,执行慢;汇编语言产生的目标程序简短,占用存储空间小,执行快,能充分发挥计算机的硬件功能。无论是高级语言还是汇编语言,源程序都要转换成目标程序(机器语言)单片机才能执行。?4.1.1汇编语言概述汇编语言:以助记符表示的指令。每一条语句就是汇编语言一条语句。汇编语言程序设计:使用汇编语言指令来编写计算机程序。4.1.2汇编语言特点及其语句格式1.汇编语言特点(1)助记符指令和机器指令一一对应,程序效率高,占用空间小,运行速度快;(2)使用汇编语言比高级语言困难;(3)汇编语言程序能直接管理和控制硬件设备;(4)汇编语言缺乏通用性,程序不易移植,不能通用。2.汇编语言的语句格式MCS-51汇编语言格式如下:[标号]:操作码[操作数];[注释]Eg:Delay:MOVA,R0;延时程序标号操作码目的源操作数注释操作数4.1.2汇编语言程序设计步骤一.确定方案和计算方法二.了解应用系统的硬件配置、性能指标三.建立系统数学模型,确定控制算法和操作步骤四.合理分配存储器单元和了解I/O接口地址4.2汇编程序基本结构形式

顺序程序、分支程序、

循环程序4.2.1顺序程序设计例4-1编程将外部数据存储器的000EH和000FH单元的内容相换。ORG0000HMOVP2,#0H;送地址高八位至P2口MOVR0,#0EH;R0=0EHMOVR1,#0FH;R1=OFHMOVXA,@R0;A=(000EH)MOV20H,A;(20H)=(000EH)MOVXA,@R1;A=(000FH)XCHA,20H;A=(000EH),(20H)=(000FH)MOVX@R1,AMOVA,20HMOVX@R0,A;交换后的数送各单元SJMP$END顺序程序(简单程序),程序走向只有一条路径例4-3分解压缩式BCD码,使其成为非压缩式BCD码。ORG0000HMOV R0,#40H ;设指针MOV A,@R0 ;取一个字节MOV R2,A ;暂存ANL A,#0FH ;清0高半字节INC R0MOV @R0,A ;保存数据个位例2用单片机和重力传感器作磅秤,秤出重量后算出行李运费价格,其秤出的重量以10kg为1个计价单位G,G已存入40H单元。计价方法为50kg以内按3元,50kg以上

分段计价:50kg按3元计价,超过部分

按2元计价。

由此列出算式:1.利用转移地址表实现转移例4-7根据R3的内容转向对应的程序,R3的内容为0~n,处理程序的入口符号地址分别为PR0~PRn(n128)。分析:将PR0—PRn入口地址列在表格中,每一项占两个单元,PRn在表中的偏移量为2n,因此将R3的内容乘2即得PRn在表中的偏移地址,从偏移地址2n和2n+1两个单元分别取出PRn的高八位地址和低八位地址送DPTR寄存器,用JMP@A+DPTR指令(A先清零)即转移到PRn入口执行。ORG0000HMOVA,R3;R3→AADDA,ACC;A*2MOVDPTR,#TABPUSHACCMOVCA,@A+DPTR;取地址

显示全部
相似文档