下载

5下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 零起点学习51单片机教程(实例及程序设计)

零起点学习51单片机教程(实例及程序设计).pdf

零起点学习51单片机教程(实例及程序设计)

China_why_e1g
2009-07-15 0人阅读 举报 0 0 暂无简介

简介:本文档为《零起点学习51单片机教程(实例及程序设计)pdf》,可适用于IT/计算机领域

wwweeworldcomcn讲座专家:EEWORLD专家老练工作单位:南京华岳电子(wwwnjhuayuecom)【高手坐堂】“让我们学习AVR”零起点入门讲座正在进行中()……http:bbseeworldcomcnthreadhtml【高手坐堂】之万人学习单片机!()已经完毕资料已整理齐备仍接受提问。http:bbseeworldcomcnthreadhtml【高手坐堂】系列之可配置处理器技术入门即将()举行敬请期待!http:bbseeworldcomcnthreadhtml希望所有学习单片机、对单片机有兴趣的朋友一起加入单片机阵营!讲座不收费!讲座记录:第一讲单片机IO口的使用单片机的IO口控制是单片机初学者最为关心的问题如何快速学会使用IO是初学者最为困难的地方。众多的教科书上面介绍了很多IO的原理这些长篇大论让很多初学者看起来难以理解同时也会止步于单片机门外。我们现在所要学习的使用IO就是很简单的使用就可以了IO无非就是种状态输出为高、输出为低、输入为高、输入为低。我们只要把握这四个方面就可以了先看看我们的单片机接口单片机共有个io。分别为P、P、P、P口P口如果当作IO来使用时必须要使用上拉电阻因为单片机内部没有上拉这一功能。在这个学习板上面大家可以看到个io对应的位置并且在数码管下面就增加了上拉电阻使得io可以实现。现在我们以P口接的led指示灯来说明输出高低电平的功能当我们使用汇编程序:ORGHLJMPMAINORGHwwweeworldcomcnMAIN:MOVP,#HJMPMAINEND这样P口的led就会变亮因为P口赋值#h以后就是将led的所有io都设置为低电平了。如果将MOVP,#H改成MOVP,#FFH那么io就设置成了高电平led就会被熄灭。当然C中也比较简单。#include<regh>Main(){P=#HWhile(){}}这个同样的道理如果P=#FFH就是熄灭led。当我们对键盘的程序如下图解释:这个就是我们板子上面的键盘的接线图当我们单独使用键盘的时候我们要将P置低电平此时我们也是根据前面led设置io的方式进行设置。如下程序:ORGHJMPMAINORGHMAIN:CLRPMOVP,#FFHJNBP,MAINMOVP,#HJMPMAINENDC中:#include<regh>wwweeworldcomcnMain(){P^=While(){P=xFFwhile(P^==){P=x}}}从这个程序都可以看出io为低电平和高电平的效果。第二讲单片机外部中断使用很多人都知道单片机中中断的重要性但是书中的长篇累牍让我们一下子理解有点很不适应。所以我们尽可能简化单片机的中断目前我们是要学会单片机中断的使用就可以了而不是从原理基本说起。在单片机中有个外部中断这两个外部中断口处于低电平的时候开始触发中断信号使得程序可以进入中断处理中断部分的程序。我们还是老规矩先看看硬件电路:在图上的单片机原理图中S,S分别接的是单片机的外部中断和外部中断我们特意将两个发光二极管放在上面进行指示以便我们可以看到中断运行的情况此时我们可以设置中断程序的要求:、指示灯平时没有中断按下的时候不进行工作保持原有状态、当外部中断响应的时候我们就点亮D让外部中断响应的条件就是按下S按键。下面就是汇编程序:wwweeworldcomcnORGHLJMPMAIN主程序ORGHLJMPWINT进入中断子程序ORGHMAIN:MOVSP,#H设置堆栈指针SETBEACPU所有中断开(IE最高位MSB)SETBEXINT中断开CLRITINT低电平触发(为则为下降沿触发)MOVP,#FFHJMP$WINT:CLRPRETIEND如下是c的程序:#include<regh>重定义I引脚名称sbitled=P^固定函数声明voidint()外部中断voidmain(){P=XFFEA=CPU所有中断开(IE最高位MSB)EX=INT中断开IT=INT低电平触发(为则为下降沿触发)while(){{}}INT中断由P引脚产生voidint()interruptusing{led=}在上面的程序中我们可以看出外部中断使用的方法现在我们学会了使用中断那么我们现在开始学使用外部中断吧。首先我们来设置程序的要求:、外部中断点亮D关闭Dwwweeworldcomcn、外部中断点亮D关闭D我们先看看汇编语言的程序:LEDEQUPLEDEQUPORGHLJMPmainORGHLJMPWINTORGHLJMPWINTORGHmain:SETBEACPU所有中断开(IE最高位MSB)SETBEXINT中断开CLRITINT低电平触发(为则为下降沿触发)SETBEXINT中断开CLRITINT低电平触发(为则为下降沿触发)MOVP,#FFHJMP$WINT:SETBLED关闭LEDCLRLED点亮LEDRETIWINT:CLRLED点亮LEDSETBLED关闭LEDRETIEND这是c的程序:#include<regh>重定义I引脚名称sbitLED=P^sbitLED=P^固定函数声明voidint()外部中断voidint()外部中断wwweeworldcomcnvoidmain(){EA=CPU所有中断开(IE最高位MSB)EX=INT中断开IT=INT低电平触发(为则为下降沿触发)EX=INT中断开IT=INT低电平触发(为则为下降沿触发)while(){{}}voidinitial(){EA=CPU所有中断开(IE最高位MSB)EX=INT中断开IT=INT低电平触发(为则为下降沿触发)EX=INT中断开IT=INT低电平触发(为则为下降沿触发)return}INT中断由P引脚产生voidint()interruptusing{Led=关闭DLED=点亮D}INT中断由P引脚产生voidint()interruptusing{LED=关闭DLED=点亮D}这样通过程序和实践我们就可以很轻易学会了外部中断的使用方法。第三讲定时器的使用wwweeworldcomcn关于定时器中断我们简单介绍一下原理就可以了因为具体介绍已经有很多资料都已经提供了。C单片机内部设有两个位的可编程定时器计数器。可编程的意思是指其功能(如工作方式、定时时间、量程、启动方式等)均可由指令来确定和改变。在定时器计数器中除了有两个位的计数器之外还有两个特殊功能寄存器(控制寄存器和方式寄存器)。我们可以看出位的定时计数器分别由两个位专用寄存器组成即:T由TH和TL构成T由TH和TL构成。其访问地址依次为AHDH。每个寄存器均可单独访问。这些寄存器是用于存放定时或计数初值的。此外其内部还有一个位的定时器方式寄存器TMOD和一个位的定时控制寄存器TCON。这些寄存器之间是通过内部总线和控制逻辑电路连接起来的。TMOD主要是用于选定定时器的工作方式TCON主要是用于控制定时器的启动停止此外TCON还可以保存T、T的溢出和中断标志。当定时器工作在计数方式时外部事件通过引脚T(P)和T(P)输入。定时计数器的原理:当定时器计数器为定时工作方式时计数器的加信号由振荡器的分频信号产生即每过一个机器周期计数器加直至计满溢出为止。显然定时器的定时时间与系统的振荡频率有关。因一个机器周期等于个振荡周期所以计数频率fcount=osc。如果晶振为MHz则计数周期为:T=(×)Hz×=μs这是最短的定时周期。若要延长定时时间则需要改变定时器的初值并要适当选择定时器的长度(如位、位、位等)。当定时器计数器为计数工作方式时通过引脚T和T对外部信号计数外部脉冲的下降沿将触发计数。计数器在每个机器周期的SP期间采样引脚输入电平。若一个机器周期采样值为下一个机器周期采样值为则计数器加。此后的机器周期SP期间新的计数值装入计数器。所以检测一个由至的跳变需要两个机器周期故外部事年的最高计数频率为振荡频率的。例如如果选用MHz晶振则最高计数频率为MHz。虽然对外部输入信号的占空比无特殊要求但为了确保某给定电平在变化前至少被采样一次外部计数脉冲的高电平与低电平保持时间均需在一个机器周期以上。当CPU用软件给定时器设置了某种工作方式之后定时器就会按设定的工作方式独立运行不再占用CPU的操作时间除非定时器计满溢出才可能中断CPU当前操作。CPU也可以重新设置定时器工作方式以改变定时器的操作。由此可见定时器是单片机中效率高而且工作灵活的部件。综上所述我们已知定时器计数器是一种可编程部件所以在定时器计数器开始工作之前CPU必须将一些命令(称为控制字)写入定时计数器。将控制字写入定时计数器的过程叫定时器计数器初始化。在初始化过程中要将工作方式控制字写入方式寄存器工作状态字(或相关位)写入控制寄存器赋定时计数初值。下面我们就提出的控制字的格式及各位的主要功能与大家详细的讲解。控制寄存器定时器/计数器T和T有个控制寄存器TMOD和TCON它们分别用来设置各个定时器/计数器的工作方式选择定时或计数功能控制启动运行以及作为运行状态的标志等。其中TCON寄存器中另有位用于中断系统。wwweeworldcomcnTMOD定时器计数器方式寄存器定时器方式控制寄存器TMOD在特殊功能寄存器中字节地址为H无位地址。TMOD的格式如下图所示。由图可见TMOD的高位用于T低使用于T种符号的含义如下:GATE:门控制位。GATE和软件控制位TR、外部引脚信号INT的状态,共同控制定时器/计数器的打开或关闭。C/T:定时器/计数器选择位。CT=为计数器方式C/T=为定时器方式。MM:工作方式选择位定时器/计数器的种工作方式由MM设定。MM工作方式功能描述工作方式位计数器工作方式位计数器工作方式自动再装入位计数器工作方式定时器:分成两个位计数器定时器:停止计数定时器计数器方式控制寄存器TMOD不能进行位寻址只能用字节传送指令设置定时器工作方式低半字节定义为定时器高半字节定义为定时器。复位时TMOD所有位均为。例:设定定时器为定时工作方式要求软件启动定时器按方式工作。定时器为计数方式要求由软件启动定时器按方式工作。我们怎么来实现这个要求呢?大家先看上面TMOD寄存器各位的分布图第一个问题:控制定时器工作在定时方式或计数方式是哪个位?通过前面的学习我们已知道CT位(D)是定时或计数功能选择位当CT=时定时计数器就为定时工作方式。所以要使定时计数器工作在定时器方式就必需使D为。第二个问题:设定定时器按方式工作。上表中可以看出要使定时计数器工作在方式M(D)M(D)的值必须是。wwweeworldcomcn第三个问题:设定定时器为计数方式。与第一个问题一样定时计数器的工作方式选择位也是CT(D)当CT=时就工作在计数器方式。第四个问题:由软件启动定时器前面已讲过当门控位GATE=时定时计数器的启停就由软件控制。第五个问题:设定定时计数器工作在方式使定时计数器工作在方式M(D)M(D)的值必须是。从上面的分析我们可以知道只要将TMOD的各位按规定的要求设置好后定时器计灵敏器就会按我们预定的要求工作。我们分析的这个例子最后各位的情况如下:DDDDDDDD二进制数=十六进制数H。所以执行MOVTMOD,#H这条指令就可以实现上述要求。TCON定时器计数器控制寄存器TCON在特殊功能寄存器中字节地址为H位地址(由低位到高位)为H一FH由于有位地址十分便于进行位操作。TCON的作用是控制定时器的启、停标志定时器溢出和中断情况。TCON的格式如下图所示。其中TFlTRlTF和TR位用于定时器/计数器IElITlIE和IT位用于中断系统。各位定义如下:TF:定时器溢出标志位。当字时器计满溢出时由硬件使TF置“”并且申请中断。进入中断服务程序后由硬件自动清“”在查询方式下用软件清“”。TR:定时器运行控制位。由软件清“”关闭定时器。当GATE=且INT为高电平时TR置“”启动定时器当GATE=TR置“”启动定时器。TF:定时器溢出标志。其功能及操作情况同TF。TR:定时器运行控制位。其功能及操作情况同TR。wwweeworldcomcnIE:外部中断请求标志。IT:外部中断触发方式选择位。IE:外部中断请求标志。IT:外部中断触发方式选择位。TCON中低位与中断有关我们将在下节课讲中断时再给予讲解。由于TCON是可以位寻址的因而如果只清溢出或启动定时器工作可以用位操作命令。例如:执行“CLRTF”后则清定时器的溢出执行“SETBTR”后可启动定时器开始工作(当然前面还要设置方式定)。定时器计数器的初始化由于定时器计数器的功能是由软件编程确定的所以一般在使用定时计数器前都要对其进行初始化使其按设定的功能工作。初始货的步骤一般如下:、确定工作方式(即对TMOD赋值)、预置定时或计数的初值(可直接将初值写入TH、TL或TH、TL)、根据需要开放定时器计数器的中断(直接对IE位赋值)、启动定时器计数器(若已规定用软件启动则可把TR或TR置“”若已规定由外中断引脚电平启动则需给外引脚步加启动电平。当实现了启动要求后定时器即按规定的工作方式和初值开始计数或定时)。下面介绍一下确定时时计数器初值的具体方法。因为在不同工作方式下计数器位数不同因而最大计数值也不同。现假设最大计数值为M那么各方式下的最大值M值如下:方式:M==方式:M==方式:M==方式:定时器分成两个位计数器所以两个M均为。因为定时器计数器是作“加”计数并在计数满溢出时产生中断因此初值X可以这样计算:X=M计数值wwweeworldcomcn下面举例说明初值的确定方法。例、选择T方式用于定时在P输出周期为ms方波晶振fosc=MHz。解:根据题意只要使P每隔us取反一次即可得到ms的方波因而T的定时时间为us因定时时间不长,取方式即可。则MM=因是定时器方式,所以CT=在此用软件启动T所以GATE=。T不用方式字可任意设置只要不使其进入方式即可一般取故TMOD=H。系统复位后TMOD为可不对TMOD重新清。下面计算us定时T初始值:机器周期T=fosc=(×)Hz=μs设初值为X则:(-X)××s=×sX=D=B=FH因为在作位计数器用时TL的高位未用应填写TH占用高位所以X的实际填写应为:X=B=FH结果:TH=FHTL=H源程序如下:ORGHMOVTL,#H给TL置初值MOVTH,#FH给TH置初值SETBTR启动TLP:JBCTF,LP查询计数溢出否?AJMPLPLP:MOVTL,#H重新设置计数初值MOVTH,#FHCPLP输出取反AJMPLP重复循环看了上面的介绍我们现在应该会计算定时器的初值和设置相关的参数了下面我们先看看wwweeworldcomcn硬件如何设计在protelse中我们可以设计成如下led电路图:我们在这里还是要设计自己的要求:使用定时器定时s工作在方式使用位计数方式让D在s后取反闪烁。现在我们计算一下:在定时器中最大的延时只能做到多ms无法做到s那么我们只能通过寄存器进行计算定时器为ms累加到s然后对D进行取反操作。看如下汇编程序:LEDBITP灯的输出信号LEDBITPMSSEQUH=sMSEQUH**************************************************主程序**************************************************ORGHNOPNOPLJMPMAINORGBH计数器NOPNOPLJMPSCANORGBH计数器NOPNOPLJMPSCANORGHwwweeworldcomcnMAIN:MOVP,#FFHMOVP,#FFHMOVSP,#H设置堆栈MOVMSS,#HMOVTH,#CHmsMOVTL,#BHMOVTH,#CHmsMOVTL,#BHMOVTMOD,#HSETBEA打开定时中断SETBTRSETBETSETBTRSETBETMOVP,#FFHAJMP$NOP***********************************************定时子程序***********************************************SCAN:MOVTH,#CHMOVTL,#BHPUSHACCINCMSSMOVA,MSSCJNEA,#,SCAEMOVMSS,#CPLLEDS到了对LED取反AJMPSCAESCAE:POPACCRETISCAN:MOVTH,#CHMOVTL,#BHPUSHACCINCMSMOVA,MSCJNEA,#,SCAEMOVMS,#CPLLEDS到了对LED取反AJMPSCAESCAE:POPACCRETIENDwwweeworldcomcn如下为c的程序:#include<regh>重定义I引脚名称sbitLED=P^sbitLED=P^全局变量及位标志定义unsignedcharMSSunsignedcharMS固定函数声明voidtimer()定时器中断voidtimer()定时器中断voidmain(){TH=xCmsTL=xBTH=xCmsTL=xBEA=打开定时中断TR=ET=TR=ET=TMOD=Xwhile(){{}}定时器中断voidtimer()interruptusing{TH=xCmsTL=xBMSS=MSSIf(MSS>=){LED=!LED}wwweeworldcomcn}定时器中断voidtimer()interruptusing{TH=xCmsTL=xBMS=MSIf(MS>=){LED=!LED}}以上就是定时器的用法有问题欢迎交流。第四讲串口中断知识讲解MCS单片机的串行口具有两条独立的数据线发送端TXD和接收端RXD它允许数据同时往两个相反的方向传输。一般通信时发送数据由TXD端输出接收数据由RXD端输入。MCS单片机的串行口既可以用于网络通信亦可实现串行异步通信还可以用作同步移位寄存器。如果在串行口的输入输出引脚上加上电平转换器就可方便地构成标准的RS接口。MCS单片机的串行接口是一个全双工通信接口它有两个物理上独立的接收、发送缓冲器SBUF可以同时发送和接收数据。但是发送缓冲器只能写入不能读出接收缓冲器只能读出不能写入。两个缓冲器共用一个地址(H)。数据通信的基本概念常用于数据通信的传输方式有单工、半双工、全双工和多工方式。•单工方式:数据仅按一个固定方向传送。因而这种传输方式的用途有限常用于串行口的打印数据传输与简单系统间的数据采集。•半双工方式:数据可实现双向传送但不能同时进行实际的应用采用某种协议实现收发开关转换。•全双工方式:允许双方同时进行数据双向传送,但一般全双工传输方式的线路和设备较复杂。•多工方式:以上三种传输方式都是用同一线路传输一种频率信号为了充分地利用线路资源可通过使用多路复用器或多路集线器采用频分、时分或码分复用技术即可实现在同一线路上资源共享功能。根据同步方式串行数据通信有两种形式如图所示。wwweeworldcomcn•异步通信。在这种通信方式中接收器和发送器有各自的时钟它们的工作是非同步的。异步通信用一帧来表示一个字符其内容是一个起始位紧接着是若干个数据位。•同步通信。同步通信格式中发送器和接收器由同一个时钟源控制在异步通信中每传输一帧字符都必须加上起始位和停止位占用了传输时间若要求传送数据量较大速度就会慢得多。同步传输方式去掉了这些起始位和停止位只在传输数据块时先送出一个同步头(字符)标志即可。•同步传输方式比异步传输方式速度快这是它的优势。但同步传输方式也有其缺点即它必须要用一个时钟来协调收发器的工作所以它的设备也较复杂。MCS的串行口控制寄存器在完成串行口初始化后发送数据时采用MOVSBUF,A指令将要发送的数据写入SBUF则CPU自动启动和完成串行数据的输出接收数据时采用MOVA,SBUF指令CPU就自动将接收到的数据从SBUF中读出。控制MCS单片机串行接口的控制寄存器有两个特殊功能寄存器SCON和PCON用以设置串行端口的工作方式、接收发送的运行状态、接收发送数据的特征、数据传输率的大小以及作为运行的中断标志等其格式如下:①串行口控制寄存器SCON。SCON的字节地址是H位地址(由低位到高位)分别是H一FH。SCON的格式如下:SM、SMl:串行口工作方式控制位。方式方式方式方式。SM:仅用于方式和方式的多机通信控制位。发送机SM=(要求程控设置)。当为方式或方式时:接收机SM=时若RB=可引起串行接收中断若RB=不引起串行接收中断。SM=时若RB=可引起串行接收中断若RB=亦可引起串行接收中断。•REN串行接收允许位:禁止接收允许接收。•TB:在方式、中TB是发送机要发送的第位数据。•RB:在方式、中RB是接收机接收到的第位数据该数据正好来自发送机的TB。wwweeworldcomcn•TI:发送中断标志位。发送前必须用软件清零发送过程中TI保持零电平发送完一帧数据后由硬件自动置。如要再发送必须用软件再清零。•RI:接收中断标志位。接收前必须用软件清零接收过程中RI保持零电平接收完一帧数据后由片内硬件自动置。如要再接收必须用软件再清零。②电源控制寄存器PCON。PCON的字节地址为H无位地址其格式如下:PCON是为在CMOS结构的MCS单片机上实现电源控制而附加的对于HMOS结构的MCS系列单片机除了第位外其余都是虚设的。与串行通信有关的也就是第位称作SMOD它的用处是使数据传输率加倍。SMOD:数据传输率加倍位。在计算串行方式的数据传输率时表示不加倍表示加倍。其余有效位说明如下。GF、GF:通用标志位。PD:掉电控制位表示正常方式表示掉电方式。IDL:空闲控制位表示正常方式表示空闲方式。除了以上两个控制寄存器外中断允许寄存器IE中的ES位也用来作为串行IO中断允许位。当ES=允许串行IO中断当ES=禁止串行IO中断。中断优先级寄存器IP的PS位则用作串行IO中断优先级控制位。当PS=设定为高优先级当PS=设定为低优先级。工作方式MCS单片机可以通过软件设置串行口控制寄存器SCON中SM(SCON)和SMl(SCON)来指定串行口的种工作方式。串行口操作模式选择如表所示。表串行口操作模式选择表SMSM模式功能波特率同步移位寄存器fOSC位UART可变(T溢出率)wwweeworldcomcn位UARTfOSC或fOSC位UART可变(T溢出率)其中fosc是振荡器的频率UART为通用异步接收和发送器的英文缩写。下面对这种工作模式作进一步介绍。.方式当设定SM、SM为时串行口工作于方式它又叫同步移位寄存器输出方式。在方式下数据从RXD(P)端串行输出或输入同步信号从TXD(P)端输出发送或接收的数据为位低位在前高位在后没有起始位和停止位。数据传输率固定为振荡器的频率也就是每一机器周期传送一位数据。方式可以外接移位寄存器将串行口扩展为并行口也可以外接同步输入输出设备。执行任何一条以SBUF为目的的寄存器指令就开始发送。.方式当设定SM、SM为时串行口工作于方式。方式为数据传输率可变的位异步通信方式由TXD发送RXD接收一帧数据为位位起始位(低电平)位数据位(低位在前)和位停止位(高电平)。数据传输率取决于定时器或的溢出速率(溢出周期)和数据传输率是否加倍的选择位SMOD。对于有定时器计数器的单片机当TCON寄存器中RCLK和TCLK置位时用定时器作为接收和发送的数据传输率发生器而RCLK=TCLK=时用定时器作为接收和发送的数据传输率发生器。两者还可以交叉使用即发送和接收采用不同的数据传输率。类似于模式发送过程是由执行任何一条以SBUF为目的的寄存器指令引起的。.方式当设定SM、SM二位为时串行口工作于方式此时串行口被定义为位异步通信接口。采用这种方式可接收或发送位数据以位为一帧比方式增加了一个数据位其余相同。第个数据即D位用作奇偶校验或地址数据选择可以通过软件来控制它再加特殊功能寄存器SCON中的SM位的配合可使MCS单片机串行口适用于多机通信。发送时第位数据为TB接收时第位数据送入RB。方式的数据传输率固定只有两种选择为振荡率的或可由PCON的最高位选择。.方式wwweeworldcomcn当设定SM、SM二位为时串行口工作于方式。方式与方式类似唯一的区别是方式的数据传输率是可变的。而帧格式与方式一样为位一帧。所以方式也适合于多机通信。数据传输率的确定串行口每秒钟发送(或接收)的位数就是数据传输率。对方式来说数据传输率已固定成fosc随着外部晶振的频率不同数据传输率亦不相同。常用的fosc有MHz和MHz所以数据传输率相应为×和×bits。在此方式下数据将自动地按固定的数据传输率发送接收完全不用设置。对方式而言数据传输率的计算式为SMOD·fosc。当SMOD=时数据传输率为fm当SMOD=时数据传输率为fosc。在此方式下程控设置SMOD位的状态后数据传输率就确定了不需要再作其他设置。对方式和方式来说数据传输率和定时器的溢出率有关定时器的溢出率为:定时器的溢出率=定时器的溢出次数秒方式和方式的数据传输率计算式为:SMOD×T溢出率根据SMOD状态位的不同数据传输率有Tl溢出率和T溢出率两种。由于T溢出率的设置是方便的因而数据传输率的选择将十分灵活。前已叙及定时器Tl有种工作方式为了得到其溢出率而又不必进入中断服务程序往往使T设置在工作方式的运行状态也就是位自动加入时间常数的方式。表所示常用数据传输率的设置方法。表常用数据传输率设置方法定时器数据传输率HzfOSCMHzSMODCT方式重新装入值方式最大:M方式最大:XXXXXXXwwweeworldcomcnk方式、:kkkkkkFFHFDHFDHFAHFHEHFEEH串行通信实例我们先看看实例图形我们先设计一个串口通讯的电路一端和单片机连接另一端和电脑连接。如下的protel所示:此图中使用的晶振是mhz的晶振和电脑进行通讯电脑上面下面是汇编程序wwweeworldcomcnLEDBITPORGHLJMPMAINORGHLJMPTRXORGHMAIN:MOVSP,$HMOVTMOD,#HMOVSCON,#HMOVTH,#fdhbitMOVTL,#fdhSETBESSETBRENSETBEAMOVSBUF,#H发送数据第一位JNBTI,$CLRTIMOVSBUF,#H发送数据第一位JNBTI,$CLRTIMOVSBUF,#H发送数据第一位JNBTI,$CLRTIJMP$TRX:PUSHPSW串行中断wwweeworldcomcnPUSHACCPUSHDPLPUSHDPHJNBRI,ENDRXclrtbCLRRIMOVA,SBUFCJNEA,#H,ENDRXSETBLEDENDRX:POPDPHPOPDPLPOPACC

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/33

零起点学习51单片机教程(实例及程序设计)

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利