版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机原理与接口技术嵌入式微控制器开发入门c51单片机第1页参考资料1,《单片机原理及其接口技术》
----胡汉才清华大学出版社(32元)2,《MCS-51/96系列单片机原理及应用》
----孙涵芳徐爱卿北京航空航天大学出版社(35元)3,《MCS-51系列单片机实用接口技术》----李华北京航空航天大学出版社(40元)4,《电子世界》----中国电子学会主办(期刊6.00元/期)c51单片机第2页本课主要内容及课时安排总讲课课时24课时第一章:MCS-51系列单片机基本硬件结构(8课时)
介绍51单片机内部硬件结构(数据存放器、程序存放器、输入输出端口、定时计数器、串行口及中止等)第二章:MCS-51单片机指令系统(4课时)
51单片机111条指令分类、寻址方式、伪指令及使用中注意事项第三章:MCS-51单片机系统扩展及应用(12课时)
程序与数据存放器扩展、定时/计数器应用、串行口应用及A/D、D/A转换器与单片机接口和键盘扫描/动态显示接口电路。
c51单片机第3页怎样学习本门课程第一章是基础,只有熟知单片机硬件结构和特点才能正确使用单片机进行各种编程、应用和开发。第二章关键是要正确了解和掌握指令寻址方式。MCS-51单片机111条指令,要正确了解和利用。第三章要求要利用许多基础知识,将各种外围电路与单片机之间实现接口,所以要掌握外围电路原理、特征和使用方法。这是进行系统设计基础。参加试验前认真做好预习。试验中独立地进行编程、调试。完整掌握单片机编程、调试过程是每一个从事单片机开发工程师所必须跨出第一步。好参考书。不论是初学入门,还是未来开发,它都是很好“工具”和“钥匙”。c51单片机第4页硬件基本概念:微型计算机单片机嵌入式微控制器嵌入式计算机系统继续c51单片机第5页微型计算机:由CPU、存放器、定时/计数器、并行输入/输出接口电路、中止控制器等大规模IC芯片安置在一个电路板上,加上键盘、显示器等组成了微型计算机硬体部分。返回c51单片机第6页单片机将微型计算机系统所用大多数IC芯片集成到一个芯片中。能够认为,单片机就是将微型计算机CPU、存放器、I/O端口、中止控制器等全部做在一个芯片中去。美国INTEL企业生产MCS-51单片机就是一个经典、按照微型计算机框架,采取大规模IC工艺制造单片机,也是当前世界上使用量最大一个较经典产品。返回c51单片机第7页嵌入式微控制器是单片机发展一个高级形式,也是单片机发展必定趋势。它设计理念不再停留在模仿微型计算机结构,而是面向应用、加大功效、降低功耗、精简指令系统提升运行速度为出发点来设计单片机框架。这种处理器最大特征是不但包含了普通单片机全部硬件电路,还集成了放大器、比较器、A/D转换器和PWM电路等等。用它来设计一个智能化产品,能够深入简化外围电路,降低开发成本,甚至完成普通单片机所不能完成任务。美国Microchip企业生产PIC单片机等产品就是这类产品代表,实际上PIC单片机也称为“嵌入式微控制器”,如PIC16F877等。返回c51单片机第8页嵌入式计算机系统人们在工业控制、家电产品、智能仪表、汽车电子等领域进行智能化设计时,将嵌入到被控制对象(如:家电、汽车、机床等)中、已经失去了原有计算机形态及功效专用计算机称之为“嵌入式计算机系统”。在这些被控制对象中,往往要求嵌入式计算机系统要有极小体积和极低成本,要有极小功耗和较高可靠性。而这些又恰恰是通用计算机无法作到。所以以单片机为代表嵌入式计算机系统(也称嵌入式微控制器)极大满足了这种市场需求。反过来,市场需要也迫使单片机去不停完善、发展,使其分类越来越细,品种越来越多。c51单片机第9页微型计算机与单片机在硬件结构上比较
微型计算机单片机数据RAMCPU并行I/O程序ROM定时/计数器串型端口中止控制器扩展I/O端口系统总线(DB、AB、CB)微型计算机组成框图(由多个IC芯片组装在一个主电路板上)MCS-51单片机全部单元都组装在一个IC芯片上返回c51单片机第10页第一章:MCS-51系列单片机基本硬件结构1.1MCS-51单片机主要性能和特点1.2MCS-51单片机内部方框图1.3MCS-51单片机引脚定义1.4MCS-51单片机存放器配置1.6
输入输出端口1.5
震荡器、时钟电路和CPU时序1.7
MCS-51单片机定时/计数器1.8
MCS-51单片机串行接口1.9MCS-51中止系统c51单片机第11页
1.1MCS-51单片机主要性能和特点内部程序存放器ROM(以89C51为例):4K存放容量;内部数据存放器RAM:256B(128BRAM+21BSFR);存放器区:设有4个存放器区,每一个区有R0-R7八个工作存放器;8位并行输入输出端口:P0、P1、P2和P3;定时/计数器:2个16位定时/计数器;串型口:全双工端口(RXD:接收端,TXD发送端);中止系统:设有5个中止源;系统扩展能力:可外接64KROM和64KRAM;堆栈:设在RAM单元中,能够浮动既经过堆栈指针SP来确定堆栈位置布尔处理机:配合布尔运算指令进行各种逻辑运算;指令系统:111条指令。按功效可分为数据传送、算术运算、逻辑运算、 控制转移和布尔操作5大类。返回c51单片机第12页1.2:MCS-51单片机内部方框图
时钟电路4KROM程序存放器256BRAM数据存放器2X16位定时/计数器CPU处理器64KB总线扩展控制器可编程I/O端口P0-3可编程串行口c51单片机第13页MCS-51系列芯片及制造工艺型号片内ROM片内RAMI/O口线备注8031无128B+SFR8×4DIP40脚8051掩膜4KB128B+SFR8×4DIP40脚8751EPROM4KB128B+SFR8×4DIP40脚89C51FLASH4KB128B+SFR8×4DIP40脚89C2051FLASH2KB128B+SFR15简化DIP20脚8XC5528K256B+SFR8×6增强多功效型返回c51单片机第14页1.3:MCS-51单片机引脚定义MCS-51单片机有两种封装形式:a.40脚双列直插DIP封装;b.44脚PLCC。1,主电源引脚:Vcc(+5V---40脚)和Vss(GND20脚);2,外接晶体引脚:XTAL1(19脚)、XTAL2(18脚),只要在这两脚之间接入一个晶体震荡器,单片机就能够以此晶体频率开始工作。惯用晶体频率有0-24M,频率越高,单片机工作速度就越快,但单片机功耗就要增加。3,控制或与电源复用引脚:RST/Vpd、ALE/PROG、/PSEN和Vdd
RST/Vpd(9脚):在系统上电震荡器开始工作时,在内部加在此引脚上有一个两个时钟周期高电平使单片机复位。但为了使系统复位可靠,提议外加一个上电复位电路,延长复位时间。当单片机掉点时,此引脚能够接入备用电源向单片机内部RAM供电,以预防RAM中数据丢失。引脚图c51单片机第15页在复位状态下:全部SFR内容全变为“0”,端口输出“1”。RAM内容不变。MCS-51RSTVccMCS-51RSTVcc1K10ΩtVT延长上电复位时间电路和RST端上电电压曲线含有手动复位功效复位电路RCc51单片机第16页8463521VoVcc触发触发信号VoVc8463521Vo→RSTVccP1.0VccP1.0VoV备用使用555电路组成掉电保护电路由555组成单稳态电路、波形单稳态单路组成掉电保护电路、波形c51单片机第17页掉电保护原理及过程电源监控电路对电源VCC进行监控,当VCC电源开始下降时向单片机/INT0或/INT1发一个中止申请信号。单片机收到中止信号,马上进入中止程序。在电源消失前:
1,快速将一些主要信息送RAM保留;2,从P1.0引脚输出负脉冲,触发单稳进行电源切换。外部单稳电路进入但稳态后,因为VCC消失,使电路无法对单稳电容充电,所以单稳电路一直处于“休眠状态”。当VCC电源恢复后,VCC对电容充电,经ΔΤ后脱离单稳态。电源监测电路/INT0RSTMCS-51P1.0VoVdd555触发输入Vcc备用电源c51单片机第18页
ALE/PROG(30脚):以一个不变频率(系统时钟fosc/6)周期性输出正脉。当单片机使用外部存放器时,此信号可作为低八位地址锁存信。对于EPROM型单片机,此脚还是用于写程序时,输入编程脉冲。/PSEN(29脚):外部程序程序存放器选通信号。当单片机使用外部程序存放器时,此脚在一个机器周期内产生两次负脉冲。注意,访问外部数据存放器时,此信号无效。/EA/Vdd(31脚):外部程序存放器选择端控制端:当此脚加入“1”电平是,单片机使用内部程序存放器;当EA加入低电平时,系统只使用外部程序存放器。但要尤其注意:假如EA=1既使用单片机内部程序存放器时,假如程序计数器PC值超出0FFFH时,单片机将自动转向外部程序存放器1000H开始单元。对于EPROM型单片机,此脚还是用于写程序时,加入21伏编程电压。时序图引脚图c51单片机第19页4,并行输入输出端口引脚(P0-P3)P0.0-P0.7P0端口线(39-32脚):输出能力最强端口,能够带动8个TTL负载。驱动一个MOS负载时,应接一个10K左右上拉电阻。假如系统使用外接存放器时,该口还作为地址(低八位)总线和数据总线,注意在这种情况下,P0口就不能通用I/O端口。P1.0-P1.7P1端口线(1–8脚):负载能力为4个TTL负载。P2.0–P2.7P2端口线(21–28脚):通用I/O端口。除了做通用I/O端口外,当系统使用外接存放器时,该口还作为地址(高八位)总线,在这种情况下,P0口就不能通用I/O端口。负载能力为4个TTL。引脚图c51单片机第20页P3.0–P3.7P3端口线(10–17脚):P3口除了做通用I/O端口外,同时它还有第二功效),负载能力为4个TTL。口线定义说明口线定义说明P3.0RXD串行数据输入口P3.4T0计数器0外部输入信号P3.1TXD串行数据输出口P3.5T1计数器1外部输入信号P3.2INT0外部中止0输入口P3.6/WR外部数据存放器写信号P3.3INT1外部中止1输入口P3.7/RD外部数据存放器读信号P3口第二功效表引脚图c51单片机第21页
MCS-51单片机外型图(DIP封装)MCS-51单片机逻辑符号图VCCRSTXTAL1
P0口XTAL2/EA/PSENALE
P1口P3口RXDTXD/INT0/INT1P2口T0T1/WR/RDGND87C51EPROM型AT89C51ATMELFLASH型返回返回上一次c51单片机第22页1.4MCS-51单片机存放器配置1.4.0MCS-51单片机存放器配置特点MCS-51单片机片内、外程序存放器使用示意图1.4.1程序存放器(片内与片外)1.4.2内部数据存放器RAMMCS-51片内、片外数据存放器示意图MCS-51单片机片内存放器低128B字节功效分配图片内RAM(20H-2FH)中位寻址区结构图特殊功效存放器SFR1.4.3外部数据存放器第一章第四节内容小结程序存放器六个特殊单元返回第1章主菜单c51单片机第23页1.4.0MCS-51单片机存放器配置特点(89C51)在MCS-51单片机内部集成了4K程序存放器和256B数据存放器,同时还能够使用片外程序存放器和数据存放器,其扩展能力都是64K。从物理结构角度讲,51单片机存放系统能够分为四个存放空间:既片内ROM,RAM和片外ROM、RAM。从逻辑上讲(既用户编程角度讲)51单片机存放系统又可分为三个存放空间。既片内RAM,片外RAM和片内、外程序存放器ROM。c51单片机第24页从物理结构上单片机系统存放器结构图
(四个部分)
MCS-51单片机片内ROM4K片内RAM256B片外RAM64K片外ROM64K返回返回上一次c51单片机第25页1.4.1程序存放器(片内与片外)程序存放器是用来存放编好程序、常数和表格。在MCS-51单片机中,当引脚EA=1时,系统使用片内4KROM来存放程序。EA=0时,系统使用片外ROM。不论是使用片内还是使用片外ROM(既EA=1或EA=0),其起始地址都是从0000H单元开始。c51单片机第26页假如EA=1(使用片内程序存放器时):程序从0000H开始执行。注意:在这种情况下,假如程序计数器指针PC值超出0FFFH(4K)时,单片机就要自动转向片外ROM存放器(尽管EA=1),且从片外ROM1000H单元开始执行程序。但单片机是无法使用片外ROM0000H-0FFFH这4K单元。返回c51单片机第27页MCS-51单片机片内、外程序存放器使用示意图
0FFFH0000H0FFFH0000HFFFFH1000HEA=1时,ROM使用EA=0时ROM使用片外程序存放器(最大64K)单片机内部程序存放器(4K)返回c51单片机第28页程序存放器六个特殊单元在程序存放器中,有六个单元是含有特定功效。编程者是不能随便使用。0000H单元:上电时,程序计数器PC所指向单元0003H单元:外部中止/INT0入口地址;000BH单元:定时器T0溢出中止入口地址;0013H单元:外部中止/INT1入口地址;001BH单元:定时器T1溢出中止入口地址;0023H单元:串行口接收、传送中止入口地址。返回c51单片机第29页1.4.2内部数据存放器RAM数据存放器不论在物理上还是逻辑上都分为两个地址空间,既一个内部和一个外部数据存放空间。访问内部数据存放单元时,使用
MOV指令;
而访问外部数据存放器时,使用
MOVX指令。内部数据存放器从功效上又将256B空间分为二个不一样块:1,低128BRAM块;2,高128BSFR(SpecialFunctionRegister)块。在低128BRAM存放单元中又可划分为:工作存放器区、可位寻址区、通用存放数据便签区。高128B专用存放器区中仅仅使用了21存放器(51系列),其它单元未定义不能使用。存放结构图c51单片机第30页MCS-51片内、片外数据存放器示意图
特殊功效存放器SFR通用数据存放器80H7FH00HFFH片内数据存放器片外数据存放器256B个字节64KB个字节片外数据存放器64KB0000HFFFFH注意:1,访问片内RAM20H存放单元;MOVA,20H2,访问片外RAM存放单元;MOVR0,#20hMOVXA,@R03,尽管片内与片外RAM单元00H-FFH地址相重合但由于指令不一样不会发生地址混乱。c51单片机第31页片内RAM低128B字节功效分配图
位寻址区3区2区1区0区便笺区08H07H00H7FH30H2FH20H1FH18H17H10H0FH四个工作存放器区每个区中有R0-R7八个工作存放器位寻址区16个单元20H-2FH,共有128可寻址位个位。位地址:00H-7FH注意:位地址与字节地址区分通用RAM区地址:30H-7FH继续返回上一次c51单片机第32页片内RAM(20H-2FH)中位寻址区结构图7F7E7D7C7B7A797877767574737271706F6E6D6C6B6A696867666564636261605F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A393837262524232221202F2E2D2C2B2A292827262524232221201F1E1D1C1B1A191817161514131211100F0E0D0C0B0A090807060504030201002FH20H字节地址c51单片机第33页位寻址区内地址是位地址。共有00-7FH(共128个位);要区分字节地址和位地址这两个不一样地址概念:从物理角度,每一个字节地址内包含了8个位,既:
D7,D6,D5,D4,D3,D2,D1,D0在普通情况,我们提到RAM地址都是字节地址。从逻辑角度讲,字节地址和位地址是靠不一样类型指令来区分。如:
MOVA,20h;将RAM20单元内容送累加器A;MOVC,20h;将RAM位寻址区中20H位送CY中。在这二个例子中,第一条指令为字节传送指令,所以20H为字节地址;第二个例子中指令为位操作指令,所以20H为位地址。相关详细内容将在第二章中描述。返回c51单片机第34页0区工作存放器区结构图R7R6R5R4R3R2R1R0RAM地址07H06H05H04H03H02H01H00H返回上一次c51单片机第35页特殊功效存放器SFR特殊功效存放器SFR(SpecialFunctionRegister)
特殊用途存放器集合。用来设定单片机内部各个部件工作方式,存放相关部件状态,定时器初值存放器,并行端口锁存器等等。尽管特殊功效存放器与RAM在同一个单元中,但不能作为普通RAM存放单元来使用。只有在编程中依据需要,进行一些特定功效设定,或者是从中查寻相关部件状态时,才能进行读、写操作。如中止方式设定、定时器工作模式设定,查询串行口发送或接收是否结束等等。c51单片机第36页
标识符名称地址ACCBPSWSPDPTRP0P1P2P3IPIETMODTCON累加器B存放器程序状态字堆栈指针数据指针(包含DPH,DPL)口0口1口2口3中止优先级控制存放器中止允许控制存放器定时/计数器方式控制存放器定时/计数器控制存放器0E0H0F0H0D0H81H83H,82H80H90H0A0H0B0H0B8H0A8H89H88H特殊功效存放器SFR(表一)c51单片机第37页SFR(表二)
标识符名称地址TH0TL0TH1TL1SCONSBUFPCON定时/计数器0初值存放器高8位定时/计数器0初值存放器低8位定时/计数器1初值存放器高8位定时/计数器1初值存放器低8位串行口控制存放器串行口数据缓冲器(接收,发送)电源控制存放器8CH8AH8DH8BH98H99H97HSFR高128B低128B0FFH80H7FH00H特殊功效存放器SFR在片内RAM中位置注:表中黄色单元为可按位寻址字节c51单片机第38页特殊功效存放器SFR说明程序计数器PC:用来存放下一条要执行指令地址,长度为16位,所以寻址范围为0-65535(64K).在物理上是独立于SFR.累加器A:最惯用专用存放器,大多数指令操作数都来自累加器A.全部算术运算指令运算结果都存放在A中.B存放器:乘除法指令使用存放器.数据指针DPTR:一个16位存放器.由高八位DPH和低八位DPL组成.DPTR主要用来存放片内ROM地址和片外RAM,ROM地址.这么单片机能够经过间址方式来访问片内ROM或片外RAM,ROM。
比如:片外RAMH单元中有一个数x,试将其送到累加器A中.MOVDPTR,#h;DPTR←HMOVXA,@DPTR;A←xc51单片机第39页程序状态字PSW:8位存放器.表征程序执行状态信息。CY(PSW.7)进位标志:在加减法运算中,累加器A最高位A7有进位,则CY=1,不然CY=0.同理,在减法运算中,假如A7有借位,则CY=1.所以CY往往作为无符号数运算是否有溢出标志。AC(PSW.6):辅助进位位:用来判断加减法运算时,低四位是否向高四位进位或借位(既A3进位或借位).往往用来判断压缩BCD码运算处理.F0(PSW.5)用户标志位:完全由用户来定义和使用。RS1,RS0工作存放器区选择位:确定工作存放器R0-R7在哪个区中.单片机在上电或复位后RS1、RS0=00。当需要人为修改RS1,RS0值来改变工作存放器区位置。CYACF0RS1RS0OV-PRAM分配图c51单片机第40页OV(PSW.2)溢出标志位:判断符号数加减法运算时是否有溢出.OV结果能够用一个算法来表示:OV=CP异或CS
其中:CP为A7进位,CS为A6进位OV=1表明有溢出。P(PSW.0)奇偶标志位:用来标志累加器A中运算后1个数。当P=1时,表明A中1个数为奇数个,反之为偶数个。
【举例】:有两个数0FH和F8H,试将两数相加MOVA,#0FH;将马上数0fh送累加器AADDA,#0F8H;A内容与马上数0f8h相加,结果送A00001111运算结果:A=07H,CY=1(既CP=1),
+11111000CS=1,OV=0(因为CP=1,CS=1)Cy→100000111AC=1,P=1怎样依据PSW来分析运算结果是否正确?是否有溢出?1,若数据为无符号数。既15+248=263=107H既CY=1,A=07H。2,若数据为有符号数。既+15加-8=+7=07H,OV=0表明无溢出。c51单片机第41页SP堆栈指针:8位存放器,用来指示堆栈位置,可由软件修改。在MCS-51单片机设计中,片内RAM区为堆栈可用空间。上电或复位时,SP被初始化为07H,既堆栈底部被确定在RAM07H单元。
堆栈操作过程:
进栈:PUSHACC指令(设SP=07H),1,SP+1送SP,此时SP=08H;2,ACC送RAM08H单元;出栈:
POPACC(设SP=08H);1,将RAM中08H单元内容送A;2,SP-1送SP,此时SP=07H。07HSP08H07HRAMx累加器A堆栈操作示意图c51单片机第42页并行端口P0-P3:SFR中P0-P3实际上就是I/O端口数据锁存器。与RAM中任意一个单元一样,P0-P3都有自己RAM地址:80H、90H、A0H、B0H。所以,在51单片机中输入、输出操作实际上就是个普通RAM单元操作一样:如输出指令MOV80H,A;将累加器中数据送到P0口输出输入指令MOVA,90H;将P1口数据输入到累加器A中
既MCS-51指令系统中没有专用输入、输出(IN、OUT)指令,而是把P0-P3作为普通内存单元来使用。上面第一个例子实际上就是MCS-51输出指令;同理后者是MCS-51输入指令。c51单片机第43页串行数据缓冲器SBUF:它是专门用来存放发送或接收数据,实际上它是两个独立存放器。尽管在SFR中RAM地址只是99H,但依据指令“发送”或“接收”两种不一样操作,硬件会自动区分,将数据送如对应缓冲单元。定时/计数器T0、T1:不论是定时还是计数,对于MCS-51单片机定时/计数器来说,都是一个“计数器”在计数。这个“计数器”是由两个8位存放器(高位和低位)组成16位计数器,分别是TH0、TL0(T0);TH1、TL1(T1)。TH和TL中数据直接与“定时操作”或“计数操作”相关,所以在使用定时/计数器之前,要对它进行初始化,其中就要对TH、TL赋初值。如:
MOV8CH,#01HMOV8AH,#20H
大家试分析上面两条指令作用。
相关SFR中其它存放器说明将相关章节中作介绍。TH0TL0返回c51单片机第44页1.4.3外部数据存放器在片内RAM不能满足需要时,就要外接RAM。P0、P1作为外部RAM地址和数据总线。 MCS-51对外部数据存放器扩展能力为64KB。除了硬件电路外,系统主要是靠专门指令来访问外部数据存放器。如:MOVR0,#20H;将外部RAM单元地址20H送R0存放器
MOVXA,@R0;从外部RAM20H单元取数据到累加器A这里使用了R0做间址存放器,所以寻址范围为256KB。
同理:MOVDPTR,#H;将外部RAM单元地址送DPTRMOVXA,@DPTR;从外部RAMH单元中取数据到A
这里使用了16位存放器DPTR,所以寻址范围为64KB。
返回c51单片机第45页第一章第四节内容小结1.4MCS-51单片机存放器配置
片内4K程序存放器ROM和256B数据存放器RAM;片外能够扩展64KROM和RAM.从用户编程角度能够将它们分为3个存放空间:1,片内RAM;2,片外RAM;3,片内+片外ROM.1.4.1程序存放器(片内与片外)当引脚EA=1时,单片机上电复位后从片内ROM0000H单元运行程序;若引脚EA=0时,单片机上电复位后从片外ROM0000H单元运行程序.当引脚EA=1,且PC值大于1FFFH时,单片机就自动转到片外ROMH单元继续运行程序.不论是使用片内还是片外ROM,有六个单元是有特定意义:
1,0000H单元:上电,复位后开启地址;
2,0003H单元:外部中止INT0入口地址;
3,000BH单元:定时器T0中止入口地址;
4,0013H单元:外部中止INT1入口地址;
5,001BH单元:定时器T1中止入口地址;
6,0023H单元:串行口中止入口地址.c51单片机第46页1.4.2内部数据存放器RAM
内部RAM256B分为低128B和高128B.
其中低128B中有1,工作存放器区;2,位寻址区;3,便笺区.
高128B中仅仅使用了小部分做特殊功效存放器SFR用.注意:
1,SFR不一样于普通数据RAM,它不是用于存放数据,而是用来存放和表征单片机内部几个逻辑部件特征,状态等主要信息.2,在使用RAM时,要注意字节地址和位地址概念.3,访问内部RAM指令为MOV指令.1.4.3外部数据存放器
在硬件具备条件下,MCS-51单片机能够使用64KB外部数据存放器.假如要访问外部数据存放器RAM时,只能使用间址寻址方式.间址存放器有R0,R1或DPTR.前者寻址范围为256KB(00H-FFH);后者为64KB(0000H-FFFFH).使用指令是MOVX.返回第1章主菜单c51单片机第47页1.5震荡器、时钟电路和CPU时序1.5.1震荡器、与时钟电路1.5.2MCS-51单片机时序1.5.3访问外部程序存放器ROM时序1.5.4访问外部数据存放器RAM指令时序单字节单周期指令时序双字节单周期指令时序单字节双周期指令时序继续c51单片机第48页MCS-51内部有一个用于组成震荡器高增益反相放大器.在单片机引脚XTAL1和XTAL2分别是此放大器输入和输出端.与作为反馈元件晶体或陶瓷谐振器一起组成了一个自激震荡器(见右上图).假如使用外部震荡器信号,其外来信号加在XTAL1引脚上(见右下列图).XTAL1XTAL2XTAL2XTAL1NC外时钟使用外时钟时电路连接1.5.1震荡器、与时钟电路:返回20P20Pc51单片机第49页1.5.2MCS-51单片机时序时钟周期,T:时序中最小时间单位.其值由外接晶体或外输入时钟来决定,其值为石英振荡器频率倒数。 比如:在单片机外接1MH晶体,则单片机系统时钟频率为1M,时钟周期为1us.机器周期:完成特定功效所需要时间,在MCS-51单片机中机器周期由12个时钟周期组成,并分为6个状态(S1-S6),每个状态又分为P1和P2两拍.这么一个机器周期12个震荡周期能够表示为:
S1P1,S1P2,S2P1,S2P2,S3P1,S3P2…S6P1,S6P2将12个震荡周期用6个状态和2拍来替换。TS1S1S6S5S4S3机器周期c51单片机第50页指令周期:这是时序图中最大时间单位,既执行一条指令所需要时间.在MCS-51系统中,不一样指令它所包含机器周期数不一样.它们分别是:1,单机器周期指令;2,双机器周期指令;3,四机器周期指令
我们知道:一个机器周期包含了12个震荡周期.假如我们使用一个12M晶体震荡器,那么:
一个机器周期为1us,两个机器周期为2us,四个机器周期为4us.可见一条指令运算速度与它所包含机器周期数相关.机器周期数越少,执行速度就越快.在MCS-51单片机指令系统中,除了乘、除法指令为四个机器周期外,其余都是单周期和双周期指令.返回c51单片机第51页指令字节数与指令周期之间关系:
在MCS-51单片机指令系统中有: 单字节; 双字节; 三字节指令。在MCS-51111条指令中,能够分为六种基本时序:
1,单字节单周期指令;4,双字节单周期指令;2,单字节双周期指令;5,双字节双周期指令;3,单字节四面期指令;6,三字节双周期指令.c51单片机第52页
指令特点:在程序存放器ROM中仅占一个存放单元。 在ALE第一次有效(S2P1)时,从ROM中读取指令操作码,送入指令存放器IR中.并译码执行,在ALE第二次有效时,封锁PC加一,使第二次读数无效.可见:1,ALE信号对应这从ROM中读指令,所以在一个机器周期中CPU能够读两次指令;2,对于单字节单周期指令,CPU经过译码后封死PC,实际上指令后半部不做任何工作.单字节单周期指令时序:机器周期读操作码一读操作无效ALE返回S1S2S6S5S4S3c51单片机第53页
指令特点:一条指令长度为两个字节,并存放在ROM相邻两个单元中。要想完整将这么指令执行完,必须从ROM中读两次操作码.在ALE第一次有效时,CPU从ROMn单元中取出指令第一个字节OP1-1,并送入IR译码,经过译码CPU知道这是一条双字节指令,所以使PC加一,并在ALE第二次有效时,从ROMn+1单元取出指令第二个字节OP1-2送入IR进行译码,并产生对应操作.最终在S6P2时完成本条指令运行.S1S2S6S5S4S3机器周期读操作码一读操作码二OP1-2OP1-1n+1n程序ROMPC双字节单周期指令时序ALE返回c51单片机第54页指令特点:单字节,需要两个机器周期运行.如:INCDPTR
DPTR为两个8位存放器,加一时,必须分两步完成.既第一步DPL加一,假如DPL加一有进位则还要进行第二步对DPH加一.在指令周期第一个ALE时,将ROM中操作码OP取出,经IR译码后得知为单字节双周期指令,所以一面执行该指令,同时封锁后面三次ALE有效时PC+1,在第二个机器周期S6P2时,完成操作.S1S2S6S5S4S3机器周期1读操作码读无效S1S2S6S5S4S3读无效读无效机器周期2单字节双周期指令时序ALE返回c51单片机第55页设:单片机使用片外ROM,且要执行是一条:
movca,@a+dptr指令.(设a+dptr=H)/PSEN
P2口MCS-51
P0口ALED7∶D0CP/CSA15∶A8
64K
ROMA7∶A0
D0~D7A15-A8(PC)A7-A0OPA7-A0常数/PsenP2口P0口1.5.3访问外部程序存放器ROM时序:S1S2S6S5S4S3ALEA15-A8(DPTR+A)返回前一次74LS373c51单片机第56页1,在S2P1时刻,P2口输出外部ROM高八位地址A15-A8,P0口输出低八位地址A7-A0,这时地址是由程序计数器PC提供ROM中指令地址;2,在ALE下降沿,P0口数据(低八位地址)被锁存到74LS373中.3,在S3P2到S4P1期间,/psen变低电平时,外部程序ROM被选中,数据输出端三态门被打开,被选中单元中指令movc送到P0口上,且在S4P2时指令经P0口送至CPUIR中.4,CPU对指令译码后,在S4P2时进行常数地址计算并由P0、P2口输出.5,在S5P2时,ALE将常数地址低八位锁存6,在S6P1时,外部ROM被再次选种打开,按照单片机所提供16位常数地址,将外部ROM中常数经P0口在S6P2时刻送入累加器A.返回上一页返回c51单片机第57页设外部RAMH单元中有一个数x,且DPTR中已存有该数地址H.则CPU执行外部ROM中指令:MOVXA,@DPTR;将外RAMx送A/WR
/RD
P2口MCS-51
P1口
ALED7∶D0/CP/WR/RDA15∶A8
A7∶A064KRAMD0~D7S1S2S6S5S4S3S1S2S6S5S4S3ALEPsenA15-A8(PC)A15-A8(DPH)A7-A0指令A7-A0数据RDP2口P0口选中外部RAM1.5.4读外部数据存放器RAM指令时序返回前一次c51单片机第58页1,在S2P2时,ALE第一个下降沿将P0口输出外程序ROM低八位地址锁存到74LS373锁存器中;2,在S3P2Psen为低电平时,选中外ROM,并依据单片机P0、P2口输出16位地址选中movx指令(单字节),经过P0口送至单片机内部IR中译码.经译码后产生以下一系列操作;3,CPU将DPTR中高8位(20H)送P2口输出,低八位(00H)经P0口输出,节在S5P1时ALE第二次下降沿时,将P0口低八位地址锁存;4,在第二个机器周期S1-S3中单片机输出/RD信号(低电平),选中外部RAM,并依据单片机提供H这16位地址中取出数据x.5,CPU在S2-S3期间,将外部RAMH单元送到P0口上数据送入累加器A中.上一页c51单片机第59页上述过程能够分成两个指行阶段:1,依据PC所指定程序存放器地址,将movx指令从片外ROM中取出; 2,经译码后将DPTR提供外数据存放器RAM中数据地址取出数据,经P0口送累加器A. 在第一阶段CPU产生/Psen信号用来选通外部程序存放器ROM; 在第二阶段CPU输出/RD信号(低电平),用来选通并读取外部数据存放器RAM数据.返回c51单片机第60页1.6输入输出端口在MCS-51单片机四个端口都是含有输出锁存功效双向端口,这些锁存器位置都在SFR中,其地址分别为:80H、90H、A0H、B0H.出于系统考虑,在硬件设计上对每一个端口都有不一样要求,所以每一个端口又含有不一样特点.1.6.1P0口P0口位结构图P0口工作原理1.6.2P1口1.6.3P2口1.6.4P3口1.6.5并行端口在使用时应
注意几个问题单片机与继电器等大电流负载接口继续MCS-51逻辑图c51单片机第61页1.6.1P0口:特点:“通用数据I/O端口”和“地址、数据复用总线”端口.1,在作为通用数据I/O端口时,含有较强驱动能力(8个TTL负载),与MOS负载连接时,需要外接一个上拉电阻。2,作为“地址、数据复用总线”使用时,P0口首先输出外部存放器低八位地址,然后再变为数据总线进行数据输入或输出.此时,P0口不能再作为通用I/O口。返回c51单片机第62页P0口位结构图DQ
锁存器CL/QP0.x引脚Vcc地址/数据1/0控制(=0时)读锁存器读引脚内部总线写锁存器MUX(控制=0时)硬件组成:1,一个输出锁存器(D型触发器);2,二个三态门(控制读引脚或读锁存器);3,与门和MUX等元件组成输出控制电路;4,一对场效应晶体管FET组成输出电路.Vcc返回返回前一次1,P0口I/O操作;2,P0口总线方式c51单片机第63页1,P0口I/O操作(通用I/O端口)在P0口作为通用I/O端口时,控制电路中“控制”为“0”电平,多路开关MUX接入下方锁存器/Q端。因为与门一个输入端为“0”,所以它使上端FET截止.这就是P0口在做I/O口时输出为“漏极开路”结构原因.输出操作:在执行以口为目标指令时,数据送到锁存器“D”端,经“/Q”端送场效管应输出极.如:送“1”时,/Q=“0”,使下端FET截止.这么出现输出极两个FET全部截止.在这种情况下必须在端口线上外加上拉电阻.这么在上拉电阻作用下,使端口为高电平.同理,若总线向口送“0”时,锁存器/Q=1,使下端FET导通(上面FET依然截止),这么端口展现“0”电平.返回结构图c51单片机第64页输入操作(读引脚,读锁存,输入前写一)a,读引脚:读外部送到端口引脚电平,即通常所说输入操作(如:MOVA,P0).此时,单片机控制“读引脚”三态门,使引脚处外部电平经三态门送入内部总线.b,读锁存器:将进行读锁存器并进行处理,最终再写回锁存器操作称之为:“读—修改—写”操作。在这种情况下,读入数据不是来自引脚,而是端口内部锁存器内容。 当前面完成一次端口输出后,要再将前面输入状态取回来,进行再处理,然后重新输出,在MCS-51指令系统中这种“读—修改—写”操作有:ORL、XRL、JBC、CPL、INC、DEC、DJNZ、MOVPx,y、CLRPx,y和SETPx,y。如:ORLP0,A;P0∨A→P0
返回结构图P0.Xc51单片机第65页c,输入时应先写“1”:在端口电路中,能够发觉一个问题:端口在输入(读引脚)时,原来锁存器状态可能要影响引脚电平输入.比如:原来锁存器状态为“0”态,既输出极下端FET是饱和状态,这么假如外电路向引脚输入高电平时,电路将不能正确读入.要处理方法就是让下端FET截止,既事先向端口写一个“1”.请注意下面一段程序:
MOVA,#0FFH;0FFH送累加器AMOVP0,A;向P0口“写1”MOVA,P0;从P0口输入数据到A你能正确分析出指令操作吗?返回结构图c51单片机第66页2,P0口总线方式(系统使用外存放器时)控制电路“控制”=1,此时与门打开,MUX接向“地址/数据”信号.在这种情况下,输出极两个FET都处于正常工作状态。访问外部存放器指令movx、movc,就是使用P0口来输出外部存放器低八位地址和输入、输出存放器数据。能够从:访问外部程序存放器ROM时序;
读外部数据存放器RAM指令时序中来清楚观察P0口作为“地址/数据复用”总线工作特点。在进行单片机硬件系统设计中,假如使用了外部存放器(或使用movx指令来访问外部接口电路)时,P0口成为整个系统地址/数据复用总线。换句话,P0口不能再作为通用I/O端口形式直接与外部连接。返回结构图c51单片机第67页1,做通用数据I/O端口时,输出级上端FET处于截止状态,所以与MOS器件连接时,必须接“上拉电阻”,不然不能正确输出高电平;2,在输入操作前,为了确保输入正确,必须先向端口“写1”;3,“读引脚”与“读锁存器”是不一样两个数据通道。凡是“读—修改—写”操作,CPU读都是端口锁存器中数据。4,为了提升电路可靠性,端口引脚不要直接与三极管一类器件直接连接,应加隔离电路或与三极管之间加一个电阻.5,在总线方式时,P0口不能再做通用I/O端口。它分时输出地址、数据总线信息(此时引脚不用外接上拉电阻)。返回返回结构图P0口特点小结:c51单片机第68页特点:单纯通用I/O端口,负载能力为3个TTL输入。与P0口区分在于内部含有上拉电阻,所以输出时不用外接上拉电阻。1.6.2P1口位结构图DQ
锁存器CL/QP1.x引脚Vcc读锁存器读引脚内部总线写锁存器内部上拉电阻返回返回前一次c51单片机第69页1.6.3P2口特点:
“通用数据I/O端口”和“高八位地址总线”端口DQ
锁存器CL/QP2.x引脚Vcc地址/数据1/0控制读锁存器读引脚内部总线写锁存器MUX(地址/数据=0)内部上拉电阻返回上一次c51单片机第70页与P0口一样,P2口在系统使用外部存放器时,做高八位地址总线。应该注意是:仅使用外部数据存放器时,P2口分两种情况:1,仅仅使用256B外部RAM时,既使用movxa,@r0指令访问外部RAM,此时用8位存放器R0或R1作间址存放器,这时P2口无用,所以在这种情况下,P2口依然能够做通用I/O端口。2,假如访问外部ROM或使用大于256BRAM时,P2口必须作为外存放器高八位地址总线。如:movxa,@dptr;访问外部数据存放器movca,@a+dptr;访问外部程序存放器这里使用了16位存放器DPTR上一页返回c51单片机第71页1.6.4P3口特点:通用I/O端口、多用途端口在多用途情况下,P3口分别作为串行口、外中止输入、外部计数输入和系统扩展时使用WR和RD信号端口。在这种情况下,锁存器Q端为“1”电平以确保与门是打开。在通用I/O模式下,“替换输出功效”端为“1”电平,以确保与门打开。DQ
锁存器CL/QP3.x引脚替换输出功效读锁存器读引脚内部总线写锁存器MUX(地址/数据=0)Vcc返回c51单片机第72页1.6.5并行端口在使用时应注意几个问题“拉电流”还是“灌电流”----与大电流负载连接(我们以美国ATMEL企业生产AT8951为例)
1,
使用灌电流方式与电流较大负载直接连接时,端口能够吸收约20mA电流而确保端口电平不高于0.45V(见右上图)。2,采取拉电流方式连接负载时,AT89C51所能提供“拉电流”仅仅为80μA,不然输出高电平会急剧下降.假如我们采取右下列图方式,向端口输出一个高电平去点亮LED,会发觉,端口输出电平不是“1”而是“0”!
当然,不是全部单片机都是这么,PIC单片机就能够提供30mA拉电流和灌电流。单对于大多数IC电路,最好还是使用“灌电流”去推进负载。Px.yVddPx.yVddVdd灌电流方式输出”0”点亮LED拉电流方式输出高电平点亮LED返回c51单片机第73页单片机与继电器等大电流负载接口我们知道:AT89C51端口能够吸收约20mA电流.对于继电器等大于20mA负载,单片机能够采取右图接法,用一个三极管来负担负载所需大电流.若于负载电流易造成干扰单片机环境,应采取右下列图”光电隔离”方式.其中:A、B两处没有任何电联络.Px.yJVccVdd负载VccPx.yAB返回c51单片机第74页1.7MCS-51单片机定时/计数器定时/计数器工作方式与原理:1.7.1定时/计数器四种工作模式1.7.2MCS-51定时/计数器控制和状态存放器1,模式0:既13位计数器模式2,模式一
:既16位计数器模式3,模式二
:自动重装初值模式1,模式控制存放器TMOD(SFR地址:89H)2,控制存放器TCON(SFR地址:88H)4,模式三:组合扩展模式继续c51单片机第75页定时/计数器工作方式与原理:定时/计数器是一个应用非常广泛逻辑电路,它能够完成两种不一样方式工作----“定时”、“计数”。c51单片机第76页定时/计数器工作方式与原理:1,定时:产生一个标准时间间隔;如20mS,100mS或1000mS等.单片机使用这种方式能够产生一个符合某一要求脉冲方波(以下列图)。2,计数:对外部事件(脉冲)进行统计.很显著外部事件发生是随机,单片机不可能预知外部事件何时发生,但能够进行统计,当到达所要求数值时,单片机进行对应操作。20mS40mSc51单片机第77页3,定时/计数器工作原理:用一个简单框图结构它模型:N位计数器组成了电路关键。定时,计数两种方式区分在于计数器脉冲起源.初值存放器是用来设定“定时/计数详细参数”
(1):何时控制开启计数?(2):怎样控制订时还是计数?(3):怎样控制订时/计数长短?N位+1计数器TFN位初值存放器系统内部时钟fosc开启控制TR外部脉冲定时/计数控制C/T计数器溢出中止信号返回计数脉冲CPc51单片机第78页1.7.1定时/计数器四种工作模式1,模式0:13位计数器模式。
当计数器计满为全”1”时,再来一个计数脉冲时,就产生一个“溢出中止信号”TF1=1.TH1TL1震荡器1/12(8位)(低5位)TF1中止开启控制T1引脚TR1GATEINT1高三位弃用C/T=0C/T=1返回13位加1计数器c51单片机第79页GATE=0时,TR1=1开始定时/计数;
GATE=1时(门控方式),TR=1且INT1=1时,开始工作.此种方式主要用于测量加在INT1脚上一个正脉冲脉宽.
TL1TH1震荡器1/12(8位)(8位)TF1中止开启控制T1引脚TR1GATEINT1C/T=0C/T=12,模式1:既16位计数器模式(以T1为例).返回16位加1计数器返回上一次c51单片机第80页由TL1做计数器,TH1做初值存放器.工作前TL1,TH1分别预置相同初值.计数器TL1工作时,每当溢出产生中止同时,将TH1中初值自动重装.此模式主要用于做串行口波特率发生器使用.TL1(8位)TH1(8位)震荡器1/12TF1中止控制T1引脚TR1GATEINT1C/T=1C/T=03,模式2
:自动重装初值模式返回8位加1计数器8位初值存放器c51单片机第81页在这种模式中,单片机将T0和T1重新进行“拆分、组合”.将T0变为由TH0,TL0组成两个独立8位定时/计数器.TL0震荡器1/12TF0中止控制T0引脚TR0GATEINT0C/T=0C/T=1TH0TF1中止控制TR1Fosc/12在模式3时模式中定时器T0结构图4,模式3组合扩展模式c51单片机第82页注意:模式3时T0(TH0,TL0)及T1各自特点:1,
TH0计数脉冲来自内部fosc,所以它只能处于”定时”方式;2,TH0分别借用了定时器T1TR1和TF1来为自己工作,使TH0能象TL0那样用TR1开启定时,并用TF1来作为TH0溢出中止标志;3,因为T1缺乏了开启控制信号TR1和溢出中止标志TR1,那么在模式3时,T1是怎样工作?没有溢出中止标志TF1,则T1就不用中止方式工作(实际上连查询也不行);没有开启控制信号TR1,能够让它在模式3之前就开始工作,而且让它事先设定为自动重装模式.4,模式3就是将单片机原有T0,T1两个计数器变成三个独立计数器,其中T1要事先设定为模式2(串行口波特率发生器)并开启起来。返回结构图返回c51单片机第83页在模式3时T0,T1电路结构图TL0八位定时/计数器TH0八位定时器T1(TL1,TH1)自动重装模式TF0TF1将T0分解为两个计数器TL0和TH0,其中TH0借用了T1TR1和TF1T1已无TR1,TF1功效,提议T1做波特率发生器TH0,TL0和T1三个计数器返回结构图返回c51单片机第84页定时/计数器4种模式比较模式计数模M最大定时时间Tmax模式013位Tmax=8192*1μЅ
=8.192ms模式116位Tmax=65536*1μЅ=65.536ms模式2,38位Tmax=256*1μЅ=0.256ms模式计数模M最大计数值模式013位Tmax=8192模式116位Tmax=65536模式2,38位Tmax=256T=(M-TC)×t其中,T:定时时间,M:计数器模,TC:计数初值,t:计数器计数脉冲周期(t=fosc/12)。c51单片机第85页1.7.2MCS-51定时/计数器控制和状态存放器GATE选通门:GATE=0时,只要TR=1,计数器就开始工作.GATE=1时,只有INT脚和TR同时为“1”时,计数器才开始工作.主要用于测量INT脚上高电平脉冲宽度.C/T计数、定时方式选择位:C/T=0时,计数方式.既计数器计数脉冲来自T0或T1引脚外部事件.C/T=1时:定时方式,计数脉冲来自内部震荡频率fosc12分频.M1、M0模式选择:分别对应四种模式.GATEC/TM1M0GATEC/TM1M0定时/计数器1定时/计数器01,模式控制存放器TMOD(SFR地址:89H)返回结构图c51单片机第86页TF1,TF0定时器T1,T0溢出标志:计数器溢出时硬件自动置位即TF=1,进入中止后再由硬件自动去除;TR1.TR0计数器T1,T0控制位:由软件置位(计数器开始工作)或清零(计数器停顿工作).IE1,IE0外部中止INT1,INT0请求标志:当单片机检测到INT引脚上有下降沿时,IE=1申请中止.进入中止服务程序时,硬件自动去除IE标志.IT1,IT0外中止触发类型控制:IT=1时,外中止信号下降沿出发IE标志,IT=0时,外中止信号低电平引发IE标志.(关于中止部分将在后面相关章节中再做详细介绍)TF1TR1TF0TR0IE1IT1IE0IT02,控制存放器TCON(SFR地址:88H)返回返回前一次c51单片机第87页1.8MCS-51单片机串行接口单片机系统中串行接口及特点串行通讯应用示意图关于串行通讯中基本概念1.8.1数据缓冲存放器
SBUF1.8.2串行口控制存放器SCON1.8.3串行口模式0模式0电路框图模式0工作原理(发送)串行口模式0时序信号(发送)模式0工作原理(接收)模式0时序信号(接收)c51单片机第88页1.8.5串行口模式2、31.8.5.1模式2、3应用之一:带奇偶校验位数据传送1.8.5.2模式2、3应用之二:多机通讯1.8.5.3模式2、3使用时要注意问题1.8.6
波特率及定时器T1设定串行口模式1时数据帧格式及接收采样示意图1.8.4串行口模式1第八节目录二返回上一页继续c51单片机第89页单片机系统中串行接口既特点串行口设计使MCS-51单片机功效大大增加.能够用串行通讯方式实现单片机与单片机或者是单片机与微机等设备之间数据交换.串行通讯电路简单,成本低,能够实现远距离数据传输。缺点是传输速度低于并行数据传输。在一个嵌入式系统中,往往采取多单片机组成一个完整控制系统,它们之间以串行通信方式进行数据交换---多机通讯(如图).从机从机从机从机主机c51单片机第90页串行通讯应用示意图TXDRXDRXDTXDTXDRXDRXDTXDRS-232或485RS-232或485TXDRXDRS-232PC机COM1,COM2单片机甲、乙之间近距离通讯单片机甲乙两地之间远距离通讯单片机与PC机之间数据通讯返回前一次c51单片机第91页关于串行通讯中基本概念:字符帧:也称数据帧,它是由“起始位”“数据位”和“停顿位”组成(以下列图所表示)。波特率:每秒钟传输二进制数据个数.波特率使用单位是:bps(bitperscond),既位/秒。异步通讯:数据是以字符或字节为单位组成字符帧传送.数据是从发送端一帧一帧发送,经过传输线为接收端一帧一帧接收.发送与接收相互独立,互不一样时。D0D1D2D3D4D5D6D7起始位停顿位01一个字符帧格式c51单片机第92页1.8.1数据缓冲存放器SBUFSBUF是用来存放串行口发送和接收数据存放器,在SFR地址为99H.在物理上它对应两个不一样单元:发送存放器和接收存放器。CPU写SBUF就是开始发送数据(MOVSBUF,A);CPU读SBUF就是接收数据到A(MOVA,SBUF)。因为发送SBUF与接收SBUF是两个不一样逻辑部件,所以在硬件设计上确保了51单片机串行口是一个能够同时发送与接收”全双工”接口。c51单片机第93页1.8.2串行口控制存放器SCON地址:98HSM0SM1:串行口操作模式选择位.能够确定串行口四种模式之一(以下表);SM0SM1SM2RENTB8RB8TIRISM0SM1模式功能波特率000同时移位存放器模式Fosc/120118位异步通信UART可变1029位异步通信UARTFosc/64或/321139位异步通信UART可变返回前一次c51单片机第94页SM2RI
:完成一帧数据接收标志,原始应清零,接收完成RI=1并申请中止;TI
:完成一帧数据发送标志,原始应清零,发送完成TI=1同时申请中止;RB8:在9位数据传送模式2、3时,接收到第9位数据;TB8:在9位数据传送模式2、3时,将要发送第9位数据;REN:允许接收位,REN=1时允许接收.由软件置位或清零;返回前一次SM0SM1SM2RENTB8RB8TIRIc51单片机第95页SM2:多机通信使能位.1,模式0、1时:
SM2不用,应设为0。时RI才能被正常激活并引发中止;2,模式2、3时:若SM2=0时,不论RB8怎样,RI都能被激活(RI=1)。不过RI=1并不能引发中止!所以只能用查询方式接收数据。若SM2=1,收到第9位(RB8)=0时,则RI不会被激活;若SM2=1且RB8=1时,RI才能被激活=1并引发中止。SM0SM1SM2RENTB8RB8TIRI返回上一页c51单片机第96页怎样使用RI,TI标志(中止和查询)
CPU与串行口之间不是同时工作,二者之间数据交换经过SBUF,何时交换必须借助于标志信号进行。RI(SCON.0):接收完一帧数据标志。
假如系统中止是开放,则RI=1时会自动引发中止。用户能够经过中止服务程序将SBUF中数据取出送累加器A。
MOVA,SBUF。也能够使用查询方式对RI进行检测,假如RI=1则执行:
MOVA,SBUF。TI(SCON.1):发送完一帧数据标志。
假如系统中止是开放,则TI会自动引发中止。用户能够经过中止服务程序向SBUF输送下一个数据:
MOVSBUF,A。也能够使用查询方式对TI进行检测,假如TI=1则执行:MOVSBUF,A。c51单片机第97页使用查询RI、TI标志方式进行发送与接收N个数据CLRSCON.TI数据送累加器A修改数据区指针movsbuf,aTI=1?N个数据发送完?YESNOYESNO发送数据程序框图SETBSCON.RENmova,sbufRI=1?N个数据接收完?YESNOYESNOCLRSCON.RIA送数据区修改数据指针返回本节目录一接收数据程序框图c51单片机第98页1.8.3串行口模式0特点:串行口做同时移位存放器用,其波特率为fosc/12.在这种模式下RXD(P3.0)做数据口;TXD(P3.1)做移位脉冲输出端.在移位过程中,先移数据低位.注意:移位脉冲频率就是模式0波特率.模式0主要功效是:能够使用一个串行口来扩展出8位、16位等并行口,且理论上能够扩展n*8位并行口.MCS-51RXDTXDData外部移位存放器cp移位脉冲串行数据并行数据(8位)c51单片机第99页模式0电路框图51内部总线SBUF零检测器移位时钟STARTSHIFT
发送控制器TXCLOCKTISENDDSQCLSTARTRIRECEIVERX接收控制器SHIFTCLOCK11111110输入移位存放器SBUF51内部总线读SBUF写SBUFS6串行口中止P3.0RXDP3.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度广告投放合同标的的效果评估2篇
- 高端定制旅行服务合同(04版)
- 财务鉴定报告范文大全
- 部门廉洁建设报告范文
- 别墅装修开工报告范文
- 门店承包合同协议书完整版
- 全新个体户聘用员工协议书下载
- 中职数学课件
- 2024年度银行服务合同3篇
- 《高温与低温损伤》课件
- 农药登记用卫生杀虫剂室内药效试验及评价 第9部分:驱避剂 征求意见稿
- 肺结节诊治中国专家共识(2024年版)解读
- 移动GIS原理与系统开发智慧树知到答案2024年南京邮电大学
- 新版外国人永久居住身份证考试试题
- 中小学基于“生活教育”理念下的“生活课堂”建构实践研究(六稿)公开课教案教学设计课件案例测试练习卷题
- 2024至2030年中国风光储一体化市场未来动向及营销前景研究报告
- 中国企业出海服务指南(白皮书)
- 工会资金采购管理办法
- 中核汇能笔试题目
- 物资搬运服务 投标方案(技术方案)
- 人教八年级上册语文《综合性学习 人无信不立》教学课件
评论
0/150
提交评论