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

简介:

本节书摘来自异步社区《例说8051:单片机程序设计案例教程》一书中的第1章,第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所示。


screenshot


screenshot

  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)后,在命令提示符下输入:


screenshot

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


screenshot

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


screenshot

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


screenshot

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


screenshot

screenshot

相关文章
|
7月前
|
物联网
MQTT常见问题之用单片机接入阿里MQTT实例失败如何解决
MQTT(Message Queuing Telemetry Transport)是一个轻量级的、基于发布/订阅模式的消息协议,广泛用于物联网(IoT)中设备间的通信。以下是MQTT使用过程中可能遇到的一些常见问题及其答案的汇总:
|
7月前
|
数据处理
MCS-51单片机汇编语言程序设计
MCS-51单片机汇编语言程序设计
195 0
|
传感器 数据采集 监控
上千个完整设计的单片机、8086、STM32制作教程和资料-转发分享
在网上收集了接近上千个完整设计的单片机、8086、STM32制作教程和资料-转发分享(涵盖了大部分的毕设课设题目),学习单片机的最好教程,也可以作为帮助大家在做电子课设毕设时有利的帮助,可以从以下百度网盘下载(按照编号下载)。
2213 0
上千个完整设计的单片机、8086、STM32制作教程和资料-转发分享
【单片机】简单的自定义延时程序设计(代码演示)
【单片机】简单的自定义延时程序设计(代码演示)
|
开发框架 JSON 物联网
Nanoframework 操作单片机蓝牙配置WIFI的案例
通过`Nanoframework`的蓝牙配置Wifi的名称和密码
149 0
|
算法 芯片
基于51单片机点阵汉字显示程序设计
基于51单片机点阵汉字显示程序设计
基于51单片机点阵汉字显示程序设计
蓝桥杯之单片机学习(十四)——基础技能综合实训案例解析
蓝桥杯之单片机学习(十四)——基础技能综合实训案例解析
292 0
蓝桥杯之单片机学习(十四)——基础技能综合实训案例解析
蓝桥杯之单片机学习(十二)——串口通信进阶应用案例解析
蓝桥杯之单片机学习(十二)——串口通信进阶应用案例解析
288 0
蓝桥杯之单片机学习(十二)——串口通信进阶应用案例解析
|
芯片
单片机:蜂鸣器发声和自动关闭一站式教程:(附赠如何控制声音大小和音调)软件编程+硬件原理+注意事项
单片机:蜂鸣器发声和自动关闭一站式教程:(附赠如何控制声音大小和音调)软件编程+硬件原理+注意事项
766 0
单片机:蜂鸣器发声和自动关闭一站式教程:(附赠如何控制声音大小和音调)软件编程+硬件原理+注意事项
蓝桥杯之单片机学习(九)——定时器的进阶综合案例解析
蓝桥杯之单片机学习(九)——定时器的进阶综合案例解析
250 0