《例说8051:单片机程序设计案例教程》——1-4 实例演练

1-4 实例演练

单片机系统的设计中,软件与硬件息息相关,采用不同的电路设计,程序可能就不太一样。因此,在编写程序之前,必须确定电路的连接状态,例如要利用8051的Port 2来控制8个LED,让这8个LED分成两组(高四位与低四位),交互闪烁,其设计步骤如下:

  1. 如图1-19所示的电路中,当Port 2的引脚输出低电平(0)时,其所连接的LED因正向导通而亮;若将引脚输出高电平(1)时,其所连接的LED因反向截止而不亮。因此,我们的程序设计就要让Port 2输出为“00001111”,使左边四个LED亮,右边四个LED不亮。隔一段时间后,再将输出反相,即左边四个LED不亮,右边四个LED亮,……如此周而复始。
  2. 有了电路和思路后,随即可画出流程图,如图1-20所示。

  1. 除简单的程序外,根据流程图来编写程序是一个较容易且保险的方法。若要编写程序,则进入文本编辑程序后,按行输入,其中每行“;”右边的部分是注释,是对该条指令的说明,只提供备注信息,不会影响源程序运行。在此建议尽量要求自己对自己所编写的程序进行注释,一方面可以增加该程序的可读性,另一方面则可养成良好的程序编写习惯。
ORG   0    ;程序从0地址开始

START: MOV   A, #0FH   ;让ACC的内容为00001111
LOOP: MOV   P2, A   ;从Port 2输出ACC的内容
     CPL   A    ;对ACC的内容取补码(即反相)
     CALL  DELAY   ;调用延迟子程序
      JMP   LOOP   ;跳到LOOP处执行
;=======================================================
DELAY:      ;延迟子程序
        MOV   R7, #20   ;R7寄存器加载次数20
D1:  MOV   R6, #25   ;R6寄存器加载次数25
     DJNZ   R6, $   ;本行执行R6次
     DJNZ   R7, D1   ;D1循环执行R7次
     RET     ;返回主程序
     END     ;结束程序

ch1.asm

  1. 通常我们会将所有开发工具都放在一个文件夹里(如D:8051),包括PE2、X8051、LINK、AVSIM51、TEST.BAT(前面所介绍的自动批处理文件),以及所编辑的源程序。当源程序编辑完成且存盘(ch1.asm)后,在命令提示符下输入:

屏幕将出现一连串操作,最后停止,如图1-21所示。

  1. 此时产生了*.hex文件,可进一步进行软件仿真,同样是在命令提示符下输入:

屏幕出现如图1-22所示画面。

  1. 紧接着载入刚才编译完成的文件,按、键,再输入ch1.hex,按键即可载入ch1.hex,如图1-24所示。

时间: 2024-10-25 01:54:56

《例说8051:单片机程序设计案例教程》——1-4 实例演练的相关文章

《例说8051:单片机程序设计案例教程》——2-1 认识MCS-51的存储器结构

2-1 认识MCS-51的存储器结构 例说8051:单片机程序设计案例教程除了无ROM型的8031及8032外,MCS-51的存储器包括程序存储器(ROM)与数据存储器(RAM)两部分,一般这两部分是独立的个体.标准的8x51系列具有4KB程序存储器.128B数据存储器,而标准的8x52系列具有8KB.256B数据存储器,刚好是8x51系列的两倍.不管是8x51.8031.8032还是8x52,其外部扩展的程序存储器或数据存储器最多为64KB,如表2-1所示. 近年来许多半导体厂商所推出的MCS

《例说8051:单片机程序设计案例教程》——2-6 数据传送指令

2-6 数据传送指令 例说8051:单片机程序设计案例教程数据转移指令的功能是将源操作数的数据复制到目的操作数里:或将指定的操作数内容交换.数据转移指令属于8051指令里的最大的一类,包括28条指令,在此将它们分为5大类来介绍. 圓 数据传送指令数据传送指令的功能是将源(source)操作数的数据复制到目的(destination)操作数,如下所示: 其中的源操作数可为存储器(RAM)地址direct的数据.寄存器Rn的内容.以间接寄存器Ri内容为地址(@Ri)的数据.立即数#data.ACC的

《例说8051:单片机程序设计案例教程》——第 1 章 轻松看8051

第 1 章 轻松看8051 例说8051:单片机程序设计案例教程本章内容丰富,主要包括3部分: anniu 8051部分 8051的基本认识,包括结构.引脚.封装.MCS-51系列,以及8051的基本电路等. anniu 开发工具部分 8051软硬件的开发流程,包括源程序的编写.汇编.连接,以及软硬件模拟等. anniu 程序与实作部分 闪烁灯的程序设计及其汇编.连接与软件仿真.

《例说8051:单片机程序设计案例教程》——2-8 实时练习

2-8 实时练习 例说8051:单片机程序设计案例教程在本章里,介绍了8051的存储器结构.输入/输出端口.输出电路的设计等硬件部分:在软件方面,则介绍了指令格式.寻址方式,以及数据转移指令,这些都是学习8051不可或缺的相关知识.在此试着回答下列问题,以验证学习成效. 1.8051内部的程序存储器与数据存储器容量各为多少?而外部扩展的程序存储器与数据存储器最多容量各为多少? 2.在8051电路里,若要使用外部程序存储器,应如何连接?而访问外部数据存储器必须使用哪个指令? 3.8051内部有多少

《例说8051:单片机程序设计案例教程》——2-4 指令格式

2-4 指令格式 例说8051:单片机程序设计案例教程8051源程序的指令格式包括四个字段,最左边字段为标号字段(label),第二个字段是指令操作码字段(mnemonic),第三个字段是操作数字段(operand),第四个字段是注释字段(comment),如下所示: 标号字段的功能是放置标号,作为子程序的起始标志或跳转指令的参考位置.若不放置标号,则标号字段必须为空.而第二个字段就是放置指令操作码,如MOV.ADDC等. 在第三个字段里放置操作数,随着指令的不同,就有不同个数的操作数,某些指令

《例说8051:单片机程序设计案例教程》——导读

前言 例说8051:单片机程序设计案例教程单片机,单片机,还是单片机 从8048开始,"单片机"即成为广受欢迎的代名词,8051更成为电机.电子类专业必修的课程.当然,应用单片机制作电子系统项目,既简单又经济实惠,早已成为学生的最爱.在电路设计方面,需求量较大.电路较复杂的系统可采用为客户专用而设计的IC(即ASIC),如芯片组.控制芯片等,虽然ASIC的单位成本不高,但总体成本很高.开发时间也比较长.需求量不是很大,而电路变化较多的系统则多采用可编程逻辑器件(如CPLD.FPGA).

《例说8051:单片机程序设计案例教程》——1-1 微型计算机与单片机

1-1 微型计算机与单片机 例说8051:单片机程序设计案例教程一般来说,微型计算机包括中央处理单元(CPU).存储器(Memory)及输入/输出单元(I/O)三大部分如图1-1所示.CPU就像是人的大脑一样,主宰整个系统的运行:Memory则是存放系统运行所需的程序及数据,包括只读存储器(Read Only Memory,ROM)及随机存取存储器(Randon Access Memory,RAM),通常ROM用来存储程序或永久性的数据,称为程序存储器,RAM则是用来存储程序执行时的临时数据,称

《例说8051:单片机程序设计案例教程》——1-2 8051基本知识

1-2 8051基本知识 "8051"源自Intel公司的MCS-51系列,而目前所使用的8051并不是都采用Intel公司所生产的芯片,而多采用其他厂商所推出的兼容芯片,如Atmel公司的89C51/89S51系列,其价格低廉,质量稳定,开发工具齐全,广为学校或培训机构所欢迎. 在此,先介绍8051的基本结构,包括基本结构.引脚.基本电路及51系列等,其中很多知识最好要"记"在脑中,本书也会提供很多快速记忆的技巧,让读者能在极短的时间里记住40个引脚.基本电路等.

《例说8051:单片机程序设计案例教程》——2-7 实例演练

2-7 实例演练 如图2-16所示为本单元的实验电路,在此将进行单灯左移.双灯左移,以及霹雳灯的实验. 2-7-1 单灯左移 在此的"单灯左移"是从Port 2输出的8个LED中,从P2.0所连接的LED开始亮,任何时刻只有一个LED亮,如图2-17所示. 设计要点 1.如图2-14所示,若要LED亮,则P2输出0:因此,刚开始时输出11111110,即可使最右边的LED亮,其余不亮. 2.若要从右边第一个LED亮,转成第二个LED亮,可用左移指令,即 3.在此要介绍8051的&quo