当前位置: 俄语入门 > 俄语学习资料 > 正文

51单片机-汇编语言-位-字节输出-动态-闪烁-仿真实践3

2018-12-09 02:55 5

蜘蛛网自动控制与编程

硬件—软件--单片机-基础-控制语言入门硬件与软件-位输出-动态

随着硬件系统的复杂性增加,其控制的灵活性受到限制。许多控制功能与要求是纯硬件无法完成的。随之出现的是必须含有软件的数字化处理系统—数字化控制系统。远距离(太空)遥控的系统更新、升级、功能补充等,都需要软件来完成。

单片机-微型计算机-单板机-嵌入式系统-PC机-服务器-大型工作站-巨型计算机-…基本结构-构造-基本单元组合-…由此看出三器(运算器、控制器、存储器)和IO组成的基本系统结构是通用的计算机技术学习的基础概念。由此看出控制语言的基本指令与格式计算指令、控制指令、存取指令(寻址、变量命名与存储位)

二进制数据(开关电路-逻辑电路-数字电路)信息表达的基本形式为:

数据信息的表达基本为:8位(bit)一个字节。16位2个字节,32位4个字节,64位8个字节。

16进制表示:8位单片机00H~FFH,16位计算机0000H~FFFFH,32位计算机0000 0000H~FFFF FFFFH,64位计算机呢?

其实这是有布尔代数—基本表达的数位的组合数—也包括门电路结构决定的。00B两位可以有四种组合—00、01、10、11;这些组合表达信息的能力是有限的,扩展为四位0000,可以有(2

n

)16种组合—用0~FH表示。等等。

计算机语言的表达形式,就像西语系(英语、德语、法语、俄语、……)的基本字母那样(汉语拼的字母数也不多),可以演变出成千上万的词汇-语句-文章,可以描述非常复杂的事物。当然还有运算速度的提升—4/8/16/32/64位并行处理二进制信息。

可以用虚拟仿真系统来试验理解单片机。有了切身体验,再来度说明书,看理论会提高效率很多很多。干中学—学中干。

  • 51系列单片机—具体型号会有差异,需要说明书确认。

51系列-8051 ----学习方法很多,这里使用的是:

一、你了解计算机硬件-具有模拟与数字电路基础知识?

二、你了解汇编语言或C语言-具有计算机语言的基本概念?

三、你了解计算机控制系统-控制对象及其控制需求?

四、你了解计算机仿真技术-见识过计算机辅助电子技术平台?

……

这些都没有关系,这里会给出大量的详细的注解与说明、给出提示与简要回顾,以便可以无障碍的习得51系列单片机及其控制系统知识与实践。逐级而上、快速由浅入深,高效进入行业领域。

不具备硬件电路与程序语言的基本知识,当然要用计算机仿真技术是不切实际的。

安装一套软硬件仿真系统(平台/软件)—Multisim

  • ARM系列单片机具体型号会有差异,需要说明书确认。

ARM7系列-LPC2124等。先看一下说明书中的相关信息。

51xx_Multisim

  • 用Multisim建立一个硬件系统----一个文件系统-一个工程项目,电气参数按照要求进行设置

建立原理图—双击打开Multisim-选择放置工程文件的路径-选择MCU-51XX-利用向导-1设置工作空间名-MULtisim_asm-2选择控制语言(C或ASM_Assembly)与文件名main.asm-3确认工程名-保存

添加必要的元器件—设置相应的参数—连接线路—LED的参数主要有2V/0.3mA

建立汇编语言程序—双击main.asm-编译代码-右键main.asm-Build

汇编语言是用助记符形式表达的机器指令—二进制代码,需要对单片机的硬件结构—数字电路的工作模式比较熟悉。其指令格式可以简单的分类为:(按照三器(运算器、控制器、存储器)和IO)

标号:操作码助记符目的操作数,源操作数;注释

CIRCLE:  CLR       P1.0               ;使LED灯灭

SETB     P0.0

主要指令有:

伪指令—用于人们的程序阅读,计算机不执行该指令—形式上的汇编指令

ORG    0000H     ;这是伪指令

看一遍下面这个图

从基本结构与工作原理可以概略知道:计算机语言的基本模式--汇编语言的基本形式尤其如此。

位操作

数据传送指令

DD1:     MOV        C ,   P1.0   ;直接寻址位进位

BB3:     SETB        C             ;进位置1

程序转移指令

   JC          BB3       ;进位为1转移

字节-8位的整体操作

数据传送指令

DD1:     MOV      A      #0FH   ;立即数送累加器

算术运算指令

BB3:     ADD      A      #03H   ;立即数A加到累加器

逻辑操作指令

VV2:    ORL       A     #00H   ;立即数或累加器

程序转移指令

  CJNE     A     #00H ,BB3    ;立即数与累加器不等转移

…等等…

应用中通过注释来学习、理解、记忆。用中学、学中用。

汇编语言程序也有一般语言的基本特点—实际问题要求!!必须满足的要求。汇编语言结构化设计的三个基本模式-模版,顺序结构、分支结构与循环结构。主程序结构等基本格式与模版就全在这里了。

一个实例

建立原理图—双击打开Multisim-选择放置工程文件的路径-选择MCU-51XX-利用向导-1设置工作空间名-MULtisim_asm-2选择控制语言(C或ASM_Assembly)与文件名main.asm-3确认工程名-保存

添加必要的元器件

建立汇编语言程序—双击main.asm-编译代码-右键main.asm-Build

硬件电路原理图

程序指令--位与字节操作

$MOD51; This includes 8051 definitions for the metalinkassembler

; Please insert your code here.

ORG 0000H   ;这是伪指令

START:  ;这是伪指令,机器并不执行。

MAIN:    ;伪指令,主程序,用于区别子程序

SETB P1.0   ;使LED灯亮-位操作-置P1.0位1-高电平

SETB P3.0   ;位操作--进位置1—高电平

LCALL DELAY  ;调延时程序-长调-与内存位置有关

CLR P1.0    ;使LED灯灭,请进位-置0

CLR P3.0    ;使LED灯灭

CALL DELAY ;调延时程序-短调-与内存位置有关

CLR A ;累加器清0

MOV A,#0FFH ;字节操作-直接数送累加器

MOV P0,A  ;字节-8位的整体操作,累加器送直接寻址

MOV P2,#99H ; 直接数送直接寻址

CALL DELAY  ;调延时程序

MOV A,#00H ;字节-8位的整体操作-

MOV P0,A  ;字节-8位的整体操作

MOV P2,#88H  ;88-A,99-4是16进制数的数码管字符编码

SJMP MAIN  ;跳转到MAIN:

;子程序--延时程序

DELAY: MOV R7,#250   ;直接数送寄存器

D1: MOV R6,#250

DJNZ R7,D1  ;寄存器减1非0转移D1

RET  ;从子程序返回

END

程序的三种基本格式顺序、分支、循环都有了

程序的编辑、编译、调试

硬件电路仿真测试图

干中学—学中干。不具备硬件电路与程序语言的基本知识,当然要用计算机仿真技术是有困难的。不茫然,慢慢来,耐心就好。

欢迎 发表评论:

Copyright © 2018 俄语入门