正在加载...
正在加载...
正在加载...
       

正在加载... 正在加载...


正在加载...

单片机教程教案

从零开始51单片机教程——连载3 单片机引脚介绍
相关内容: 0000连载 开始 介绍 教程 单片机
关键字:单片机引脚8051引脚定义我们现在来说一下引脚单片机的40个引脚大致可分为4类:电源、时钟、控制和I/O引脚。⒈电源:⑴VCC-芯片电源,接+5V;⑵VSS-接地端;⒉时钟:XTAL1、XTAL2-晶体振荡电路反相输入端和输出端。⒊控制线:控制线共有4根,⑴ALE/PROG:地址锁存允许/片内EPROM编程脉冲①ALE功能:用来锁存P0口送出的低8位地址②PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。⑵PSEN:外ROM读选通信号。⑶RST/VPD:复位/备用电源。①RST(Reset)功能:复位信号输入端。②VPD功能:在Vcc掉电情况下,接备用电源。⑷EA/Vpp:内外ROM选择/片内EPROM编程电源。①EA功能:内外ROM选择端。②Vpp功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。⒋I/O线80C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。拿到一块芯片,想要使用它,首先必须要知道怎样连线,我们用的一块称之为89C51的芯片,下面我们就看一下如何给它连线。1、电源:这当然是必不可少的了。单片机使用的是5V电源,其中正极接40管脚,负极(地)接20管脚。2、振蒎电路:单片机是一种时序电路,必须供给脉冲信号才能正常工作,在单片机内部已集成了振荡器,使用晶体振荡器,接18、19脚。只要买来晶体震荡器,电容,连上就能了,按图1接上即可。3、复位管脚:按图1中画法连好,至于复位是何含义及为何需要复要复位,在单片机功能中介绍。4、EA管脚:EA管脚接到正电源端。至此,一个单片机就接好,通上电,单..
从零开始51单片机教程 —— 23 单片机串行口通信程序设计..
相关内容: 000023 开始 串行 程序设计 教程 单片机 通信
关键字:单片机串口通信单片机串行口通信程序设计范例及注释1.串行口方式0应用编程8051单片机串行口方式0为移位寄存器方式,外接一个串入并出的移位寄存器,就能扩展一个并行口。<单片机串行口通信程序设计硬件连接图>例:用8051单片机串行口外接CD4094扩展8位并行输出口,如图所示,8位并行口的各位都接一个发光二极管,要求发光管呈流水灯状态。串行口方式0的数据传送可采用中断方式,也可采用查询方式,无论哪种方式,都要借助于TI或RI标志。串行发送时,能靠TI置位(发完一帧数据后)引起中断申请,在中断服务程序中发送下一帧数据,或者通过查询TI的状态,只要TI为0就继续查询,TI为1就结束查询,发送下一帧数据。在串行接收时,则由RI引起中断或对RI查询来确定何时接收下一帧数据。无论采用什么方式,在开始通信之前,都要先对控制寄存器SCON进行初始化。在方式0中将,将00H送SCON就能了。-----------------单片机串行口通信程序设计范例--------------------------ORG2000HSTART:MOVSCON,#00H;置串行口工作方式0MOVA,#80H;最高位灯先亮CLRP1.0;关闭并行输出(避象传输过程中,各LED的"暗红"现象)OUT0:MOVSBUF,A;开始串行输出OUT1:JNBTI,OUT1;输出完否CLRTI;完了,清TI标志,以备下次发送SETBP1.0;打开并行口输出ACALLDELAY;延时一段时间RRA;循环右移CLRP1.0;关闭并行输出JMPOUT0;循环说明:DELAY延时子程序能用前面我们讲P1口流水灯时用的延时子程序,这里就不给出了。二、串行口异步通信org0000HAJMPSTARTORG30HSTART:movSP,#5fh;movTMOD,#20h;T1:工作模式2movPCON,#80h;SMOD..
从零开始51单片机教程 —— 12 单片机算术运算指令
相关内容: 000012 开始 运算 算术 教程 指令 单片机
关键字:单片机运算指令不带进位位的单片机加法指令ADDA,#DATA;例:ADDA,#10HADDA,direct;例:ADDA,10HADDA,Rn;例:ADDA,R7ADDA,@Ri;例:ADDA,@R0用途:将A中的值与其后面的值相加,最终结果否是回到A中。例:MOVA,#30HADDA,#10H则执行完本条指令后,A中的值为40H。下面的题目自行练习MOV34H,#10HMOVR0,#13HMOVA,34HADDA,R0MOVR1,#34HADDA,@R1带进位位的单片机加法指令ADDCA,RnADDCA,directADDCA,@RiADDCA,#data用途:将A中的值和其后面的值相加,并且加上进位位C中的值。说明:由于51单片机是一种8位机,所以只能做8位的数学运算,但8位运算的范围只有0-255,这在实际工作中是不够的,因此就要进行扩展,一般是将2个8位的数学运算合起来,成为一个16位的运算,这样,能表达的数的范围就能达到0-65535。如何合并呢?其实很简单,让我们看一个10进制数的例程:66+78。这两个数相加,我们根本不在意这的过程,但事实上我们是这样做的:先做6+8(低位),然后再做6+7,这是高位。做了两次加法,只是我们做的时候并没有刻意分成两次加法来做罢了,或者说我们并没有意识到我们做了两次加法。之所以要分成两次来做,是因为这两个数超过了一位数所能表达的范置(0-9)。在做低位时产生了进位,我们做的时候是在适当的位置点一下,然后在做高位加法是将这一点加进去。那么计算机中做16位加法时同样如此,先做低8位的,如果两数相加产生了进位,也要“点一下”做个标记,这个标记就是进位位C,在PSW中。在进行高位加法是将这个C加进去。例:1067H+10A0H,先做67H+A0H=107H,而107H..
从零开始51单片机教程——连载4 存储器结构
相关内容: 0000连载 开始 结构 教程 存储器 单片机
关键字:单片机存储器单片机内部存储结构分析我们来思考一个问题,当我们在编程器中把一条指令写进单片要内部,然后取下单片机,单片机就可以执行这条指令,那么这条指令一定保存在单片机的某个地方,并且这个地方在单片机掉电后依然可以保持这条指令不会丢失,这是个什么地方呢?这个地方就是单片机内部的只读存储器即ROM(READONLYMEMORY)。为什么称它为只读存储器呢?刚才我们不是明明把两个数字写进去了吗?原来在89C51中的ROM是一种电可擦除的ROM,称为FLASHROM,刚才我们是用的编程器,在特殊的条件下由外部设备对ROM进行写的操作,在单片机正常工作条件下,只能从那面读,不能把数据写进去,所以我们还是把它称为ROM。数的本质和物理现象:我们知道,计算机能进行数学运算,这可令我们非常的难以理解,计算机吗,我们虽不了解它的组成,但它总只是一些电子元器件,怎么能进行数学运算呢?我们做数学题如37+45是这样做的,先在纸上写37,然后在下面写45,然后大脑运算,最后写出结果,运算的原材料:37、45和结果:82都是写在纸上的,计算机中又是放在什么地方呢?为了解决这个问题,先让我们做一个实验:这里有一盏灯,我们知道灯要么亮,要么不亮,就有两种状态,我们能用’0’和’1’来代替这两种状态,规定亮为’1’,不亮为’0’。现在放上两盏灯,一共有几种状态呢?我们列表来看一下:状态表达00011011请大家自已写上3盏灯的情况000001010011100101110111我们来看,这个000,001,101不就是我们学过的的二进制数吗?本来,灯的亮和灭只是一种物理现象,可当我们把它们按..
从零开始51单片机教程 —— 14 单片机逻辑与或异或指令详解..
相关内容: 000014 开始 详解 教程 指令 逻辑 单片机
关键字:单片机逻辑与或异或单片机逻辑与或异或指令详解ANLA,Rn;A与Rn中的值按位'与',结果送入A中ANLA,direct;A与direct中的值按位'与',结果送入A中ANLA,@Ri;A与间址寻址单元@Ri中的值按位'与',结果送入A中ANLA,#data;A与立即数data按位'与',结果送入A中ANLdirect,A;direct中值与A中的值按位'与',结果送入direct中ANLdirect,#data;direct中的值与立即数data按位'与',结果送入direct中。这几条指令的关键是知道什么是逻辑与。这里的逻辑与是指按位与例:71H和56H相与则将两数写成二进制形式:(71H)01110001(56H)00100110结果00100000即20H,从上面的式子能看出,两个参与运算的值只要其中有一个位上是0,则这位的结果就是0,两个同是1,结果才是1。理解了逻辑与的运算规则,结果自然就出来了。看每条指令后面的注释下面再举一些例程来看。MOVA,#45H;(A)=45HMOVR1,#25H;(R1)=25HMOV25H,#79H;(25H)=79HANLA,@R1;45H与79H按位与,结果送入A中为41H(A)=41HANL25H,#15H;25H中的值(79H)与15H相与结果为(25H)=11H)ANL25H,A;25H中的值(11H)与A中的值(41H)相与,结果为(25H)=11H在知道了逻辑与指令的功能后,逻辑或和逻辑异或的功能就很简单了。逻辑或是按位“或”,即有“1”为1,全“0”为0。例:10011000或01100001结果11111001而异或则是按位“异或”,相同为“0”,相异为“1”。例:10011000异或01100001结果11111001而所有的或指令,就是将与指仿中的ANL换成ORL,而异或指令则是将ANL换成XRL。即或指令:ORLA,Rn;A和Rn中的值按位'或',结果送入A中ORLA,direct;A和..
从零开始51单片机教程——连载5 单片机小程序
相关内容: 0000连载 开始 程序 教程 单片机
关键字:单片机汇编动手尝试下如何使用汇编语言编个小程序上一次我们的程序实在是没什么用,要灯亮还要重写一下片子,下面我们要让灯持续地闪烁,这就有一定的实用价值了,比如能把它当成汽车上的一个信号灯用了。怎样才能让灯持续地闪烁呢?实际上就是要灯亮一段时间,再灭一段时间,也就是说要P10持续地输出高和低电平。怎样实现这个要求呢?请考虑用下面的指令是否可行:SETBP10CLRP10……这是不行的,有两个问题,第一,计算机执行指令的时间很快,执行完SETBP10后,灯是灭了,但在极短时间(微秒级)后,计算机又执行了CLRP10指令,灯又亮了,所以根本分辨不出灯曾灭过。第二,在执行完CLRP10后,不会再去执行SETBP10指令,所以以后再也没有机会让灭了。为了解决这两个问题,我们能做如下设想,第一,在执行完SETBP10后,延时一段时间(几秒或零点几秒)再执行第二条指令,就能分辨出灯曾灭过了。第二在执行完第二条指令后,让计算机再去执行第一条指令,持续地在原地兜圈,我们称之为"循环",这样就能完成任务了。以下先给出程序(后面括号中的数字是为了便于讲解而写的,实际不用输入):;主程序:LOOP:SETBP10    ;(1)    LCALLDELAY  ;(2)    CLRP10    ;(3)    LCALLDELAY  ;(4)    AJMPLOOP   ;(5);以下子程序DELAY:MOVR7,#250  ;(6)D1:MOVR6,#250   ;(7)D2:DJNZR6,D2   ;(8)  DJNZR7,D1    ;(9)  RET        ;(10)  END        ;(11)按上面的..
从零开始51单片机教程 —— 24 LED数码管静态显示接口与编程..
相关内容: 静态 000024 开始 数码 接口 编程 教程 单片机 显示
关键字:单片机LED显示接口LED数码管静态显示接口与编程在单片机系统中,常常用LED数码数码管显示器来显示各种数字或符号。由于它具有显示清晰、亮度高、使用电压低、寿命长的特点,因此使用非常广泛。引言:还记得我们小时候玩的“火柴棒游戏”吗,几根火柴棒组合起来,能拼成各种各样的图形,LED数码管显示器实际上也是这么一个东西。八段LED数码管显示器<单片机静态显示接口>八段LED数码管显示器由8个发光二极管组成。基中7个长条形的发光管排列成“日”字形,另一个贺点形的发光管在数码管显示器的右下角作为显示小数点用,它能显示各种数字及部份英文字母。LED数码管显示器有两种不一样的形式:一种是8个发光二极管的阳极都连在一起的,称之为共阳极LED数码管显示器;另一种是8个发光二极管的阴极都连在一起的,称之为共阴极LED数码管显示器。如下图所示。`共阴和共阳结构的LED数码管显示器各笔划段名和安排位置是相同的。当二极管导通时,对应的笔划段发亮,由发亮的笔划段组合而显示的各种字符。8个笔划段hgfedcba对应于一个字节(8位)的D7D6D5D4D3D2D1D0,于是用8位二进制码就能表示欲显示字符的字形代码。例如,对于共阴LED数码管显示器,当公共阴极接地(为零电平),而阳极hgfedcba各段为0111011时,数码管显示器显示"P"字符,即对于共阴极LED数码管显示器,“P”字符的字形码是73H。如果是共阳LED数码管显示器,公共阳极接高电平,显示“P”字符的字形代码应为10001100(8CH)。这里必须注意的是:很多产品为方便接线,常不按规则的办法去对应字段与位的关系,这个时候字形..
从零开始51单片机教程 —— 单片机条件转移指令
相关内容: 0000单片机 开始 转移 条件 教程 指令 单片机
关键字:单片机转移指令条件转移指令是指在满足一定条件时进行相对转移判A内容是否为0转移指令JZrelJNZrel第一指令的功能是:如果(A)=0,则转移,不然次序执行(执行本指令的下一条指令)。转移到什么地方去呢?如果按照传统的办法,就要算偏移量,很麻烦,好在现在我们能借助于机器汇编了。因此这第指令我们能这样理解:JZ标号。即转移到标号处。下面举一例说明:MOVA,R0JZL1MOVR1,#00HAJMPL2L1:MOVR1,#0FFHL2:SJMPL2END在执行上面这段程序前如果R0中的值是0的话,就转移到L1执行,因此最终的执行结果是R1中的值为0FFH。而如果R0中的值不等于0,则次序执行,也就是执行MOVR1,#00H指令。最终的执行结果是R1中的值等于0。第一条指令的功能清楚了,第二条当然就好理解了,如果A中的值不等于0,就转移。把上面的那个例程中的JZ改成JNZ试试吧,看看程序执行的结果是什么?比较转移指令CJNEA,#data,relCJNEA,direct,relCJNERn,#data,relCJNE@Ri,#data,rel第一条指令的功能是将A中的值和立即数data比较,如果两者相等,就次序执行(执行本指令的下一条指令),如果不相等,就转移,同样地,我们能将rel理解成标号,即:CJNEA,#data,标号。这样利用这条指令,我们就能判断两数是否相等,这在很多场合是非常有用的。但有时还想得知两数比较之后哪个大,哪个小,本条指令也具有这样的功能,如果两数不相等,则CPU还会反映出哪个数大,哪个数小,这是用CY(进位位)来实现的。如果前面的数(A中的)大,则CY=0,不然CY=1,因此在程序转移后再次利用CY就可判断出A中的数比data大还是小了。例:MOV..
从零开始51单片机教程——连载6 延时程序分析
相关内容: 0000连载 开始 分析 延时 程序 教程 单片机
关键字:单片机程序掌握汇编中的延时程序上一次课中,我们已经知道,程序中的符号R7、R6是代表了一个个的RAM单元,是用来放一些数据的,下面我们再来看一下其它符号的含义。DELAY:MOVR7,#250  ;(6)D1:MOVR6,#250  ;(7)D2:DJNZR6,D2   ;(8)DJNZR7,D1   ;(9)  RET       ;(10)〈单片机延时程序〉MOV:这是一条指令,意思是传递数据。说到传递,我们都很清楚,传东西要从一本人的手上传到另一本人的手上,也就是说要有一个接受者,一个传递者和一样东西。从指令MOVR7,#250中来分析,R7是一个接受者,250是被传递的数,传递者在这条指令中被省略了(注意:并不是每一条传递指令都会省的,事实上大部份数据传递指令都会有传递者)。它的意义也很明显:将数据250送到R7中去,因此执行完这条指令后,R7单元中的值就应当是250。在250前面有个#号,这又是什么意思呢?这个#就是用来说明250就是一个被传递的东西本身,而不是传递者。那么MOVR6,#250是什么意思,应当不用分析了吧。DJNZ:这是另一条指令,我们来看一下这条指令后面跟着的两个东西,一个是R6,一个是D2,R6我们当然已知是什么了,查一下D2是什么。D2在本行的前面,我们已学过,这称之为标号。标号的用途是什么呢?就是给本行起一个名字。DJNZ指令的执行过程是这样的,它将其后面的第一个参数中的值减1,然后看一下,这个值是否等于0,如果等于0,就往下执行,如果不等于0,就转移,转到什么地方去呢?可能大家已猜到了,转到第二个参数所指定的地方去(请大家用自已的话讲一下这..
从零开始51单片机教程 —— 25 动态扫描显示接口电路及程序..
相关内容: 000025 开始 扫描 动态 接口 程序 教程 单片机 电路 显示
关键字:单片机显示接口动态扫描显示接口电路及程序在单片机系统中动态扫描显示接口是单片机中应用最为广泛的一种显示方式之一。其接口电路是把所有显示器的8个笔划段a-h同名端连在一起,而每一个显示器的公共极COM是各自独立地受I/O线控制。CPU向字段输出口送出字形码时,所有显示器接收到相同的字形码,但究竟是那个显示器亮,则取决于COM端,而这一端是由I/O控制的,所以我们就能自行决定何时显示哪一位了。而所谓动态扫描就是指我们采用分时的办法,轮流控制各个显示器的COM端,使各个显示器轮流点亮。在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约1ms),但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。下图所示就是我们的单片机实验板上的动态扫描接口。由89c51的P0口能灌入较大的电流,所以我们采用共阳的数码管,并且不用限流电阻,而只是用两只1N4004进行降压后给数码管供电,这里仅用了两只,实际上还能扩充。它们的公共端则由PNP型三极管8550控制,显然,如果8550导通,则对应的数码管就能亮,而如果8550截止,则对应的数码管就不可能亮,8550是由P2.7,P2.6控制的。这样我们就能通过控制P27、P26达到控制某个数码管亮或灭的目的。下面的这个单片机程序,就是用实验板上的数码管显示0和1。FIRSTEQUP2.7;第一位数码管的位控制SECONDEQUP2.6;第二位数码管的位控制DISPBUFFEQU5AH;显示缓冲区为5AH和5BHORG0000HAJMPSTARTORG30HSTART:MOVSP,#5FH;..
从零开始51单片机教程 —— 16 单片机位操作指令
相关内容: 机位 000016 开始 单片 操作 教程 指令 单片机
关键字:单片机位操作前面那些流水灯的例程,我们已经习惯了“位”一位就是一盏灯的亮和灭,而我们学的指令却全都是用“字节”来介绍的:字节的移动、加法、减法、逻辑运算、移位等等。用字节来处理一些数学问题,比如说:控制冰箱的温度、电视的音量等等很直观,能直接用数值来表在。可是如果用它来控制一些开关的打开和合上,灯的亮和灭,就有些不直接了,记得我们上次课上的流水灯的例程吗?我们知道送往P1口的数值后并不能马上知道哪个灯亮和来灭,而是要化成二进制才知道。工业中有很多场合需要处理这类开关输出,继电器吸合,用字节来处理就显示有些麻烦,所以在8031单片机中特意引入一个位处理机制。位寻址区在8031中,有一部份RAM和一部份SFR是具有位寻址功能的,也就是说这些RAM的每一个位都有自已的地址,能直接用这个地址来对此进行操作。内部RAM的20H-2FH这16个字节,就是8031的位寻址区。看图1。可见这里面的每一个RAM中的每个位我们都可能直接用位地址来找到它们,而不必用字节地址,然后再用逻辑指令的方式。能位寻址的特殊功能寄存器8031中有一些SFR是能进行位寻址的,这些SFR的特点是其字节地址均可被8整除,如A累加器,B寄存器、PSW、IP(中断优先级控制寄存器)、IE(中断允许控制寄存器)、SCON(串行口控制寄存器)、TCON(定时器/计数器控制寄存器)、P0-P3(I/O端口锁存器)。以上的一些SFR我们还不熟,等我们讲解相关内容时再作详细解释。位操作指令MCS-51单片机的硬件结构中,有一个位处理器(又称布尔处理器),它有一套位变量处理的指令集。在进行位处理时..
从零开始51单片机教程 —— 26 单片机键盘接口程序设计..
相关内容: 000026 开始 接口 键盘 程序设计 教程 单片机
关键字:单片机接口键盘是由若干按钮组成的开关矩阵,它是单片机系统中最常用的输入设备,用户能通过键盘向计算机输入指令、地址和数据。一般单片机系统中采和非编码键盘,非编码键盘是由软件来识别键盘上的闭合键,它具有结构简单,使用灵活等特点,因此被广泛应用于单片机系统。按钮开关的抖动问题组成键盘的按钮有触点式和非触点式两种,单片机中应用的一般是由机械触点组成的。在下图中,当开<键盘结构图>图1图2关S未被按下时,P1。0输入为高电平,S闭合后,P1。0输入为低电平。由于按钮是机械触点,当机械触点断开、闭合时,会有抖动动,P1。0输入端的波形如图2所示。这种抖动对于人来说是感觉不到的,但对计算机来说,则是完全能感应到的,因为计算机处理的速度是在微秒级,而机械抖动的时间至少是毫秒级,对计算机而言,这已是一个“漫长”的时间了。前面我们讲到中断时曾有个问题,就是说按钮有时灵,有时不灵,其实就是这个原因,你只按了一次按钮,可是计算机却已执行了多次中断的过程,如果执行的次数正好是奇数次,那么结果正如你所料,如果执行的次数是偶数次,那就不对了。为使CPU能正确地读出P1口的状态,对每一次按钮只作一次响应,就必须考虑如何去除抖动,常用的去抖动的办法有两种:硬件办法和软件办法。单片机中常用软件法,因此,对于硬件办法我们不介绍。软件法其实很简单,就是在单片机获得P1。0口为低的信息后,不是立即认定S1已被按下,而是延时10毫秒或更长一些时间后再次检测P1。0口,如果仍为低,说明S1的确按下了,这实际上是避开了按钮按下时的抖动时间..
从零开始51单片机教程——连载7 并行口结构
相关内容: 0000连载 开始 并行 结构 教程 单片机
关键字:单片机并口利用小程序了解什么是并行口结构上两次我们做过两个实验,都是让P1.0这个管脚使灯亮,我们能设想:既然P1.0能让灯亮,那么其它的管脚可不能呢?看一下图1,它是8031单片机管脚的说明,在P1.0旁边有P1.1,P1.2….P1.7,它们是否都能让灯亮呢?除了以P1开头的外,还有以P0,P2,P3开头的,数一下,一共是32个管脚,前面我们以学过7个管脚,加上这32个这39个了。它们都以P字开头,只是后面的数字不一样,它们是否有什么联系呢?它们能不能都让灯亮呢?在我们的实验板上,除了P10之外,还有P11->P17都与LED相连,下面让我们来做一个实验,程序如下:MAIN:MOVP1,#0FFHLCALLDELAYMOVP1,#00HLCALLDELAYLJMPMAINDELAY:MOVR7,#250D1:MOVR6,#250D2:DJNZR6,D2DJNZR7,D1RETEND将这段程序转为机器码,用编程器写入单片机中,结果如何?通电以后我们能看到8只LED全部在闪动。因此,P10->P17是全部能点亮灯的。事实上,凡以P开头的这32个管脚都是能点亮灯的,也就是说:这32个管脚都能作为输出使用,如果不用来点亮LED,能用来控制继电器,能用来控制其它的执行机构。程序分析:这段程序和前面做过的程序比较,只有两处不一样:第一句:原来是SETBP1.0,现在改为MOVP1,#0FFH,第三句:原来是CLRP1.0,现在改为MOVP1.0,#00H。从中能看出,P1是P1.0->P1.7的全体的代表,一个P1就表示了所有的这八个管脚了。当然用的指令也不一样了,是用MOV指令。为什么用这条指令?看图2,我们把P1作为一个整体,就把它当作是一个存储器的单元,对一个单元送进一个数能用MOV指令。二、第四个实验除..
从零开始51单片机教程——连载8 特殊功能寄存器
相关内容: 0000连载 开始 教程 寄存器 功能 特殊 单片机
关键字:单片机详细介绍什么是寄存器寄存器能做什么通过前面的学习,我们已知单片机的内部有ROM、有RAM、有并行I/O口,那么,除了这些东西之外,单片机内部究竟还有些什么,这些个零碎的东西怎么连在一起的,让我们来对单片机内部的寄存器作一个完整的功能分析吧!下图中我们能看出,在51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/计数器,串行I/O口,中断系统,以及一个内部的时钟电路。在一个51单片机的内部包含了这么多的东西。<单片机内部结构图>对上面的图进行进一步的分析,我们已知,对并行I/O口的读写只要将数据送入到对应I/O口的锁存器就能了,那么对于定时/计数器,串行I/O口等怎么用呢?在单片机中有一些独立的存储单元是用来控制这些器件的,被称之为特殊功能寄存器(SFR)。事实上,我们已接触过P1这个特殊功能寄存器了,还有哪些呢?看下表1符号地址功能介绍BF0HB寄存器ACCE0H累加器PSWD0H程序状态字IPB8H中断优先级控制寄存器P3B0HP3口锁存器IEA8H中断允许控制寄存器P2A0HP2口锁存器SBUF99H串行口锁存器SCON98H串行口控制寄存器P190HP1口锁存器TH18DH定时器/计数器1(高8位)TH08CH定时器/计数器1(低8位)TL18BH定时器/计数器0(高8位)TL08AH定时器/计数器0(低8位)TMOD89A定时器/计数器方式控制寄存器TCON88H定时器/计数器控制寄存器DPH83H数据地址指针(高8位)DPL82H数据地址指针(低8位)SP81H堆栈指针P080HP0口锁存器PCON87H电源控制寄存器表1<特殊功能寄存器地..
从零开始51单片机教程 —— 27 矩阵式键盘接口技术及程序设计..
相关内容: 000027 开始 矩阵式 接口 键盘 技术 程序设计 教程 单片机
关键字:键盘矩阵式键盘接口技术及程序设计在单片机系统中键盘中按钮数量较多时,为了减少I/O口的占用,常常将按钮排列成矩阵形式,如图1所示。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按钮加以连接。这样,一个端口(如P1口)就能组成4*4=16个按钮,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就能组成20键的键盘,而直接用端口线则只能多出一键(9键)。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。<单片机矩阵式键盘接口技术及编程接口图>矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,上图中,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。这样,当按钮没有按下时,所有的输出端都是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。具体的识别及编程办法如下所述。矩阵式键盘的按钮识别办法确定矩阵式键盘上何键被按下介绍一种“行扫描法”。行扫描法行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按钮识别办法,如上图所示键盘,介绍过程如下。判断键盘中有无键按下将全部行线Y0-Y3置低电平,然后检测列线的状态。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按钮之中。若所有列线均为高电平,则键盘中无键按下。判断闭合键所在的位置在确认有键按下后,即可进入确定具体闭合键的过..
从零开始51单片机教程 —— 17 单片机定时器与计数器
相关内容: 000017 开始 教程 计数器 定时器 单片机
关键字:单片机定时器计数器一、单片机计数概念的引入从选票的统计谈起:画“正”。这就是计数,生活中计数的例程处处可见。例:录音机上的计数器、家里面用的电度表、汽车上的里程表等等,再举一个工业生产中的例程,线缆行业在电线生产出来之后要计米,也就是测量长度,怎么测法呢?用尺量?不现实,太长不说,要一边做一边量呢,怎么办呢?行业中有很巧妙的办法,用一个周长是1米的轮子,将电缆绕在上面一周,由线带轮转,这样轮转一周不就是线长1米嘛,所以只要记下轮转了多少圈,就能知道走过的线有多长了。二、单片机计数器的容量从一个生活中的例程看起:一个水盆在水龙头下,水龙没关紧,水一滴滴地滴入盆中。水滴持续落下,盆的容量是有限的,过一段时间之后,水就会逐渐变满。录音机上的计数器最多只计到999….那么单片机中的计数器有多大的容量呢?8031单片机中有两个计数器,分别称之为T0和T1,这两个计数器分别是由两个8位的RAM单元组成的,即每个计数器都是16位的计数器,最大的计数量是65536。三、单片机定时8031中的计数器除了能作为计数之用外,还能用作时钟,时钟的用途当然很大,如打铃器,电视机定时关机,空调定时开关等等,那么计数器是如何作为定时器来用的呢?一个闹钟,我将它定时在1个小时后闹响,换言之,也能说是秒针走了(3600)次,所以时间就转化为秒针走的次数的,也就是计数的次数了,可见,计数的次数和时间之间的确十分相关。那么它们的关系是什么呢?那就是秒针每一次走动的时间正好是1秒。<单片机定时器记数器结构>结论:只要计数脉冲的间隔相等..
从零开始51单片机教程 —— 关于单片机的一些基本概念..
相关内容: 0000关于 开始 一些 概念 教程 基本 单片机
关键字:单片机关于单片机的七个基本概念:什么是总线,什么是数据、地址、指令,什么是堆栈,什么是仿真,P0口、P2口和P3的第二功能使用办法,程序的执行过程,单片机的开发过程该如何。随着电子技术的迅速发展,计算机已深入地渗透到我们的生活中,许多电子爱好者开始学习单片机知识,但单片机的内容比较抽象,相对电子爱好者已熟悉的模拟电路、数字电路,单片机中有一些新的概念,这些概念非常基本以至于一般作者不屑去谈,教材自然也不会很深入地讲解这些概念,但这些内容又是学习中必须要理解的,下面就结合本人的学习、教学经验,对这些最基本概念作一说明,希望对自学者有所帮助。  一、总线:我们知道,一个电路总是由元器件通过电线连接而成的,在模拟电路中,连线并不成为一个问题,因为各器件间一般是串行关系,各器件之间的连线并不很多,但计算机电路却不一样,它是以微处理器为核心,各器件都要与微处理器相连,各器件之间的工作必须相互协调,所以就需要的连线就很多了,如果仍如同模拟电路一样,在各微处理器和各器件间单独连线,则线的数量将多得惊人,所以在微处理机中引入了总线的概念,各个器件共同享用连线,所有器件的8根数据线全部接到8根公用的线上,即相当于各个器件并联起来,但仅这样还不行,如果有两个器件同时送出数据,一个为0,一个为1,那么,接收方接收到的究竟是什么呢?这种情况是不允许的,所以要通过控制线进行控制,使器件分时工作,任何时候只能有一个器件发送数据(能有多个器件同时接收)。器件的数据线也就被称为数据总线,器件所有的控制..
从零开始51单片机教程 —— 定时器/计数器的方式控制字..
相关内容: 0000定时器 开始 教程 计数器 方式 控制 单片机
关键字:单片机定时器从上一节我们已经得知,单片机中的定时/计数器都能有多种用途,那么我怎样才能让它们工作于我所需要的用途呢?这就要通过定时/计数器的方式控制字来设置。定时/计数器共有四种工作方式在单片机中有两个特殊功能寄存器与定时/计数有关,这就是TMOD和TCON。顺便说一下,TMOD和TCON是名称,我们在写程序时就能直接用这个名称来指定它们,当然也能直接用它们的地址89H和88H来指定它们(其实用名称也就是直接用地址,汇编软件帮你翻译一下而已)。<TMOD结构>从图1中我们能看出,TMOD被分成两部份,每部份4位。分别用于控制T1和T0,至于这里面是什么意思,我们下面介绍。<TCON结构>从图2中我们能看出,TCON也被分成两部份,高4位用于定时/计数器,低4位则用于中断(我们暂不管)。而TF1(0)我们上节课已提到了,当计数溢出后TF1(0)就由0变为1。原来TF1(0)在这儿!那么TR0、TR1又是什么呢?看上节课的图。计数脉冲要进入计数器还真不不难,有层层关要通过,最起码,就是TR0(1)要为1,开关才能合上,脉冲才能过来。因此,TR0(1)称之为运行控制位,可用指令SETB来置位以启动计数器/定时器运行,用指令CLR来关闭定时/计数器的工作,一切尽在自已的掌握中。<单片机定时器/计数器结构>定时/计数器的四种工作方式工作方式0定时器/计数器的工作方式0称之为13位定时/计数方式。它由TL(1/0)的低5位和TH(0/1)的8位组成13位的计数器,此时TL(1/0)的高3位未用。我们用这个图来讨论几个问题:M1M0:定时/计数器一共有四种工作方式,就是用M1M0来控制的,2位正好是四种组..
从零开始51单片机教程——10 数据传递类指令
相关内容: 000010 开始 传递 教程 指令 数据 单片机
关键字:单片机地址传递单片机数据传递类指令有哪些?什么是直接地址传递与间接地址传递(3)以直接地址为目的操作数的指令MOVdirect,A例:MOV20H,AMOVdirect,RnMOV20H,R1MOVdirect1,direct2MOV20H,30HMOVdirect,@RiMOV20H,@R1MOVdirect,#dataMOV20H,#34H(4)以间接地址为目的操作数的指令MOV@Ri,A例:MOV@R0,AMOV@Ri,directMOV@R1,20HMOV@Ri,#dataMOV@R0,#34H(5)十六位数的传递指令MOVDPTR,#data168051是一种8位机,这是唯一的一条16位立即数传递指令,其功能是将一个16位的立即数送入DPTR中去。其中高8位送入DPH,低8位送入DPL。例:MOVDPTR,#1234H,则执行完了之后DPH中的值为12H,DPL中的值为34H。反之,如果我们分别向DPH,DPL送数,则结果也一样。如有下面两条指令:MOVDPH,#35H,MOVDPL,#12H。则就相当于执行了MOVDPTR,#3512H。数据传递类指令综合练习:给出每条指令执行后的结果上机练习:MOV23H,#30HMOV12H,#34HMOVR0,#23HMOVR7,#22HMOVR1,12HMOVA,@R0MOV34H,@R1(23h)=30h(12h)=34h(R0)=23H(R7)=22H(R1)=12H(A)=30H(34H)=34HMOV45H,34HMOVDPTR,#6712HMOV12H,DPHMOVR0,DPLMOVA,@R0(45H)=34H(DPTR)=6712H(12H)=67H(R0)=12H(A)=67H说明:用括号括起来代表内容,如(23H)则代表内部RAM23H单元中的值,(A)则代表累加器A单元中的值。进入DOS状态,进入WAVE所在的目录,例D:\WAVE键入MCS51,出现如下画面<单片机数据传递指令>图1按File->Open,出现对话框后,在Name处输入一个文件名(见图2),如果是下面列表中已存在的,则打开这个文件,如果不存在这个文件,则新建一个..
从零开始51单片机教程 —— 19 单片机的中断系统
相关内容: 000019 开始 中断 系统 教程 单片机
关键字:单片机中断什么是单片机中断?中断嵌套与优先级是如何解决的。有关单片机中断系统的概念:什么是中断,我们从一个生活中的例程引入。你正在家中看书,突然电话铃响了,你放下书本,去接电话,和来电话的人交谈,然后放下电话,回来继续看你的书。这就是生活中的“中断”的现象,就是正常的工作过程被外部的事件打断了。仔细研究一下生活中的中断,对于我们学习单片机的中断也很有好处。第一、什么可经引起中断,生活中很多事件能引起中断:有人按了门铃了,电话铃响了,你的闹钟闹响了,你烧的水开了….等等诸如此类的事件,我们把能引起中断的称之为中断源,单片机中也有一些能引起中断的事件,8031中一共有5个:两个外部中断,两个计数/定时器中断,一个串行口中断。第二、中断的嵌套与优先级处理:设想一下,我们正在看书,电话铃响了,同时又有人按了门铃,你该先做那样呢?如果你正是在等一个很重要的电话,你一般不会去理会门铃的,而反之,你正在等一个重要的客人,则可能就不会去理会电话了。如果不是这两者(即不等电话,也不是等人上门),你可能会按你常常的习惯去处理。总之这里存在一个优先级的问题,单片机中也是如此,也有优先级的问题。优先级的问题不仅仅发生在两个中断同时产生的情况,也发生在一个中断已产生,又有一个中断产生的情况,比如你正接电话,有人按门铃的情况,或你正开门与人交谈,又有电话响了情况。考虑一下我们会怎么办吧。第三、中断的响应过程:当有事件产生,进入中断之前我们必须先记住现在看书的第几页了,或拿一个书签放在当前页的位..
从零开始51单片机教程——9:单片机寻址方式与指令系统..
相关内容: 00009 开始 寻址 系统 教程 指令 方式 单片机
关键字:单片机寻址指令集什么是单片机寻址方式与指令系统通过前面的学习,我们已经了解了单片机内部的结构,并且也已经知道,要控制单片机,让它为我们干学,要用指令,我们已学了几条指令,但很零散,从现在开始,我们将要系统地学习8051单片机的指令部份。一、概述1、指令的格式我们已知,要让计算机做事,就得给计算机以指令,并且我们已知,计算机很“笨”,只能懂得数字,如前面我们写进机器的75H,90H,00H等等,所以指令的第一种格式就是机器码格式,也说是数字的形式。但这种形式实在是为难我们人了,太难记了,于是有另一种格式,助记符格式,如MOVP1,#0FFH,这样就好记了。这两种格式之间的关系呢,我们不难理解,本质上它们完全等价,只是形式不一样而已。2、汇编我们写指令使用汇编格式,而计算机和单片机只懂机器码格式,所以要将我们写的汇编格式的指令转换为机器码格式,这种转换有两种办法:手工汇编和机器汇编。手工汇编实际上就是查表,因为这两种格式纯粹是格式不一样,所以是一一对应的,查一张表格就行了。不过手工查表总是嫌麻烦,所以就有了计算机软件,用计算机软件来替代手工查表,这就是机器汇编。二、单片机的寻址让我们先来复习一下我们学过的一些指令:MOVP1,#0FFH,MOVR7,#0FFH这些指令都是将一些数据送到对应的位置中去,为什么要送数据呢?第一个因为送入的数能让灯全灭掉,第二个是为了要实现延时,从这里我们能看出来,在用单片机的编程语言编程时,经常要用到数据的传递,事实上数据传递是单片机编程时的一项重要工作,一共有28条指令(单片机..
从零开始51单片机教程 —— 29 单片机音乐程序设计
相关内容: 000029 开始 程序设计 教程 音乐 单片机
关键字:单片机音乐程序设计利用单片机音乐程序设计利用单片机(或单板机)奏乐大概是无线电爱好者感兴趣的问题之一。本文从单片机的基本发间实验出发,谈谈音乐程序的设计原理,并给出具体实例,以供参考。单片机的基本发音实验我们知道,声音的频谱范围约在几十到几千赫兹,若能利用程序来控制单处机某个口线的“高”电平或低电平,则在该口线上就能产生一定频率的矩形波,接上喇叭就能发出一定频率的声音,若再利用延时程序控制“高”“低”电平的持续时间,就能改变输出频率,从而改变音调。例如,要产生200HZ的音频信号,按图1接入喇叭(若属临时实验,也可将喇叭直接接在P1口线上),实验程序为:其中子程序DEL为延时子程序,当R3为1时,延时时间约为20us,R3中存放延时常数,对200HZ音频,其周期为1/200秒,即5ms。这样,当P1.4的高电平或低电平的持续时间为2.5ms,即R3的时间常数取2500/20=125(7DH)时,就能发出200HZ的音调。将上述程序键入学习机,并持续修改R3的常数能感到音调的变化。乐曲中,每一音符对应着确定的频率,表1给出C调时各音符频率及其对应的时间常数。读者能根据表1所供给的常数,将其16进制代码送入R3,反复练习体会。根据表1能奏出音符。仅这还不够,要准确奏出一首曲子,必须准确地控制乐曲节奏,即一音符的持续时间。音符的节拍我们能用定时器T0来控制,送入不一样的初值,就能产生不一样的定时时间。便如某歌曲的节奏为每分钟94拍,即一拍为0.64秒。其它节拍与时间的对应关系见表2。但时,由于T0的最大定时时间只能为131毫秒,因此不可能直接用改变T0的..
51单片机指令表 —— 30 附录 51单片机指令表大全
相关内容: 大全 000030 附录 指令 单片机
关键字:单片机指令51单片机指令集列表大全此表主要是为了方便大家查阅每条指令的作用,写法以及字节数和周期数,建议大家保存为书签。助记符指令说明字节数周期数(数据传递类指令)MOVA,Rn寄存器传送到累加器11MOVA,direct直接地址传送到累加器21MOVA,@Ri累加器传送到外部RAM(8地址)11MOVA,#data立即数传送到累加器21MOVRn,A累加器传送到寄存器11MOVRn,direct直接地址传送到寄存器22MOVRn,#data累加器传送到直接地址21MOVdirect,Rn寄存器传送到直接地址21MOVdirect,direct直接地址传送到直接地址32MOVdirect,A累加器传送到直接地址21MOVdirect,@Ri间接RAM传送到直接地址22MOVdirect,#data立即数传送到直接地址32MOV@Ri,A直接地址传送到直接地址12MOV@Ri,direct直接地址传送到间接RAM21MOV@Ri,#data立即数传送到间接RAM22MOVDPTR,#data1616位常数加载到数据指针31MOVCA,@A+DPTR代码字节传送到累加器12MOVCA,@A+PC代码字节传送到累加器12MOVXA,@Ri外部RAM(8地址)传送到累加器12MOVXA,@DPTR外部RAM(16地址)传送到累加器12MOVX@Ri,A累加器传送到外部RAM(8地址)12MOVX@DPTR,A累加器传送到外部RAM(16地址)12PUSHdirect直接地址压入堆栈22POPdirect直接地址弹出堆栈22XCHA,Rn寄存器和累加器交换11XCHA,direct直接地址和累加器交换21XCHA,@Ri间接RAM和累加器交换11XCHDA,@Ri间接RAM和累加器交换低4位字节11(算术运算类指令)INCA累加器加111INCRn寄存器加111INCdirect直接地址加121INC@Ri间接RAM加111INCDPTR数据指针加112DECA累加器减111DECRn寄存器减111DECdirect直接..
从零开始51单片机教程 —— 单片机定时器、中断试验
相关内容: 试验 0000单片机 开始 中断 教程 定时器 单片机
关键字:单片机定时器中断此章主要利用实验,讲解单片机定时器与中断的用途我们在学单片机时我们第一个例程就是灯的闪烁,那是用延时程序做的,现在回想起来,这样做不很恰当,为什么呢?我们的主程序做了灯的闪烁,就不能再干其它的事了,难道单片机只能这样工作吗?当然不是,我们能用定时器来实现灯的闪烁的功能。例1:查询方式ORG0000HAJMPSTARTORG30HSTART:MOVP1,#0FFH;关所灯MOVTMOD,#00000001B;定时/计数器0工作于方式1MOVTH0,#15HMOVTL0,#0A0H;即数5536SETBTR0;定时/计数器0开始运行LOOP:JBCTF0,NEXT;如果TF0等于1,则清TF0并转NEXT处AJMPLOOP;不然跳转到LOOP处运行NEXT:CPLP1.0MOVTH0,#15HMOVTL0,#9FH;重置定时/计数器的初值AJMPLOOPENDAJMPLOOPEND键入程序,看到了什么?灯在闪烁了,这可是用定时器做的,不再是主程序的循环了。简单地分析一下程序,为什么用JBC呢?TF0是定时/计数器0的溢出标记位,当定时器产生溢出后,该位由0变1,所以查询该位就可知宇时时间是否已到。该位为1后,要用软件将标记位清0,以便下一次定时是间到时该位由0变1,所以用了JBC指令,该指位在判1转移的同时,还将该位清0。以上程序是能实现灯的闪烁了,可是主程序除了让灯闪烁外,还是不能做其他的事啊!不,不对,我们能在LOOP:……和AJMPLOOP指令之间插入一些指令来做其他的事情,只要保证执行这些指令的时间少于定时时间就行了。那我们在用软件延时程序的时候不是也能用一些指令来替代DJNZ吗?是的,但是那就要求你精确计算所用指令的时间,然后再减去对应的DJNZ循环次数,很不方便,而现在只..
从零开始51单片机教程 —— 单片机定时/计数器实验
相关内容: 0000单片机 开始 实验 定时 教程 计数器 单片机
关键字:单片机定时计数器前面我们做了定时器的实验,现在来看一看计数实验。在工作中计数常常会有两种要求:第一、将计数的值显示出来,第二、计数值到一定程度即中断报警。第一种如各种计数器、里程表,第二种如前面例中讲到的生产线上的计数。先看第一种吧。我们的硬件中是这样连线的:324组成的振荡器连到定时/计数器1的外部管脚T1上面,我们就利用这个来做一个计数实验,要将计数的值显示出来,当然最好用数码管了,可我们还没讲到这一部份,为了避免把问题复杂化,我们用P1口的8个LED来显示计到的数据。程序如下:ORG0000H,http://www.51hei.comAJMPSTARTORG30HSTART:MOVSP,#5FHMOVTMOD,#01000000B;定时/计数器1作计数用,0不用全置0SETBTR1;启动计数器1开始运行.LOOP:MOVA,TL0MOVP1,AAJMPLOOPEND在硬件上用线将324的输出与T1连通(印板上有焊盘)运行这种程序,注意将板按正确的位置放置(LM324放在左手边,LED排列是按从高位到低们排列)看到什么?随着324后接的LED的闪烁,单片机的8只LED也在持续变化,注意观察,是不是按二进制:00000000000000010000001000000011这样的次序在变呢?这就对了,这就是TL0中的数据。程序二:ORG0000HAJMPSTARTORG001BHAJMPTIMER1;定时器1的中断处理ORG30HSTART:MOVSP,#5FHMOVTMOD,#01010000B;定时/计数器1作计数用,模式1,0不用全置0MOVTH1,#0FFHMOVTL1,#0FAH;预置值,要求每计到6个脉冲即为一个事件SETBEASETBET1;开总中断和定时器1中断允许SETBTR1;启动计数器1开始运行.AJMP$TIMER1:PUSHACCPUSHPSWCPLP1.0;计数值到,即取反P1.0MOVTH1,#0FFHMOVTL1..
从零开始51单片机教程 —— 11 数据传送类指令
相关内容: 000011 开始 传送 教程 指令 数据 单片机
关键字:单片机数据传送利用程序实践数据传送类指令单片机的累加器A与片外RAM之间的数据传递类指令MOVXA,@RiMOVX@Ri,AMOVXA,@DPTRMOVX@DPTR,A说明:1)在51系列单片机中,与外部存储器RAM打交道的只能是A累加器。所有需要传送入外部RAM的数据必需要通过A送去,而所有要读入的外部RAM中的数据也必需通过A读入。在此我们能看出内外部RAM的区别了,内部RAM间能直接进行数据的传递,而外部则不行,比如,要将外部RAM中某一单元(设为0100H单元的数据)送入另一个单元(设为0200H单元),也必须先将0100H单元中的内容读入A,然后再传送到0200H单元中去。要读或写外部的RAM,当然也必须要知道RAM的地址,在后两条单片机指令中,地址是被直接放在DPTR中的。而前两条指令,由于Ri(即R0或R1)只是一个8位的寄存器,所以只供给低8位地址。因为有时扩展的外部RAM的数量比较少,少于或等于256个,就只需要供给8位地址就够了。使用时应当首先将要读或写的地址送入DPTR或Ri中,然后再用读写命令。例:将单片机外部RAM中100H单元中的内容送入外部RAM中200H单元中。MOVDPTR,#0100HMOVXA,@DPTRMOVDPTR,#0200HMOVX@DPTR,A程序存储器向累加器A传送指令MOVCA,@A+DPTR本指令是将ROM中的数送入A中。本指令也被称为单片机查表指令,常用此指令来查一个已做好在ROM中的表格说明:此条指令引出一个新的寻址办法:变址寻址。本指令是要在ROM的一个地址单元中找出数据,显然必须知道这个单元的地址,这个单元的地址是这样确定的:在执行本指令立脚点DPTR中有一个数,A中有一个数,执行指令时,将A和DPTR中的数..
从零开始51单片机学习教程——连载1 目录
相关内容: 0000连载 学习教程 目录 开始 单片机
关键字:51单片机单片机单片机学习新的学年开始了,有不少学校是这学期开始的单片机课程,所以在这里,EEWORLD小编为各位学生策划了一套完整的单片机教程,从基础讲起。在这份课程中,初学者可以学习单片机的原理,指令,寄存器,以及接口等,并且也包括设计实例。1课:单片机简叙2课:单片机引脚介绍3课:单片机存储器结构4课:第一个单片机小程序5课:单片机延时程序分析6课:单片机并行口结构7课:单片机的特殊功能寄存器8课:单片机寻址方式与指令系统9课:单片机数据传递类指令10课:单片机数据传送类指令11课:单片机算术运算指令12课:单片机逻辑运算类指令13课:单片机逻辑与或异或指令祥解14课:单片机条件转移指令15课:单片机位操作指令16课:单片机定时器与计数器17课:单片机定时器/计数器的方式18课:单片机的中断系统19课:单片机定时器、中断试验20课:单片机定时/计数器实验21课:单片机串行口介绍22课:单片机串行口通信程序设计23课:LED数码管静态显示接口与编24课:动态扫描显示接口电路及程序25课:单片机键盘接口程序设计26课:单片机矩阵式键盘接口技术及27课:关于单片机的一些基本概念28课:单片机音乐程序设计附录:51单片机指令表..
从零开始51单片机教程 —— 22 单片机串口介绍
相关内容: 000022 串口 开始 介绍 教程 单片机
关键字:单片机串口串口是单片机与外界进行信息交换的工具。8051单片机的通信方式有两种:并行通信:数据的各位同时发送或接收。串行通信:数据一位一位次序发送或接收。参看下图:串行通信的方式:异步通信:它用一个起始位表示字符的开始,用停止位表示字符的结束。其每帧的格式如下:在一帧格式中,先是一个起始位0,然后是8个数据位,规定低位在前,高位在后,接下来是奇偶校验位(能省略),最后是停止位1。用这种格式表示字符,则字符能一个接一个地传送。在异步通信中,CPU与外设之间必须有两项规定,即字符格式和波特率。字符格式的规定是双方能够在对同一种0和1的串理解成同一种意义。原则上字符格式能由通信的双方自由制定,但从通用、方便的角度出发,一般还是使用一些标准为好,如采用ASCII标准。波特率即数据传送的速率,其定义是每秒钟传送的二进制数的位数。例如,数据传送的速率是120字符/s,而每个字符如上述规定包含10数位,则传送波特率为1200波特。同步通信:在同步通信中,每个字符要用起始位和停止位作为字符开始和结束的标志,占用了时间;所以在数据块传递时,为了提高速度,常去掉这些标志,采用同步传送。由于数据块传递开始要用同步字符来指示,同时要求由时钟来实现发送端与接收端之间的同步,故硬件较复杂。通信方向:在串行通信中,把通信接口只能发送或接收的单向传送办法叫单工传送;而把数据在甲乙两机之间的双向传递,称之为双工传送。在双工传送方式中又分为半双工传送和全双工传送。半双工传送是两机之间不能同时进行发送和接收,任一时该,只能发或..


正在加载... 正在加载...


正在加载... 正在加载...



正在加载...

正在加载...

相关栏目


正在加载... 正在加载...

键盘接口与编程--单片机学习使用教程..

正在加载...

从零开始51单片机教程 —— 定时器/计数器..


正在加载...

热门

应用 变频器 系统 西门子 控制 三菱 系列 基于 技术 电机 编程 设计 控制器 控制系统 伺服 方案 程序 如何 单片机 方法 电梯 什么 故障 使用 指令 通讯 功能 FX2N 总线 解决方案 触摸屏 问题 教程 连接 分析 模块 高压 实现 传感器 软件 s7-200 数据 详细 原理 S7-200plc 网络 输出 通信 可编程 输入 WeinView 步进 采用 设定 实例 监控系统 无线 智能 机上 解决 维修 ModBus 运行 行业 现场 工业 交流 安全 发展 LINUX 设备 设置 操作 Profibus DEVELOPER 检测 监控 显示 自动 PROFIBUS-DP 台达 参数 电路 可以 远程 S7-300PLC Omron zigbee 进行 改造 接口 安装 WinCC 特点 自动化 信号 方式 处理 及其 CC-link 基本 装置 siemens 电气 定位 一个 节能 原因 选择 VxWorks 嵌入式 视觉 以太网 施耐德 uCos 自动扶梯 放大器 ucLinux 监测 机器 中断 松下 mm440 串口 丹佛斯 案例 工具 变频

热门文章

正在加载...

三菱 | 西门子 | 施耐德 | 欧姆龙 | 松下自动化 | 永宏自动化| 其它自动化 | PLC课件 | 单片机 | 变频器 | 电梯知识 | 电梯维修| 电梯安装 | 电梯论文 | 电梯事故

常用资料| 印刷| 电工| 电子| 工控| 论文| 制冷| 包装| 数控| 菜谱| 短信| 范文| 驾车| 安全| 创业| 笑话| 人生| 故事| 宝宝| 幼儿| 小学| 初中| 高中| 古典文学