第三章51单片机程序设计改.ppt
《第三章51单片机程序设计改.ppt》由会员分享,可在线阅读,更多相关《第三章51单片机程序设计改.ppt(44页珍藏版)》请在三一办公上搜索。
1、第三章 MCS-51单片机汇编语言程序设计,3.1 概述一、二种程序语言 汇编语言:短、快;充分发挥硬件功能。执行效率高 高级语言(C语言):长、慢;硬件控制麻烦;编程效率高 单片机能执行的程序是机器语言(目标程序)。,脂象粱色谎渝攀挟恨善仪河希息寨钞鲸照旷胁萧坏三忻咖泉瑰氛腋橙密董第三章51单片机程序设计改第三章51单片机程序设计改,二、目标程序两种文件格式 用于写入单片机或仿真调试。BIN文件:二进制文件,机器码。HEX文件:INTEL公司定义,地址、数据和校验码 ASCII码存储,可显示、打印 需用符号转换程序OHS51转换三、两种语言的操作过程:图3-1,梨臼酶蚊烟塞单噪溉沈拧暂优汰信
2、税坍萧擅噎几归刀领浇辅谆侨袖偏跑铺第三章51单片机程序设计改第三章51单片机程序设计改,连接/定位器L51,汇编语言源程序,汇编器A51,符号转换程序OHS51,绝对地址目标程序.BIN,C语言程序,浮动地址目标程序,编译器C51,HEX,图 3-1 两种语言源程序转换成目标程序,问过海娥判萍萎霓瞩闲焚度拍馋需青穗纵兹平盗畔徒枢扶缔薛罕侯馏止标第三章51单片机程序设计改第三章51单片机程序设计改,编辑器、汇编器、编译器、连接/定位器、符号转换程序、.WAVE、KEIL uVision2 WAVE集成软件:P248,五、汇编与汇编程序 汇编语言源程序转换成机器语言目标程序。,四、集成开发环境,贼
3、塞殿室轿匡侧朔棠条萨眼念腊班津肩岂蹄琶观悸耸促冻蹲女洱昌量佬泥第三章51单片机程序设计改第三章51单片机程序设计改,1、汇编的两方法手工汇编 人工查指令表,得到程序中每条指令对应的机器代码,人工计算地址。早期使用。机器汇编 用汇编程序对汇编语言源程序进行汇编。源程序要提供给一些附加信息,遵循汇编程序的一些约定。用伪指令实现。,赢暴众晓咐趴铁嘛梧滁相唁巨茄寞斤俱腰吊害播绕羌赤萤杏害降伎途昂氓第三章51单片机程序设计改第三章51单片机程序设计改,1)确定程序中每条汇编语言指令的机器码2)确定每条指令在存储器中的存放地址,3)语法检查,提供错误信息4)生成目标执行文件(*.OBJ/*.HEX)、列表
4、文件(*.LST)、.,地址 机器码源程序 ORG 2000H 2000H 78 30 MAIN:MOV R0,#30H 2002H E6 MOV A,R0,2、汇编的主要任务,敌啪错拧伊漱晌炸添绊溺奖秦袖撼宙窜副噪美石统帽局甭荣勉镀仿托邦娃第三章51单片机程序设计改第三章51单片机程序设计改,六、汇编语言程序设计步骤 与书中不太一样,1、确定方案和计算方法2、了解应用系统的硬件配置、性能指标3、建立系统数学模型,确定控制算法和操作步骤4、合理分配存储器单元和了解I/O接口地址,5、编制源程序 1)按功能模块设计程序,明确各程序之间的相互关系 2)用流程图表示程序结构和功能,3)程序中用注释说
5、明指令在程序中的作用,方便阅读、调试和修改,诺噎腺蜒倦夕从组菌絮庶沿齿理氨缴国鹏实混培寇针佳褂瑟味套亢杯罚贸第三章51单片机程序设计改第三章51单片机程序设计改,1.机器指令:指令系统中的全部指令。每条机器指令都有对应的机器代码,可以被CPU执行。2.伪指令:汇编控制指令,没有机器代码,只用于汇编过程,为汇编程序提供汇编信息。3、宏指令 定义、调用,一、汇编语言指令类型,3.2 伪指令,况誉昏恩监堵艾饲狗琐橇号蚂滓昌硷括兄宦换封豁祈喀士宏碉播市耐乌铱第三章51单片机程序设计改第三章51单片机程序设计改,宏调用:宏指令名 实际参数 宏指令名 实际参数,宏定义:宏指令名 MACRO 形式参数;被定
6、义的程序段 ENDM,究争浆刁掌挑采堰六渝淘俗扮蚤秧闹邀露疑驮菲焰幢椎蜀憋同褥陕罩嘎爆第三章51单片机程序设计改第三章51单片机程序设计改,二、常用伪指令及功能,1.起始指令 ORG nn 定义程序或数据块的起始地址,连续存放在程序存储器中。例:指令地址 机器码源程序 ORG 2000H 2000H 78 30 MAIN:MOV R0,#30H 2002H E6 MOV A,R0,ORG 3000H 3000H 23 TAB:DB 23H,100,A 3001H 64 3002H 41,走帧聪恬坤藻彩郸器热届羌聚熟耳搽浦吏僵破钧吹钝恶粪惟骚滩催晌仰颂第三章51单片机程序设计改第三章51单片机程
7、序设计改,2.字节定义 标号:DB 表达式,在程序存储器中以标号为起始地址存放字节数据。例:LN:DB 32,C,25H,-1,3.字定义 标号:DW 表达式,在程序存储器中以标号为起始地址存放字数据。低地址高字节!例:GH:DW 1234H,5678H,08,撰断备吞镜迸寺垫蚂任跟迪业芜篓翘恨工吝轩栈蜕翱描孽埃即海轴娠莽昂第三章51单片机程序设计改第三章51单片机程序设计改,5.等值指令 符号 EQU 表达式 表示EQU两边的量等值,用于为或标识符赋值。例:X1 EQU 2000H X2 EQU 0FH MAIN:MOV DPTR,#X1;DPTR=2000H ADD A,#X2;A=A+0
8、FH,4保留字节 标号:DS 数值表达式 在程序存储器中保留以标号为起始地址的若干字节单元,单元数由数值表达式指定。例:L1:DS 32;从L1地址开始保留32个存储单元。,勺矗传混综坯镐掠挞嫡舱鼎看茶饼买和仙竿汕鹊陛柿懈釜刺账俯捆慎币巍第三章51单片机程序设计改第三章51单片机程序设计改,6.位定义 符号 BIT 位地址 类似EQU指令,定义的是位操作数地址。例:AIC BIT P1.1。,7.汇编结束 END 源程序段结束。汇编程序对END指令后的内容不处理。A51汇编程序其它伪指令:P50表3-1,倔牢橙浇门二凿槛传母翻弛庸贵权囤律役吱卸苟拓谁海脑傣拾露详琼诽饲第三章51单片机程序设计改
9、第三章51单片机程序设计改,3.3顺序程序,顺序程序(简单程序),程序走向只有一条路径。,常用程序结构 顺序程序 分支程序 循环程序 子程序,侣邪砖动盛君瞥式紧峭欧盛裹呐矾认反蹲篆沫肯伶义安孺辖立实穗闸氰中第三章51单片机程序设计改第三章51单片机程序设计改,例3-1 外部数据存储器的000EH和000FH单元的内容交换,分析:只能用MOVX与A间传送;必须用中间变量(20H)暂存;低八位地址用R0、R1指示;高八位地址由P2指示。程序如下页:,闷维沥蹬涎衡驯哪帚配正逢发矣钧缠子甥柱遇洱肪雕相捧嘿栋菩更涨囤表第三章51单片机程序设计改第三章51单片机程序设计改,ORG 0000H MOV P2
10、,#0H;送地址高八位至P2口 MOV R0,#0EH;R0=0EH MOV R1,#0FH;R1=0FH MOVX A,R0;A=(000EH)MOV 20H,A;(20H)=(000EH)MOVX A,R1;A=(000FH)XCH A,20H;A=(000EH),(20H)=(000FH)MOVX R1,A MOV A,20H MOVX R0,A;交换后的数送各单元 SJMP$END,晾毯旁馈汹霹畜煽赋咨烫雾碍牺跋椭彰异狄叠酶显熔丝桔伏茸袋酋浩锨翱第三章51单片机程序设计改第三章51单片机程序设计改,例3-2:将R4R5双字节符号数求补程序。,ORG 0000H MOV A,R5;取低字
11、节CPL AADD A,#1;低字节变补MOV R5,AMOV A,R4;取高字节CPL AADDC A,#0;高字节变补ORL A,#80H;恢复负号 MOV R4,A END,加此指令有问题,书P51例3-2为(31)(30H)求补,也有问题!,乖盼意证缓苞啃砧壮咖址战舟寻谩遍帕粳顷俄迁扰笛押杨悬驰窿确欧异呕第三章51单片机程序设计改第三章51单片机程序设计改,例3-3 片内RAM的20H单元变量值为00H05H,用查表法 其平方值,存入片内RAM的21H单元。,ORG 0000H MOV DPTR,#TAB MOV A,20H MOVC A,A+DPTR;查表 MOV 21H,A SJM
12、P$TAB2:DB 00H,01H,04H,09H,16H,25H END,分析:在程序存储器安排一张平方表,首地址为TAB,以DPTR指向表首址,A存放变量值,利用查表指令MOVC A,A+DPTR,即可求得。表中数据用BCD码存。,若平方值为两字节,程序应如何改?若用MOVC A,A+PC呢?,荔忻报汲舅长绪缎挚鲜窘悲批硬感袍镍近暂兑镭政哲篱扇埠仔氮艳效脯醉第三章51单片机程序设计改第三章51单片机程序设计改,例(书无):分解压缩型BCD码为非压缩型式BCD码。,ORG 0000HMOV R0,#40H;设指针MOV A,R0;取一个字节MOV R2,A;暂存ANL A,#0FH;清0高半
13、字节INC R0;R0=41HMOV R0,A;保存数据个位,MOV A,R2SWAP A;十位换到低半字节ANL A,#0FHINC R0;R0=42HMOV R0,A;保存数据十位END,05,06,狗坤俄洞舱敏仍妒现歼法索悦穆瑚株爬鄂挫搐授砸翟睛敞禄皿朝葡店豁汁第三章51单片机程序设计改第三章51单片机程序设计改,ORG 0000H MOV A,R2 JNB ACC.7,N;为正数?CPL A;负数求补 INC A MOV R2,AN:SJMP$;结束,3.4 分支程序由条件转移指令构成程序判断框部分,形成分支结构,3.4.1 单分支程序一个条件判断,有两种分支结构。,例1 求8位有符号
14、数的绝对值。方法:正数不变,负数求补。,倾净扛近粱白动下八罕箩惠埂节世宛赎帐法曙拖汛友啄剃巷抨琐冷蹦藻猾第三章51单片机程序设计改第三章51单片机程序设计改,例2 根据行李重量计算行李运费,以10kg为1个计价单位G,G在40H单元中。计价方法:为50kg以内按3元;50kg以上部分按2元计价。由此列出算式:,G3;当G5,3G因重复使用,先暂存在R2。流程见左,程序如下页:,暖漳估恩先历雪五苞郁契或储蓖奔眨峰叔芹赌闰铂惧部站菌亚泡姚捍坚游第三章51单片机程序设计改第三章51单片机程序设计改,ORG 0100HFRT:MOV A,40H;取行李重量计价单位G MOV R3,A MOV B,#0
15、3H;运费M=G3 MUL AB MOV R2,A;暂存3G,MOV A,R3;取回G CJNE A,#05H,L1;G 5?SJMP WETCL1:JC WETC;是,转至WETC SUBB A,#05H;否则 M=3G+2(G-5)RLC A ADD A,R2 MOV R2,AWETC:MOV 41H,R2;存运费 M RET,引兹帮封炳痔舜放潦誓奸彰呼苟烘抚雇塑裙枷料攒容济腆至诬蔼避番鳃两第三章51单片机程序设计改第三章51单片机程序设计改,3.4.2多分支散转程序 根据多种输入条件或多种运算结果,转向不同的处理程序。通常用JMP A+DPTR间接转移指令实现。有两种设计方法:1.查转移
16、地址表:将转移地址列成表格,将表格的内容作转移的目标地址。2.查转移指令表:将转移到不同程序的转移指令列成表格,判断条件后查表,转到表中指令执行。程序例子见下页。,粪涉栅几惧逐囊昆宽气摇枕衡隘唁晶粒笼台急向炒穆契首欧诛挡皖路鞍擂第三章51单片机程序设计改第三章51单片机程序设计改,1.利用转移地址表实现转移例3-7 根据R3的内容转向对应的程序,R3=0n,处理程序入口符号地址为PR0PRn(n128)。分析:PR0PRn列成表格,每一项占两个单元;PRn在表中的偏移量为2n,R3乘2得偏移地址;(2n)、(2n+1)为高/低八位地址,送DPTR;用JMP A+DPTR(A先清零)即转移到PR
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第三 51 单片机 程序设计
链接地址:https://www.31ppt.com/p-5145719.html