- 1、本文档共39页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一、程序设计概述 最早人们只能用机器语言(二进制)编写程序; 为了方便记忆,人们用助记符形式的汇编语言编写程序。然后再用汇编系统将其翻译成机器语言,该过程称为汇编。 为了用更接近人的语言编写程序,程序设计师们发明了高级语言,然后再用编译系统将其翻译成机器语言,该过程称为编译。 机器只能识别机器语言。所以必须用汇编系统将用汇编语言编写的源程序汇编成机器语言;用编译系统将高级语言编写的源程序编译成机器语言。 由汇编语言或高级语言构成的程序称为源程序,将其翻译成的机器语言程序称作目标程序。 机器语言(Machine Language)是指直接用机器码编写程序,能够为计算机直接执行的编程语言。机器码是一串由二进制代码“0”和“1”组成的二进制数据,执行速度快。但是可读性极差,程序的设计、输入、修改和调试都很麻烦。 汇编语言(Assembly Language)是指用指令助记符代替机器码的编程语言。汇编语言的程序结构简单,执行速度快,程序易优化,编译后占用存储空间小,是单片机应用系统开发中最常用的程序设计语言。只有熟悉单片机的指令系统,并具有一定的程序设计经验,才能研制出功能复杂的应用程序。 高级语言(High-Level Language)是在汇编语言的基础上用高级语言来编写程序,例如C51、BASCOM等。程序可读性强,通用性好,适用于不熟悉单片机指令系统的用户。缺点是实时性不高,结构不紧凑,编译后占用存储空间较大。 源程序 目标程序 程序设计基本步骤 分析题意 算法设计 画出程序流程图 分配内存及端口 编写源程序 仿真、调试程序 固化程序 为什么要用流程图? 符合人进行逻辑思考的习惯。 单片机自身并没有任何思维能力,所以,你必须告诉它,先做什么,后做什么,遇到什么情况又该做什么,等等。。。 流程图设计本身是一个逐步求精的过程,最终将任务划分为若干能由机器指令实现的小模块。 二、顺序程序设计 结构特点: 按指令的先后顺序依次执行。 例1:将20H单元的两个压缩BCD码拆开变成ASCII码,存入21H、22H单元。(设20H中的BCD码 三、分支程序设计 结构特点:程序的流向有两个或两个以上分支,根据指定条件选择程序的流向。 流程图 例3:已知30H单元中有一变量X,要求编写一程序按下述要求给Y赋值,结果存入31H单元。 X+1, X>0 Y = 0 , X = 0 –1 , X<0 分析:根据X的不同,程序有三个出口,即有三个分支! 例4 :设内部RAM 20H单元和30H 单元中分别存放了两个8位的无符号数 X、Y, 若X≥Y 则让P1.0管脚连接的LED亮;若XY 则让P1.1管脚连接的LED亮。 方法1: X DATE 20H Y DATE 30H ORG 0000H MOV A,X CLR C SUBB A,Y JC L1 CLR P1.0 SJMP FINISH L1: CLR P1.1 FINISH: SJMP $ END 方法2: 散转程序 散转程序是指通过修改某个参数后,程序可以有三个以上的流向。 常用的指令是JMP @A+DPTR,该指令是把16位数据指针DPTR的内容与累加器A中的8位无符号数相加,形成地址,装入程序计数器PC,形成散转的目的地址。 四、循环程序设计 结构特点:利用转移指令反复运行某程序段。 循环程序的组成 1. 初始化部分(设定循环次数等) 2. 循环体(重复执行的部分,用于完成实际操作) 3. 循环控制(不断修改和判别循环变量) 4. 循环结束处理 1.延时程序 DELAY:MOV R3,#OFFH DEL2: MOV R4,#0FFH DEL1: NOP NOP DJNZ R4,DEL1 DJNZ R3,DEL2 RET 2.查表程序 表格是
文档评论(0)