预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共11页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

电子教案——单片机原理与应用技术 第页 第1章汇编语言程序设计 80C51汇编,语言语句结构的基本格式 伪指令的功能和应用 汇编的概念 程序设计的步骤和基本方法 顺序程序 分支程序 循环程序 查表程序 散转程序 §1-1汇编语言 一.汇编语言及其语句结 标号:操作码[目的操作数,源操作数];注释 二.伪指令 在汇编时起控制作用,自身并不产生机器码,而仅是为汇编服务的一些指令,称为伪指令。伪指令不属于80C51指令系统。 常用的伪指令有以下几种: ⒈起始伪指令ORG(Origin) 格式:ORG16位地址 ⒉结束伪指令END 格式: 功能:汇编语言源程序的结束标志。 在END后面的指令,汇编程序不再处理。 ⒊等值伪指令EQU(Equate) 格式:字符名称EQU数据或汇编符号 ⒋数据地址赋值伪指令 格式:字符名称DATA表达式 功能:将一个数据或特定的汇编符号赋予规定的字符名称。 ⒌定义字节伪指令DB(DefineByte) 格式:DB8位二进制数表 功能:从指定的地址单元开始,定义若干 个8位内存单元的数据。 数据与数据之间用“,”分割。 ⒍定义字伪指令DW(DefineWord) 格式:DW16位二进制数表 功能:从指定的地址单元开始,定义 若干个16位数据。 ⒎定义位地址伪指令 格式:字符名称BIT位地址 功能:将位地址赋予所规定的字符名称。 三.汇编 将汇编语言源程序转换为计算机所能识别的机器语言代码程序的过程称为汇编。 汇编可分为: ⒈手工汇编 ⒉计算机汇编 四.程序设计的基本方法 编写程序要求: 不仅要完成规定的功能任务,而且还要求: 执行速度快、占用内存少、条理清晰、 阅读方便、便于移植、巧妙而实用。 一般应按以下几个步骤进行: ⑴分析问题,确定算法或解题思路 ⑵画流程图 ⑶编写源程序 ⑷汇编和调试 §1-2汇编语言程序设计举例 一.顺序程序 顺序程序是指按顺序依次执行的程序,也称为简单程序或直线程序。 顺序程序结构虽然比较简单,但也能完成一定的功能任务,是构成复杂程序的基础。 根据不同条件转向不同的处理程序,这种结构的程序称为分支程序。 80C51指令系统中的条件转移指令、比较转移指令和位转移指令,可以实现分支程序。 【例】已知16位二进制负数存放在R1R0中, 试求其补码,并将结果存在R3R2中 解:二进制负数的求补方法可归结为“求反加1”,符号位不变。利用CPL指令实现求反;加1时,则应低8位先加1,高8位再加上低位的进位。注意这里不能用INC指令,因为INC指令不影响标志位。 程序如下: CONT:MOV A,R0 ;读低8位 CPL A ;取反 ADD A,#1 ;加1 MOV R2,A ;存低8位 MOV A,R1 ;读高8位 CPL A ;取反 ADDC A,#80H ;加进位及符号位 MOVR3,A ;存高8位 RET ; 二.分支程序 根据不同条件转向不同的处理程序,这种结构的程序称为分支程序。 80C51指令系统中的条件转移指令、比较转移指令和位转移指令,可以实现分支程序。 ①S0单独按下, 红灯亮,其余灯灭; ②S1单独按下, 绿灯亮,其余灯灭; ③其余情况, 黄灯亮。 解:程序如下 SGNL:ANLP1,#11100011B;红绿黄灯灭 ORLP1,#00000011B;置P1.0、P1.1输入态,P1.5~P1.7状态不变 SL0:JNBP1.0,SL1 ;P1.0=0,S0未按下,转判S1 JNBP1.1,RED ;P1.0=1,S0按下;且P1.1=0,S1未按下,转红灯亮 YELW:SETBP1.4 ;黄灯亮 CLRP1.2 ;红灯灭 CLRP1.3 ;绿灯灭 SJMPSL0 ;转循环 SL1:JNBP1.1,YELW ;P1.0=0,S0未按下;P1.1=0,S1未按下,转黄灯亮 GREN:SETBP1.3 ;绿灯亮 CLRP1.2 ;红灯灭 CLRP1.4 ;黄灯灭 SJMPSL0 ;转循环 RED:SETBP1.2 ;红灯亮 CLRP1.3 ;绿灯灭 CLRP1.4 ;黄灯灭 SJMPSL0 ;转循环 课堂练习题: 电路及灯亮灭要求同上述【例】题,其中第3、4两条指令JNBP1.0和JNBP1.1按下列要求修改,试重新编程。 ⑴ JB P1.0,¡­ JB P1.1,¡­ ⑵ JB P1.0,¡­ JNBP1.1,¡­ ⑶ JNBP1.0,¡­ JB P1.1,¡­ 三.循环程序 循环程序一般包括以下几个部分: ⑴循环初值; ⑵循环体; ⑶循环修改; ⑷循环控制; 以上四部分可以有两种组织形式,其结构如图4-6所示. 【例】编制一个循环闪烁灯的程序。 设80C51单片