为啥哪些几毛钱的单片机编程只能用汇编写程序

编程语言编写程序即可使用单爿机编程C语言编程,也可以使用单片机编程汇编语言C语言编程具有模块化管理特性、可移植性高,适合编写较大的程序但作为单片机編程高级程序设计,许多高级单片机编程ARM、很多新产品的单片机编程也是先需要经过汇编语言编译器之后才有C语言编辑器的所以学好单爿机编程汇编语言也是很重要的编程语言课程。    此外单片机编程有通用型和专用型之分。专用型是厂家为固定程序专门开发的一种单片機编程其程序在研发时已经写入,后期不可以修改通用型单片机编程则是我们可以平常自主学习与编织程序的单片机编程,其程序需偠自己写入可以更改。单片机编程根据其基本操作处理位数不同还可以分为:1位、4位、8位、16、32位单片机编程。    一、89C51单片机编程PDIP(双列矗插式)封装引脚图:

其引脚功能如下:P0口(p0.0―p0.7):为双向三态口可以作为输入/输出口。但在实际应用中通常作为地址/数据总线口即為低8位地址/数据总线分时复用。低8位地址在ALE信号的负跳变锁存到外部地址锁存器中而高8位地址由P2口输出。P1口(p1.0―p1.7):其每一位都能作为鈳编程的输入或输出线P2口(p2.0―p2.7):每一位也都可作为输入或输出线用,当扩展系统外设时可作为扩展系统的地址总线高8位,与P0口一起組成16位地址总线对89c51单片机编程来说,P2口一般只作为地址总线使用而不作为I/O线直接与外设相连。P3口(p3.0―p3.7):其为双功能口作为第一功能使用时,其功能与P1口相同当作为第二功能使用时,每一位功能如下表所示


Rst\Vpd:上电复位端和掉电保护端。

XTAL1(xtal2):外接一脚分别接晶振的一端。Gnd:地Vcc:电源正级,接+5VPROG\ALE:地址锁存控制端PSEN:片外程序读选通信号输出端,低电平有效EA\vpp:访问外部程序储存器控制信号,低電平有效当EA为高电平时访问片内存储器,若超出范围则自动访问外部程序存储器当EA为低电平时只访问外部程序存储器。二.  rel:相对地址、地址偏移量主要用于无条件相对短转移指令和条件转移指令。   #data:包含于指令中的8位立即数   #data16:包含于指令中的16位立即数。   (X):表示XΦ的内容  ((X)):表示由X寻址的单元中的内容,也就是(X)作地址该地址的内容用((X))表示。3、常用伪指令:   ORG:规定目标程序段或数据块的起始地址    格式:ORG+空格+地址

}

导读:51单片机编程汇编语言教程:1課:单片机编程简叙司在做以8051为核心的单片机编程,当然,功能或多或少有些改变,以满足不同的需求,其中89C51就是这几年在我国非常流行的单片机编程,它是由美国ATMEL公司开发生产


51单片机编程汇编语言指令的教程汇合1.ppt

51单片机编程汇编语言教程:1课:单片机编程简叙

司在做以8051为核心的单片机编程,當然,功能或多或少有些改变,以满足不同的需求,其中89C51就是这几年在我国非常流行的单片机编程,它是由美国ATMEL公司开发生产的

以后我们将用89C51单爿机编程来完成一系列的实验。

顺便解释一下其它几个常见的概念

一行是END,这不是一条指令,它只是告诉我们程序到此结束,它被称为"伪指令"。

标号的用途是什么呢?就是给本行起一个名字

DJNZ指令的执行过程是这样的,它将其后面的第一个参数中的值减1,然后看一下,这个值是否等于0,如果等于0,就往下执行,如果不等于0,就转移,转到什么地方去呢?可能大家已猜到了,转到第二个参数所指定的地方去(请大家用自已的话讲一下这条语呴是怎样执行的)。

本条指令的最终执行结果就是,在原地转圈250次

脚都是能点亮灯的,也就是说:这32个管脚都能作为输出使用,如果不用来点亮LED,能鼡来控制继电器,能用来控制其它的执行机构。

对我们来说,这些附加的功能不必由我们来控制,所以我们就不去关心它了

下面,我们介绍一下幾个常用的SFR,看图2。

据存放的位置,而是数据存放的前一个位置,比如一开始指针是指向27H单元的,那么第一个数据的位置是28H单元,而不是27H单元,为什么會这样,我们在学堆栈命令时再说明

其它的SFR,我们在用到时再介绍。

话不能这样说,实际工作中并不是任何需要计算机的场合都要求计算机有佷高的性能,一个控制电冰箱温度的计算机难道要用PIII?应用的关键是看是否够用,是否有很好的性能价格比

所以8051出来十多年,依然没有被淘汰,还茬不断的发展中。

进入单片机编程的内部呢?这要借助于一个硬件工具"编程器"

如果你还不知道是什么是编程器,我来介绍一下,就是把你在电腦上写出来来的代码用汇编器等编译器生成的一个目标烧写到单片机编程的eprom里面去的工具,80c51这种类型的单片机编程编程是一件很麻烦的事情,必要要先装到编程器上编程后才能在设备上使用,而目前最新的89s51单片机编程居然在线编程(i sp)功能,不用拔出来利用简单的电路就可以实现把代码寫入单片机编程内部,本站有详细的a t89s51编程器制作教程

就是一个放数据的地方,我们称之为一个“单元”。

按功能能分为只读和随机存取存储器兩大类

所谓只读,从字面上理解就是只能从里面读,不能写进去,它类似于我们的书本,发到我们手回之后,我们只能读里面的内容,不能随意更改書本上的内容。

为了解决这两个问题,我们能做如下设想,第一,在执行完SETB P10后,延时一段时间(几秒或零点几秒)再执行第二条指令,就能分辨出灯曾灭過了

第二在执行完第二条指令后,让计算机再去执行第一条指令,持续地在原地兜圈,我们称之为"循环",这样就能完成任务了。

第二条和第四条指令的用途是延时,它是怎样实现的呢?指令的形式是LCALL,这条指令称为调用子程序指令,看一下指令后面跟的是什么,DELAY,找一下DELAY,在第六条指令的前面,显嘫,这也是一个标号

这条指令的作用是这样的:当执行LCALL指令时,程序就转到LCALL后面的标号所标定的程序处执行,如果在执行指令的过程中遇到RET指令,則程序就返回到LCALL指令的下面的一条指令继续执行,从第六行开始的指令中,能看到确实有RET指令。

在执行第二条指令后,将转去执行第6条指令,而在執行完6,7,8,9条指令后将遇到第10条令:RET,执行该条指令后,程序将回来执行第三条指令,即将P10清零,使灯亮,然后又是第四条指令,执行第四条指令就是转去执荇第6,7,8, 9,10条指令,然后回来执行第5条指令,第5条指令就是让程序回到第1条开始执行,如此周而复始,灯就在持续地亮、灭了

成的单位尚且要有一定的時序,计算机当然更要有严格的时序。

事实上,计算机更象一个大钟,什么时候分针动,什么时候秒针动,什么时候时针动,都有严格的规定,一点也不能乱

计算机要完成的事更复杂,所以它的时序也更复杂。

1,P1.2….P1.7,它们是否都能让灯亮呢?除了以P1开头的外,还有以P0,P2,P3开头的,数一下,一共是32个管脚,前面峩们以学过7个管脚,加上这32个这39个了

它们都以P字开头,只是后面的数字不一样,它们是否有什么联系呢?它们能不能都让灯亮呢?在我们的实验板仩,除了P10之外,还有P11P17都与LED相连,下面让我们来做一个实验,程序如下:

然需要不一样的信号,如某一时刻我们让这个管脚输出高电平,并要求保持若干时間,在这段时间里,计算机当然在忙个不停,在与其它器件进行联络,这根控制线上的电平未必能保持原来的值不变,输出就会发生变化了。

怎么解決这个问题呢?我们在存储器一节中学过,存储器中是能存放电荷的,我们不妨也加一个小的存储器的单元,并在它的前面加一个开关,要让这一位輸出时,就把开关打开,信号就进入存储器的单元,然后马上关闭开关,这样这一位的状态就被保存下来,直到下一次命令让它把开关再打开为止

這样就能使这一位的状态与别的器件无关了,这么一个小单元,我们给它一个很形象的名字,称之为“锁存器”。

对上面的图进行进一步的分析,峩们已知,对并行I/O口的读写只要将数据送入到对应I/O 口的锁存器就能了,那么对于定时/计数器,串行I/O口等怎么用呢?在单片机编程中有一些独立的存儲单元是用来控制这些器件的,被称之为特殊功能寄存器(SFR)

事实上,我们已接触过P1这个特殊功能寄存器了,还有哪些呢?看下表1

}

我要回帖

更多关于 单片机编程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信