Mcs杠51系列单片机没有 *** 作系统如何实现开机运行写入的程序

Mcs杠51系列单片机没有 *** 作系统如何实现开机运行写入的程序,第1张

MCS-51系列单片机没有 *** 作系统,为实现开机就运行写入的程序有两种方法,即将程序写入ROM地址为0000H开始的地方,或在ROM地址为0000H开始的地方添加一无条件转移语句,跳转到写入的程序。一般采用第二种。因为ROM地址为0003H开始的地方为中断服务程序入口地址,直接写入,会导致中断功能无法正常运行。

在mcs-51或者其他烧录软件上进行烧录。根据查询mcs-51单片机详细信息得知,在mcs-51系列单片机者其他烧录软件上进行烧录,然后重启单片机即可开机运行写入的程序。程序是指示计算机每一步动作的指令,也是一个可执行文件 。

与电脑差不多,读入数据后,依据半导体进行逻辑运算,并把结果输出。

单片机的基本结构

运算器:用于实现算术和逻辑运算。计算机的运算和处理都在这里进行;

控制器:是计算机的控制指挥部件,使计算机各部份能自动协调的工作;

存储器:用于存放程序和数据;(又分为内存储器和外存储器,内存储器就如我们电脑的硬盘,外存储器就如我们的U盘)

输入设备:用于将程序和数据输入到计算机(例如我们电脑的键盘、扫描仪);

输出设备:输出设备用于把计算机数据计算或加工的结果以用户需要的形式显示或保存(例如我们的打印机)。

注:1、通常把运算器和控制器合在一起称为中央处理器(Central Processing Unit),简称CPU。

2、通常把外存储器、输入设备和输出设备合在一起称之为计算机的外部设备。

1 中央处理器(CPU):

刚跟大家讲过,需要提醒的是MCS-51的CPU能处理8位二进制数或代码;

2 内部数据存储器(RAM):

8051芯片共有256个RAM单元,其中后128单元被专用寄存器占用(稍后我们详解),能作为寄存器供用户使用的只是前128单元,用于存放可读写的数据。因此通常所说的内部数据存储器就是指前128单元,简称内部RAM。地址范围为00H~FFH(256B)。是一个多用多功能数据存储器,有数据存储、通用工作寄存器、堆栈、位地址等空间。

3 内部程序存储器(ROM):

在前面也已讲过,8051内部有4KB的ROM,用于存放程序、原始数据或表格。因此称之为程序存储器,简称内部RAM。地址范围为0000H~FFFFH(64KB)。

4 定时器/计数器

8051共有2个16位的定时器/计数器,以实现定时或计数功能,并以其定时或计数结果对计算机进行控制。定时时靠内部分频时钟频率计数实现,做计数器时,对P34(T0)或P35(T1)端口的低电平脉冲计数。

5 并行I/O口

MCS-51共有4个8位的I/O口(P0、P1、P2、P3)以实现数据的输入输出。具体功能在后面章节中将会详细论述。

6 串行口

MCS-51有一个全双工的串行口,以实现单片机和其它设备之间的串行数据传送。该串行口功能较强,既可作为全双工异步通信收发器使用,也可作为移位器使用。RXD( P30)脚为接收端口,TXD(P31)脚为发送端口。

7 中断控制系统

MCS-51单片机的中断功能较强,以满足不同控制应用的需要。共有5个中断源,即外中断2个,定时中断2个,串行中断1个,全部中断分为高级和低级共二个优先级别。

8 时钟电路

MCS-51芯片的内部有时钟电路,但石英晶体和微调电容需外接。时钟电路为单片机产生时钟脉冲序列。系统允许的晶振频率为12MHZ

51单片机执行指令的过程

单片机执行程序的过程,实际上就是执行我们所编制程序的过程。即逐条指令的过程。计算机每执行一条指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令。

取指令的任务是:根据程序计数器PC中的值从程序存储器读出现行指令,送到指令寄存器。

分析指令阶段的任务是:将指令寄存器中的指令 *** 作码取出后进行译码,分析其指令性质。如指令要求 *** 作数,则寻找 *** 作数地址。

计算机执行程序的过程实际上就是逐条指令地重复上述 *** 作过程,直至遇到停机指令可循环等待指令。

一般计算机进行工作时,首先要通过外部设备把程序和数据通过输入接口电路和数据总线送入到存储器,然后逐条取出执行。但单片机中的程序一般事先我们都已通过写入器固化在片内或片外程序存储器中。因而一开机即可执行指令。

下面我们将举个实例来说明指令的执行过程:

开机时,程序计算器PC变为0000H。然后单片机在时序电路作用下自动进入执行程序过程。执行过程实际上就是取出指令(取

出存储器中事先存放的指令阶段)和执行指令(分析和执行指令)的循环过程。

例如执行指令:MOV A,#0E0H,其机器码为“74H E0H”,该指令的功能是把 *** 作数E0H送入累加器,

0000H单元中已存放74H,0001H单元中已存放E0H。当单片机开始运行时,首先是进入取指阶段,其次序是:

1 程序计数器的内容(这时是0000H)送到地址寄存器;

2 程序计数器的内容自动加1(变为0001H);

3 地址寄存器的内容(0000H)通过内部地址总线送到存储器,以存储器中地址译码电跟,使地址为0000H的单元被选中;

4 CPU使读控制线有效;

5 在读命令控制下被选中存储器单元的内容(此时应为74H)送到内部数据总线上,因为是取指阶段,所以该内容通过数据总线被送到指令寄存器。

至此,取指阶段完成,进入译码分析和执行指令阶段。

由于本次进入指令寄存器中的内容是74H( *** 作码),以译码器译码后单片机就会知道该指令是要将一个数送到A累加器,而该数是在这个代码的下一个存储单元。所以,执行该指令还必须把数据(E0H)从存储器中取出送到CPU,即还要在存储器中取第二个字节。其过程与取指阶段很相似,只是此时PC已为0001H。指令译码器结合时序部件,产生74H *** 作码的微 *** 作系列,使数字E0H从0001H单元取出。因为指令是要求把取得的数送到A累加器,所以取出的数字经内部数据总线进入A累加器,而不是进入指令寄存器。至此,一条指令的执行完毕。单片机中PC=0002H,PC在CPU每次向存储器取指或取数时自动加1,单片机又进入下一取指阶段。这一过程一直重复下去,直至收到暂停指令或循环等待指令暂停。CPU就是这样一条一条地执行指令,完成所有规定的功能。

参考资料:

>

51单片机可以实现执行时间片形式的多线程任务,具体做法是:1、弄个表两字节一个单位存一下各个任务的执行地址。2、在中断级别较高的T0定时器中断中,把中断压进堆栈的那两个字节保存到表里。3、用表里别的线程的地址重压进堆栈。4、从中断里退出就可以切到另一个线程继续跑了。

我记得这个在早先2000年那时候的大学计算机系单片机原理专业课里讲过,但是那科挂掉的实在太多,现在好像已经把这些独门绝技大多给砍没了,就剩背背汇编指令集。

不可以。

c语言程序是不可以直接下载到单片机中的,c语言的程序需要通过编译程序处理生成单片机能执行的程序并下载到单片机才能被正确执行。

C语言程序是一种计算机编程,用于软件应用程序编程,通过不同的排列组合可以进行多种方式进行程序的设计。

以上就是关于Mcs杠51系列单片机没有 *** 作系统如何实现开机运行写入的程序全部的内容,包括:Mcs杠51系列单片机没有 *** 作系统如何实现开机运行写入的程序、mcs-51系列单片机如何实现开机运行写入的程序、单片机是怎样执行指令的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9345446.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存