单片机入门基础知识大全免费下载 单片机第八课(寻址方式与指令系统) 通过前面的学习,我们已经了解了单片机内部的结构,并且也已经知道,要控制单片机,让它为我们干学,要用指令,我们已学了几条指令,但很零散,从现在开始,我们将要系统地学习8051的指令部份。 一、概述 1、指令的格式 我们已知,要让计算机做事,就得给计算机以指令,并且我们已知,计算机很“笨”,只能懂得数字,如前面我们写进机器的75H,90H,00H等等,所以指令的第一种格式就是机器码格式,也说是数字的形式。但这种形式实在是为难我们人了,太难记了,于是有另一种格式,助记符格式,如MOV P1,#0FFH,这样就好记了。 这两种格式之间的关系呢,我们不难理解,本质上它们完全等价,只是形式不一样而已。 2、汇编 我们写指令使用汇编格式,而计算机只懂机器码格式,所以要将我们写的汇编格式的指令转换为机器码格式,这种转换有两种方法:手工汇编和机器汇编。手工汇编实际上就是查表,因为这两种格式纯粹是格式不同,所以是一一对应的,查一张表格就行了。不过手工查表总是嫌麻烦,所以就有了计算机软件,用计算机软件来替代手工查表,这就是机器汇编。 二、寻址 让我们先来复习一下我们学过的一些指令:MOV P1,#0FFH,MOV R7,#0FFH这些指令都是将一些数据送到相应的位置中去,为什么要送数据呢?第一个因为送入的数可以让灯全灭掉,第二个是为了要实现延时,从这里我们可以看出来,在用单片机的编程语言编程时,经常要用到数据的传递,事实上数据传递是单片机编程时的一项重要工作,一共有28条指令(单片机共111条指令)。下面我们就从数据传递类指令开始吧。 分析一下MOV P1,#0FFH这条指令,我们不难得出结论,第一个词MOV是命令动词,也就是决定做什么事情的,MOV是MOVE少写了一个E,所以就是“传递”,这就是指令,规定做什么事情,后面还有一些参数,分析一下,数据传递必须要有一个“源”也就是你要送什么数,必须要有一个“目的”,也就是你这个数要送到什么地方去,显然在上面那条指令中,要送的数(源)就是0FFH,而要送达的地方(目的地)就是P1这个寄存器。在数据传递类指令中,均将目的地写在指令的后面,而将源写在最后。 这条指令中,送给P1是这个数本身,换言之,做完这条指令后,我们可以明确地知道,P1中的值是0FFH,但是并不是任何时候都可以直接给出数本身的。例如,在我们前面给出的延时程序例是这样写的: MAIN: SETB P1.0 ;(1) LCALL DELAY ;(2) CLR P1.0 ;(3) LCALL DELAY ;(4) AJMP MAIN ;(5) ;以下子程序 DELAY: MOV R7,#250 ;(6) D1: MOV R6,#250 ;(7) D2: DJNZ R6,D2 ;(8) DJNZ R7,D1 ;(9) RET ;(10) END ;(11) 表1 MAIN: SETB P1.0 ;(1) MOV 30H,#255 LCALL DELAY ; CLR P1.0 ;(3) MOV 30H,#200 LCALL DELAY ;(4) AJMP MAIN ;(5) ;以下子程序 DELAY: MOV R7,30H ;(6) D1: MOV R6,#250 ;(7) D2: DJNZ R6,D2 ;(8) DJNZ R7,D1 ;(9) RET ;(10) END ;(11) 表2 这样一来,我每次调用延时程序延时的时间都是相同的(大致都是0.13S),如果我提出这样的要求:灯亮后延时时间为0.13S灯灭,灯灭后延时0.1秒灯亮,如此循环,这样的程序还能满足要求吗?不能,怎么办?我们可以把延时程序改成这样(见表2):调用则见表2中的主程,也就是先把一个数送入30H,在子程序中R7中的值并不固定,而是根据30H单元中传过来的数确定。这样就可以满足要求。 从这里我们可以得出结论,在数据传递中要找到被传递的数,很多时候,这个数并不能直接给出,需要变化,这就引出了一个概念:如何寻找操作数,我们把寻找操作数所在单元的地址称之为寻址。在这里我们直接使用数所在单元的地址找到了操作数,所以称这种方法为直接寻址。除了这种方法之外,还有一种,如果我们把数放在工作寄存器中,从工作寄存器中寻找数据,则称之为寄存器寻址。例:MOV A,R0就是将R0工作寄存器中的数据送到累加器A中去。提一个问题:我们知道,工作寄存器就是内存单元的一部份,如果我们选择工作寄存器组0,则R0就是RAM的00H单元,那么这样一来,MOV A,00H,和MOV A,R0不就没什么区别了吗?为什么要加以区分呢?的确,这两条指令执行的结果是完全相同的,都是将00H单元中的内容送到A中去,但是执行的过程不同,执行第一条指令需要2个周期,而第二条则只需要1个周期,第一条指令变成最终的目标码要两个字节(E5H 00H),而第二条则只要一个字节(E8h)就可以了。 这么斤斤计较!不就差了一个周期吗,如果是12M的晶振的话,也就1个微秒时间了,一个字节又能有多少? 不对,如果这条指令只执行一次,也许无所谓,但一条指令如果执行上1000次,就是1毫秒,如果要执行1000000万次,就是1S的误差,这就很可观了,单片机做的是实时控制的事,所以必须如此“斤斤计较”。字节数同样如此。 再来提一个问题,现在我们已知,寻找操作数可以通过直接给的方式(立即寻址)和直接给出数所在单元地址的方式(直接寻址),这就够了吗? 看这个问题,要求从30H单元开始,取20个数,分别送入A累加器。 就我们目前掌握的办法而言,要从30H单元取数,就用MOV A,30H,那么下一个数呢?是31H单元的,怎么取呢?还是只能用MOV A,31H,那么20个数,不是得20条指令才能写完吗?这里只有20个数,如果要送200个或2000个数,那岂不要写上200条或2000条命令?这未免太笨了吧。为什么会出现这样的状况?是因为我们只会把地址写在指令中,所以就没办法了,如果我们不是把地址直接写在指令中,而是把地址放在另外一个寄存器单元中,根据这个寄存器单元中的数值决定该到哪个单元中取数据,比如,当前这个寄存器中的值是30H,那么就到30H单元中去取,如果是31H就到31H单元中去取,就可以解决这个问题了。怎么个解决法呢?既然是看的寄存器中的值,那么我们就可以通过一定的方法让这里面的值发生变化,比如取完一个数后,将这个寄存器单元中的值加1,还是执行同一条指令,可是取数的对象却不一样了,不是吗。通过例子来说明吧。 MOV R7,#20 MOV R0,#30H LOOP:MOV A,@R0 INC R0 DJNZ R7,LOOP 这个例子中大部份指令我们是能看懂的,第一句,是将立即数20送到R7中,执行完后R7中的值应当是20。第二句是将立即数30H送入R0工作寄存器中,所以执行完后,R0单元中的值是30H,第三句,这是看一下R0单元中是什么值,把这个值作为地址,取这个地址单元的内容送入A中,此时,执行这条指令的结果就相当于MOV A,30H。第四句,没学过,就是把R0中的值加1,因此执行完后,R0中的值就是31H,第五句,学过,将R7中的值减1,看是否等于0,不等于0,则转到标号LOOP处继续执行,因此,执行完这句后,将转去执行MOV A,@R0这句话,此时相当于执行了MOV A,31H(因为此时的R0中的值已是31H了),如此,直到R7中的值逐次相减等于0,也就是循环20次为止,就实现了我们的要求:从30H单元开始将20个数据送入A中。 这也是一种寻找数据的方法,由于数据是间接地被找到的,所以就称之为间址寻址。注意,在间址寻址中,只能用R0或R1存放等寻找的数据。 二、指令 数据传递类指令 1) 以累加器为目的操作数的指令 MOV A,Rn MOV A,direct MOV A,@Ri MOV A,#data 第一条指令中,Rn代表的是R0-R7。第二条指令中,direct就是指的直接地址,而第三条指令中,就是我们刚才讲过的。第四条指令是将立即数data送到A中。 下面我们通过一些例子加以说明: MOV A,R1 ;将工作寄存器R1中的值送入A,R1中的值保持不变。 MOV A,30H ;将内存30H单元中的值送入A,30H单元中的值保持不变。 MOV A,@R1 ;先看R1中是什么值,把这个值作为地址,并将这个地址单元中的值送入A中。如执行命令前R1中的值为20H,则是将20H单元中的值送入A中。 MOV A,#34H ;将立即数34H送入A中,执行完本条指令后,A中的值是34H。 2)以寄存器Rn为目的操作的指令 MOV Rn,A MOV Rn,direct MOV Rn,#data 这组指令功能是把源地址单元中的内容送入工作寄存器,源操作数不变。
上传时间: 2013-10-13
上传用户:3294322651
针对保险柜应具有的使用方便,安全,可靠等特点,设计了一种指纹保险柜。本文介绍了其中基于AT89S52 单片机为核心的指纹保险柜控制部分的工作原理和软硬件的具体设计方法,并给出其硬件原理图、软件流程图和源代码举例。指纹是万人不同、终生不变的,如果能把指纹作保险柜的钥匙,那么这种保险柜是最安全最可靠的保险柜。指纹身份识别控制部分以单片机为核心,用来与保险柜机械部分组装在一起成为指纹保险柜,指纹保险柜具有使用方便,安全,可靠等特点,不用钥匙或密码,仅凭指纹实现了保险柜的安全控制。使用指纹保险柜避免了随身携带钥匙的麻烦,也免去了因钥匙丢失或者被冒用而引起的烦恼。破坏和搬动保险柜,都会使报警系统启动,发出声音报警并带有显示。下面介绍其工作原理和设计思想。
上传时间: 2013-11-15
上传用户:macarco
基于单片机的LED汉字显示屏设计与制作:在大型商场、车站、码头、地铁站以及各类办事窗口等越来越多的场所需要用LED点阵显示图形和汉字。LED行业已成为一个快速发展的新兴产业,市场空间巨大,前景广阔。随着信息产业的高速发展,LED显示作为信息传播的一种重要手段,已广泛应用于室内外需要进行服务内容和服务宗旨宣传的公众场所,例如户内外公共场所广告宣传、机场车站旅客引导信息、公交车辆报站系统、证券与银行信息显示、餐馆报价信息豆示、高速公路可变情报板、体育场馆比赛转播、楼宇灯饰、交通信号灯、景观照明等。显然,LED显示已成为城市亮化、现代化和信息化社会的一个重要标志。 本文基于单片机(AT89C51)讲述了16×16 LED汉字点阵显示的基本原理、硬件组成与设计、程序编译与下载等基本环节和相关技术。2 硬件电路组成及工作原理本产品拟采用以AT89C51单片机为核心芯片的电路来实现,主要由AT89C51芯片、时钟电路、复位电路、列扫描驱动电路(74HC154)、16×16 LED点阵5部分组成,如图1所示。 其中,AT89C51是一种带4 kB闪烁可编程可擦除只读存储器(Falsh Programmable and Erasable Read OnlyMemory,FPEROM)的低电压、高性能CMOS型8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,能够进行1 000次写/擦循环,数据保留时间为10年。他是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。因此,在智能化电子设计与制作过程中经常用到AT89C51芯片。时钟电路由AT89C51的18,19脚的时钟端(XTALl及XTAL2)以及12 MHz晶振X1、电容C2,C3组成,采用片内振荡方式。复位电路采用简易的上电复位电路,主要由电阻R1,R2,电容C1,开关K1组成,分别接至AT89C51的RST复位输入端。LED点阵显示屏采用16×16共256个象素的点阵,通过万用表检测发光二极管的方法测试判断出该点阵的引脚分布,如图2所示。 我们把行列总线接在单片机的IO口,然后把上面分析到的扫描代码送人总线,就可以得到显示的汉字了。但是若将LED点阵的行列端口全部直接接入89S51单片机,则需要使用32条IO口,这样会造成IO资源的耗尽,系统也再无扩充的余地。因此,我们在实际应用中只是将LED点阵的16条行线直接接在P0口和P2口,至于列选扫描信号则是由4-16线译码器74HC154来选择控制,这样一来列选控制只使用了单片机的4个IO口,节约了很多IO资源,为单片机系统扩充使用功能提供了条件。考虑到P0口必需设置上拉电阻,我们采用4.7 kΩ排电阻作为上拉电阻。
上传时间: 2013-10-16
上传用户:ywcftc277
Smith控制算法仿真与控制:了解计算机控制过程,及用不同种高级语言编写实验程序的方法与特点。了解Smith算法和程序设计。掌握阶跃信号、自定义信号下,Smith算法的参数整定及被控对象的仿真与控制。了解组态软件在工业自动化方面的应用和基本使用方法。 单回路温度控制箱A/D、DA转换板温度检测元件XMZ数字显示仪万用表 1 Smith控制算法的参数整定仿真,绘制仿真曲线。2 Smith控制算法实时控制的参数整定,绘制实时控制曲线。
上传时间: 2013-11-25
上传用户:europa_lin
微型机算计发展概述人类从原始社会学会使用工具以来到现代社会经历了三次大的产业革命:农业革命、工业革命、信息革命。而信息革命是以计算机技术和通信技术的发展和普及为代表的。人类已进入了高速发展的现代时期。其中计算机科学和技术发展之快,是任何其他技术都无法相提并论的自从1946年美国宾夕法尼亚大学研制成功的世界上第一台电子计算机到现在已50多年的历史。计算机的发展经历了四代:第一代:电子管电路计算机,电子管数:18800个;继电器数量:5000个;耗电量:150KW;重量:30t;占地面积:150平方米;运算速度:5000次加法运算/s。第二代:晶体管电路计算机(60年代初)第三代:小规模集成电路计算机。第四代:大规模(LSI)和超大规模(VSLI)集成电路计算机。第四代计算机基本情况:运算速度为每秒几千亿次到几万亿次;从数值计算和数据处理到目前进行知识处理的人工智能阶段;计算机不仅可以处理文字、字符、图形图象信息,而且可以处理音频、视频等多媒体信息;计算机正朝着智能化和多媒体化方向发展。微型计算机的定义:以微处理器为核心,再配上半导体存储器、输入/输出接口电路、系统总线及其它支持逻辑电路组成的计算机称微型计算机。在1971年美国Intel公司首先研制成功世界上第一块微处理器芯片4004以来,差不多每隔2~3年就推出一代新的微处理器产品;如今已推出了第五代微处理器。因为微处理器是微型计算机的核心部件,它的性能在很大程度上决定了微型计算机的性能,所以微型计算机的发展是以微处理器的发展而更新换代的。微处理器和微型计算机的发展:1.第一代微处理器和微型计算机:(1971~1973年)——4位CPU和低档8位处理器,典型的产品有:Intel 4004、改进型的4040,是4位处理器,以它为核心构成的微机是MCS-4。Intel 8008是8位通用微处理器,以它为核心所构的微机是MCS-8。参数:芯片采用PMOS工艺;集成度为2000管/片;时钟频率1MHz;平均指令执行时间为20μs。2.第二代微处理器和微型计算机(1973~1978年)——成熟的8位CPU,典型的产品有:Intel 8080(1973年由Intel公司推出)MC6800 (1974年由美国Motorola推出。Z-80 (1975年由Zilog公司推出。Intel 8085 (1976年由Intel公司推出,是Intel 8080的改进型。MOS 6502,由MOS公司推出,它是IBM PC机问世之前世界上最流行的微型计算机Apple2(苹果机)的CPU。第二代微处理器的参数:芯片工艺采用NMOS工艺,集成度达到5000~9000管/片;时钟频率2~4MHz;平均指令执行时间为1~2μs;具有多种寻址方式,指令系统完善,基本指令100多条。特点:具有中断、DMA等控制功能;也考虑了兼容性、接口标准化和通用性、配套的外围电路功能和种类齐全。在软件方面:主要是汇编,还有一些简单的高级语言和操作系统。
上传时间: 2013-11-24
上传用户:蒋清华嗯
本文介绍了以8051为例的单片机与10兆以太网控制器RTL8019AS的硬件连接电路的实现和编程方法。
上传时间: 2013-10-30
上传用户:jiangxiansheng
USB2.0 摄像头微处理器支持高速USB2.0 接口,内嵌强劲的图像后处理单元,JPEG 高速编译码器,支持高达200 万像素的CMOS 传感器接口和CCD 传感器接口,处理器设计的产品可以实现独特的运动监测功能与脸部追踪功能,这不仅大大加强了显示效果,提高了画面的品质,更拓展了PC 摄像头的应用领域,如增强的实时视频聊天功能和门禁监测系统。关键词:USB2.0,微控制器,硬件设计1.引言USB2.0 摄像头微处理器支持高速USB2.0 接口,内嵌强劲的图像后处理单元,JPEG 高速编译码器,支持高达200 万像素的CMOS 传感器接口和CCD 传感器接口,处理器设计的产品可以实现独特的运动监测功能与脸部追踪功能,这不仅大大加强了显示效果,提高了画面的品质,更拓展了PC 摄像头的应用领域,如增强的实时视频聊天功能和门禁监测系统。主要功能:USB2.0 高速传输并兼容USB1.1;高速图像后处理单元;JPEG 高速编译码器;VGA 下30 帧/秒高速传输;CMOS/CCD 接口;内置8 比特微控制器。不仪具备以上的先进特性,还拥有以下多种可扩展性:多个GPIO 接口为增加连拍、LED 指示灯、快捷键等功能提供了无限可能;USB2.0 兼容USB1.1,为摄像头的广泛的使用增加了保障;支持多种操作系统,如64-bit Window,Windows XP,Linux,Mac,VxWorks,WinCE等等。以下就是对USB2.0 摄像头微处理器的硬件设计方法及外围电路分布的介绍。2.系统硬件设计2.1 振荡器USB2.0 摄像头微处理器的钟频是12MHz,外部时钟频率稳定性必须小于±50ppm。图1 是振荡器电路的设计参考图。
上传时间: 2014-01-16
上传用户:dumplin9
单片机原理与应用《课程简介》:单片机已成为电子系统中进行数据采集、信息处理、通信联络和实施控制的重要器件。通常利用单片机技术在各种系统、仪器设备或装置中,形成嵌入式智能系统或子系统。因此,单片机技术是电类专业特别是电子信息类学生必须具备的基本功。本课程以51系列单片机为模型,主要向学生介绍单片机的基本结构、工作原理、指令系统与程序设计、系统扩展与工程应用。作为微机原理与接口技术的后续课程,本课程强调实践环节,侧重系统构成与应用设计。力求通过实践环节,软、硬结合,培养初步的单片机开发能力,并使其前导课程讲授的基本概念得到综合与深化。由于课时的限制,综合性的应用设计安排在后续课程《微机应用系统设计》中进行。 课 程 内 容:第一章 单片微型计算机概述单片机的发展与应用 MCS-51系列单片机简介第二章 MCS-51系列单片机结构MCS-51单片机基本结构 CPU 时序简介 存储器空间结构 片内RAM与SFR时钟电路与复位电路 并行I/O口与总线扩展第三章 MCS-51单片机指令系统指令系统简介数据传送指令 数据处理指令 位处理指令 程序控制指令汇编语言程序设计方法 程序调试的常用方法第四章 SCB-I 单片单板机SCB-I 单片单板机结构简介 监控系统简介SCB-I 单片单板机的基本操作 第五章 单片机常用接口电路的软、硬件设计LED显示接口电路与应用编程键盘接口电路与应用编程计数器/定时器工作原理及其应用编程MCS-51中断系统及其应用编程8255扩展并行接口及其应用编程串行通信接口及其应用编程A/D与D/A转换接口及其应用编程*第六章 单片机应用系统设计举例第七章 单片机开发工具简介* 加“*”为选讲内容教学要求:1、 了解单片机的一般性概念及单片机技术的发展。2、 掌握51系列单片机的基本结构与工作原理。3、 掌握51系列单片机的指令系统与程序设计的基本方法。4、 以单片单板机为样板,掌握51系列单片机的系统扩展设计。5、 通过实验,掌握单片机常用接口电路的软硬件设计及其应用。6、 以上为本课程的基本要求。作为提高要求,对有能力、有兴趣的学生,若能较快地完成基本实验,可在规定课时内安排有一定难度的综合性实验,以提高其应用设计的能力。 课时安排和考核方式:1、 讲课40学时,实验20学时,课内外学时比 1:2 ;(实验从第七周开始,7个基本实验,选做1个综合实验)2、 考核方式平时考查 20实验考核 40(含实验过程、实验验收与实验报告)期末笔试 40参考书:《MCS-51单片机应用设计》 张毅刚 等编 哈尔滨工业大学出版社《MCS-51系列单片机原理及应用》 孙涵芳 徐爱卿 编著 北京航空航天大学出版社《单片微机与测控技术》 赵秀菊 等编 东南大学出版社《单片微型机原理、应用与实验》 张友德 等编 复旦大学出版社 《单片机实验》 肖璋 雷兆宜 编 暨南大学讲义
上传时间: 2014-01-08
上传用户:417313137
MedWin V3.0Beta2集成开发环境是来自万利电子公司的51开发环境.支持ME-3200仿真器和8051的模拟仿真。这是国内自行开发的,拥有自主版权的51编译器.
上传时间: 2013-11-07
上传用户:brilliantchen
自制89C51单片机实验电路板 学习单片机离不开实验,以往单片机的实验往往依赖于仿真机和单片机学习系统,价格昂贵,初学者很难配备。近年来,随着FLASH型单片机的广泛应用,采用软件模拟加写片验证成为一种经济实用的实验方法,以AT89C51单片机为例,其价格不足¥10RMB,而擦、写次数可以有1000次,一块芯片即可做上千次的实验。目前,流行的单片机开发软件Keil可以免费获得用于学习的EVAL版;编程器价格并不昂贵,专门用于写89C51类芯片的编程器价格更低廉(不足百元),而且编程器也是以后开发单片机所必备的工具;相比之下,用于实验的电路板制作比较麻烦,用万用板搭接,只能做些很简单的电路,稍复杂的电路一般要用到双面板,而业余条件下是很难自制双面板的,而且实验电路板主要是用于学习,学完了,也就没有什么使用价值了,所以很多人希望能够廉价地获得。作者在多年单片机教学(包括从事网络教学)的基础上,开发了一块有较多功能但使用单面板的单片机实验板,适于业余爱好者自制。这块实验板采用89C51为主芯片,板上安装了5位数码管,8个发光二极管,四个按钮开关,一个简单的音响电路,一个用于计数实验的振荡器,At24CXXX类芯片插座,X5045芯片插座,RS232串行接口等。使用这块实验板可以进行流水灯、人机界面程序设计、音响、中断、计数器等基本编程练习,还可以学习I2C接口芯片使用、SPI接口芯片使用、与PC机进行串行通讯等目前较为流行的技术。图1是该实验板的电路原理图,从图中可以看出,该实验板由若干块集成电路和一些阻容元件等组成,下面我们就分别介绍。1、发光二极管接口主芯片(U1)的P1端口接了8个发光二极管,这些发光二极管的负极接到P1端口各引脚,而正极则通过一个排电阻(标号为JP4,阻值为470殴)接到正电源端,这样,这些发光二极管亮的条件就U1的P1口相引的引脚为低电平,即如果P1口某引脚输出为0,相应的灯亮,如果输出为1,相应的灯灭。例:MOV P1,#0FH该行程序将使发光二极管L1-L4熄灭,而L5-L8点亮。2、数码管接口U1的P0口和P2口的部份引脚构成了5位LED数码管驱动电路,这里LED数码管采用了共阳型,共阳型数码管的笔段(即对应abcdefgh)引脚是二极管的负极,所有二极管的正极连在一起,构成公共端,即片选端,对于这种数码管的驱动,要求在片选端提供电流,为此,使用了PNP型三极管作为片选端的驱动,共使用5只三极管,所有三极管的发射极连在一起,接到正电源端,它们的基极则分别连到P2.0⋯P2.4,这样,当P2.0⋯P2.4中某引脚输出是高电平时,三极管不导通,不能给相应位的数码管供电,该位数码管的所有笔段都不亮,反之,如果某引脚是低电平时,三极管导通,可以给相应的数码管供电,该位数码管是否点亮,点亮哪些笔段,取决于这些笔段引脚是高或低电平。从图图1 共阳型数LED显示器.....
上传时间: 2013-11-14
上传用户:dingdingcandy