高分:89C51单片机流水灯程序求步骤详解,看懂了就给分

高分:89C51单片机流水灯程序求步骤详解,看懂了就给分,第1张

uchar code display_P0[]={

0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,//P0口由低位向高位依次亮灯(前一位的灯灭)

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,//P0口灯全灭

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,,//P0口灯全灭

0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0xFF,//P0口由高位向低位依次亮灯(前一位的灯灭),最后全灭

0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x00,//P0口由低位向高位依次亮灯(前一位的灯b不灭)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //P0口灯全亮

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//P0口灯全亮

0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0xFE, //P0口灯由高位向低位依次灭(前一位不亮),最后仅剩最低位亮灯。

0xFC,0xF9,0xF3,0xE7,0xCF,0x9F,0x3F,0x7F,//P0口以两个亮灯为单位,由低位向高位逐位移动,最后移至最高位,仅剩最高位亮灯。

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, //P0口全灭

0xE7,0xDB,0xBD,0x7E,0xBD,0xDB,0xE7,0xFF,//P0口中间两位亮灯,然后两个亮灯分别向两端移动,当分别移至最高位和最低位时,再按原方法返回,返回至起始状态后全灭。

0xE7,0xC3,0x81,0x00,0x81,0xC3,0xE7,0xFF,//P0口中间两位亮灯,然后两个亮灯分别向两端扩散,当分别扩散至次高位和次低位时,再按原方法恢复,返回至起始状态后全灭。

0xAA,0x55,0x18,0xFF,0xF0,0x0F,0x00,0xFF,//差位两灭,先是最高位亮,然后最高位灭;再变成中间两位灭,其余的全亮;全灭→低四位亮→高四位亮→全灭。

0xFF,0x00,0x00,0xFF,0xFF };//全灭→全亮→全亮→全灭→全灭

uchar code display_P2[]={ //P2口可参照P0口流水灯情况。基本相同。

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,

0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x00, //

0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0xFE,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, //

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,

0xFC,0xF9,0xF3,0xE7,0xCF,0x9F,0x3F,0xFF, //

0xE7,0xDB,0xBD,0x7E,0xBD,0xDB,0xE7,0xFF,

0xE7,0xC3,0x81,0x00,0x81,0xC3,0xE7,0xFF,

0xAA,0x55,0x18,0xFF,0xF0,0x0F,0x00,0xFF,

0xFF,0x00,0x00,0xFF,0xFF };

单片机使用方法主要有以下几步:

1选择合适的单片机,根据需求识别每个芯片的功能及其特性;

2编写程序,根据需求编写程序,并将程序烧录到单片机;

3硬件连接,根据需求连接单片机的外围电路,完成对外部设备的控制;

4系统调试,对单片机进行调试,完成系统的最终功能。

拓展:单片机使用过程中,需要注意的是单片机的程序空间,如果程序空间不够,则需要考虑采用外部存储器等技术;同时,也要注意单片机的源程序和编译后的程序,以及单片机烧录程序的安全性,否则可能会破坏单片机的功能。

方法/步骤

1

首先是打开keil软件,打开后显示的界面如下

2

如下第一张图所示点击project->new project,点击后将会出现如下第二张图所示界面;在文件框中填写你的工程名,名字可以是任意英文字符组成的(在此时你最好在你所希望存储该工程的地方新建一文件夹,如第二张图所示就是在桌面上建立了一个测试文件夹来存储新建的工程)

3

输入工程名后会出现如下图所示的芯片选择对话框,选择你开发板上的型号即可(相信要看这张帖子的读者一定是在学51单片机,此时只需选择

Atmel->AT89c52即可。如下第二张图所示)

一路点击确认后回到如下图所示的主界面,并如下图所示点击新建程序输入文本

点击后出现如下第一张图所示界面,并点击保存按钮

点击保存按钮后出现下第一张图所示对话框,在箭头所指的地方输入源文件名称加后缀名(如果你是用C语言编写程序后缀名为c;如果你是用汇编语言编写程序则后缀名为asm)并点击确认保存。确认后界面如下第二张图所示,注意箭头所指地方的变化。

接下来的一步是将源文件加入到工程中,点击选中source group并右击将会出现如下图所示界面。

再点击Add files to;如下第一张图箭头所示处。点击后将会出现第二张图所示的对话框,在该对话框中只要点击选中第五歩保存的源文件并点击Add即可(注意点击选中源文件前后的变化,并且特别注意点击Add后界面没有任何变化,你只要关闭该对话框即可)

打开source group后将会出现如下图箭头所指处的变化

在右边的源文件输入框中写入程序,并点击如图所示的编译按钮(可以看到该程序没有错误,编译成功)

但我们点击进入工程的文件夹没有看到后缀名为hex文件,如下图所示

所以我们需点击target按钮进行设置,如下第一张图所示。点击后出现第二张图所示对话框

在对话框中点击output选项如下图1处显示,并勾选create hex file如下图2处显示。勾选后关闭对话框并如第10步再编译一次。可以看到文件夹中生成了hex文件

单片机中一个程序的运行过程分为取指令,分析指令和执行指令几个步骤。

取指令的任务是:根据程序计数器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就是这样一条一条地执行指令,完成所有规定的功能。

ROM是只读存储器,用于存储程序代码;RAM是数据存储器,用于存放单片机运行时的数据,也就是说RAM中的数据掉电(复位)后就会消失,而ROM中的数据不会。

以上就是关于高分:89C51单片机流水灯程序求步骤详解,看懂了就给分全部的内容,包括:高分:89C51单片机流水灯程序求步骤详解,看懂了就给分、单片机如何使用、8位单片机的c语言程序设计新建文件夹步骤等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: https://outofmemory.cn/zz/9327874.html

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

发表评论

登录后才能评论

评论列表(0条)

保存