单片机原理课件.docx
- 文档编号:12582408
- 上传时间:2023-06-06
- 格式:DOCX
- 页数:24
- 大小:45.26KB
单片机原理课件.docx
《单片机原理课件.docx》由会员分享,可在线阅读,更多相关《单片机原理课件.docx(24页珍藏版)》请在冰点文库上搜索。
单片机原理课件
精品-单片机原理课件
单片机原理与接口技术嵌入式微控制器的开发入门参考资料1《单片机原理及其接口技术》----胡汉才清华大学出版社32元2《MCS-5196系列单片机原理及应用》----孙涵芳徐爱卿北京航空航天大学出版社35元3《MCS-51系列单片机实用接口技术》----李华北京航空航天大学出版社40元4《电子世界》----中国电子学会主办期刊600元期本课主要内容及课时安排总讲课课时24学时第一章MCS-51系列单片机的基本硬件结构8课时介绍51单片机内部硬件结构数据寄存器程序存储器输入输出端口定时计数器串行口及中断等第二章MCS-51单片机的指令系统4课时51单片机的111条指令的分类寻址方式伪指令及使用中的注意事项第三章MCS-51单片机的系统扩展及应用12课时程序与数据存储器的扩展定时计数器的应用串行口的应用及ADDA转换器与单片机的接口和键盘扫描动态显示接口电路硬件基本概念微型计算机由CPU存储器定时计数器并行输入输出接口电路中断控制器等大规模IC芯片安置在一个电路板上加上键盘显示器等构成了微型计算机的硬体部分单片机将微型计算机系统所用的大多数IC芯片集成到一个芯片中可以认为单片机就是将微型计算机的CPU存储器IO端口中断控制器等全部做在一个芯片中去美国INTEL公司生产的MCS-51单片机就是一种典型的按照微型计算机的框架采用大规模IC工艺制造的单片机也是目前世界上使用量最大的一种较典型的产品嵌入式微控制器是单片机发展的一个高级形式也是单片机发展的必然趋势它的设计理念不再停留在模仿微型计算机的结构而是面向应用加大功能减少功耗精简指令系统提高运行速度为出发点来设计单片机的框架这种处理器的最大特征是不仅包含了一般单片机的所有硬件电路还集成了放大器比较器AD转换器和PWM电路等等用它来设计一个智能化的产品可以进一步简化外围电路降低开发成本甚至完成一般的单片机所不能完成的任务美国Microchip公司生产的PIC单片机等产品就是这类产品的代表实际上PIC单片机也称为嵌入式微控制器如PIC16F877等嵌入式计算机系统人们在工业控制家电产品智能仪表汽车电子等领域进行智能化设计时将嵌入到被控制对象如家电汽车机床等中的已经失去了原有的计算机形态及功能的专用计算机称之为嵌入式计算机系统在这些被控制对象中往往要求嵌入式计算机系统要有极小的体积和极低的成本要有极小的功耗和较高的可靠性而这些又恰恰是通用计算机无法作到的因此以单片机为代表的嵌入式计算机系统也称嵌入式微控制器极大的满足了这种市场的需求反过来市场的需要也迫使单片机去不断完善发展使其分类越来越细品种越来越多微型计算机与单片机在硬件结构上的比较微型计算机单片机第一章MCS-51系列单片机的基本硬件结构11MCS-51单片机的主要性能和特点内部程序存储器ROM以89C51为例4K的存储容量内部数据存储器RAM256B128B的RAM21B的SFR寄存器区设有4个寄存器区每一个区有R0-R7八个工作寄存器8位并行输入输出端口P0P1P2和P3定时计数器2个16位的定时计数器串型口 全双工的端口RXD接收端TXD发送端中断系统设有5个中断源系统扩展能力可外接64K的ROM和64K的RAM堆栈设在RAM单元中可以浮动既通过堆栈指针SP来确定堆栈的位置布尔处理机配合布尔运算的指令进行各种逻辑运算指令系统111条指令按功能可分为数据传送算术运算逻辑运算控制转移和布尔操作5大类12MCS-51单片机内部方框图MCS-51系列芯片及制造工艺13MCS-51单片机的引脚定义MCS-51单片机有两种封装形式a40脚的双列直插DIP封装b44脚的PLCC1主电源引脚Vcc5V---40脚和VssGND20脚2外接晶体引脚XTAL119脚XTAL218脚只要在这两脚之间接入一个晶体震荡器单片机就可以以此晶体的频率开始工作常用的晶体频率有0-24M频率越高单片机的工作速度就越快但单片机的功耗就要增加3控制或与电源复用引脚RSTVpdALEPROGPSEN和VddRSTVpd9脚在系统上电震荡器开始工作时在内部加在此引脚上有一个两个时钟周期的高电平使单片机复位但为了使系统复位可靠建议外加一个上电复位电路延长复位的时间当单片机掉点时此引脚可以接入备用电源向单片机内部的RAM供电以防止RAM中的数据丢失在复位状态下所有SFR的内容全变为0端口输出1RAM内容不变使用555电路构成的掉电保护电路掉电保护原理及过程电源监控电路对电源VCC进行监控当VCC的电源开始下降时向单片机的INT0或INT1发一个中断申请信号单片机收到中断信号立即进入中断程序在电源消失前1迅速将一些重要的信息送RAM保存2从P10引脚输出负脉冲触发单稳进行电源切换外部单稳电路进入但稳态后由于VCC的消失使电路无法对单稳电容充电所以单稳电路一直处于休眠状态当VCC电源恢复后VCC对电容充电经ΔΤ后脱离单稳态ALEPROG30脚以一个不变的频率系统时钟fosc6周期性输出正脉当单片机使用外部存储器时此信号可作为低八位地址的锁存信对于EPROM型的单片机此脚还是用于写程序时输入编程脉冲PSEN29脚外部程序程序存储器的选通信号当单片机使用外部程序存储器时此脚在一个机器周期内产生两次负脉冲注意访问外部数据存储器时此信号无效EAVdd31脚外部程序存储器的选择端控制端当此脚加入1电平是单片机使用内部的程序存储器当EA加入低电平时系统只使用外部的程序存储器但要特别注意如果EA1既使用单片机内部的程序存储器时如果程序计数器PC的值超过0FFFH时单片机将自动转向外部程序存储器1000H开始的单元对于EPROM型的单片机此脚还是用于写程序时加入21伏的编程电压4并行输入输出端口引脚P0-P3P00-P07P0端口线39-32脚输出能力最强的端口可以带动8个TTL负载驱动一个MOS负载时应接一个10K左右的上拉电阻如果系统使用外接存储器时该口还作为地址低八位总线和数据总线注意在这种情况下P0口就不能通用的IO端口P10-P17P1端口线1–8脚负载能力为4个TTL负载P20–P27P2端口线21–28脚通用IO端口除了做通用IO端口外当系统使用外接存储器时该口还作为地址高八位总线在这种情况下P0口就不能通用的IO端口负载能力为4个TTLP30–P37P3端口线10–17脚P3口除了做通用的IO端口外同时它还有第二功能负载能力为4个TTLMCS-51单片机外型图DIP封装MCS-51单片机的逻辑符号图14MCS-51单片机的存储器的配置140MCS-51单片机的存储器的配置特点89C51在MCS-51单片机的内部集成了4K的程序存储器和256B的数据存储器同时还可以使用片外的程序存储器和数据存储器其扩展能力都是64K从物理结构的角度讲51单片机的存储系统可以分为四个存储空间既片内ROMRAM和片外ROMRAM从逻辑上讲既用户编程的角度讲51单片机的存储系统又可分为三个存储空间既片内RAM片外RAM和片内外的程序存储器ROM从物理结构上单片机系统的存储器结构图
四个部分141程序存储器片内与片外程序存储器是用来存放编好的程序常数和表格的在MCS-51单片机中当引脚EA1时系统使用片内的4KROM来存储程序EA0时系统使用片外的ROM无论是使用片内还是使用片外的ROM既EA1或EA0其起始地址都是从0000H单元开始如果EA1使用片内的程序存储器时程序从0000H开始执行注意在这种情况下如果程序计数器的指针PC值超过0FFFH4K时单片机就要自动的转向片外的ROM存储器尽管EA1且从片外ROM的1000H单元开始执行程序但单片机是无法使用片外ROM的0000H-0FFFH这4K单元MCS-51单片机片内外程序存储器的使用示意图程序存储器六个特殊的单元在程序存储器中有六个单元是具有特定功能编程者是不能随便使用的0000H单元上电时程序计数器PC所指向的单元0003H单元外部中断INT0的入口地址000BH单元定时器T0的溢出中断入口地址0013H单元外部中断INT1的入口地址001BH单元定时器T1的溢出中断入口地址0023H单元串行口接收传送的中断入口地址142内部数据存储器RAM数据存储器无论在物理上还是逻辑上都分为两个地址空间既一个内部和一个外部的数据存储空间访问内部数据存储单元时使用MOV指令而访问外部数据存储器时使用MOVX指令内部数据存储器从功能上又将256B空间分为二个不同的块1低128B的RAM块2高128B的SFRSpecialFunctionRegister块在低128B的RAM存储单元中又可划分为工作寄存器区可位寻址区通用存储数据的便签区高128B的专用寄存器区中仅仅使用了21寄存器51系列其它单元未定义不能使用MCS-51片内片外数据存储器示意图片内RAM低128B字节功能分配图片内RAM20H-2FH中的位寻址区结构图位寻址区内的地址是位地址共有00-7FH共128个位要区分字节地址和位地址这两个不同的地址概念从物理的角度每一个字节地址内包含了8个位既D7D6D5D4D3D2D1D0在一般情况我们提到的RAM地址都是字节地址从逻辑的角度讲字节地址和位地址是靠不同类型的指令来区分的如MOVA20h将RAM的20单元内容送累加器AMOVC20h将RAM位寻址区中20H位送CY中在这二个例子中第一条指令为字节传送指令所以20H为字节地址第二个例子中的指令为位操作指令所以20H为位地址有关详细内容将在第二章中描述0区工作寄存器区结构图特殊功能寄存器SFR特殊功能寄存器SFRSpecialFunctionRegister特殊用途寄存器的集合用来设定单片机内部各个部件的工作方式存放相关部件的状态定时器初值寄存器并行端口的锁存器等等尽管特殊功能寄存器与RAM在同一个单元中但不能作为普通的RAM存储单元来使用只有在编程中根据需要进行一些特定功能的设定或者是从中查寻相关部件的状态时才能进行读写操作如中断方式的设定定时器工作模式的设定查询串行口发送或接收是否结束等等SFR表二特殊功能寄存器SFR说明程序计数器PC用来存放下一条要执行的指令地址长度为16位所以寻址范围为0-6553564K在物理上是独立于SFR累加器A最常用的专用寄存器大多数的指令操作数都来自累加器A所有的算术运算指令的运算结果都存放在A中B寄存器乘除法指令使用的寄存器数据指针DPTR一个16位的寄存器由高八位DPH和低八位DPL构成DPTR主要用来存放片内ROM的地址和片外RAMROM的地址这样单片机可以通过间址的方式来访问片内ROM或片外的RAMROM例如片外RAM的2000H单元中有一个数x试将其送到累加器A中MOVDPTR2000hDPTR←2000HMOVXADPTRA←x程序状态字PSW8位寄存器表征程序执行的状态信息CYPSW7进位标志在加减法运算中累加器A的最高位A7有进位则CY1否则CY0同理在减法运算中如果A7有借位则CY1因此CY往往作为无符号数运算是否有溢出的标志ACPSW6辅助进位位用来判断加减法运算时低四位是否向高四位进位或借位既A3的进位或借位往往用来判断压缩的BCD码的运算处理F0PSW5用户标志位完全由用户来定义和使用RS1RS0工作寄存器区选择位确定工作寄存器R0-R7在哪个区中单片机在上电或复位后RS1RS000当需要人为的修改RS1RS0的值来改变工作寄存器区的位置OVPSW2溢出标志位判断符号数加减法运算时是否有溢出OV的结果可以用一个算法来表示OVCP异或CS其中CP为A7的进位CS为A6的进位OV1表明有溢出PPSW0奇偶标志位用来标志累加器A中运算后1的个数当P1时表明A中1的个数为奇数个反之为偶数个举例有两个数0FH和F8H试将两数相加MOVA0FH将立即数0fh送累加器AADDA0F8HA的内容与立即数0f8h相加结果送A00001111运算结果A07HCY1既CP111111000CS1OV0因为CP1CS1Cy→100000111AC1P1如何根据PSW来分析运算结果是否正确是否有溢出1若数据为无符号数既15248263107H既CY1A07H2若数据为有符号数既15加-8707HOV0表明无溢出SP堆栈指针8位寄存器用来指示堆栈的位置可由软件修改在MCS-51单片机的设计中片内RAM区为堆栈的可用空间上电或复位时SP被初始化为07H既堆栈底部被确定在RAM的07H单元堆栈操作过程进栈PUSHACC指令设SP07H1SP1送SP此时SP08H2ACC送RAM的08H单元出栈POPACC设SP08H1将RAM中08H单元内容送A2SP-1送SP此时SP07H并行端口P0-P3SFR中的P0-P3实际上就是IO端口的数据锁存器与RAM中的任意一个单元一样P0-P3都有自己的RAM地址80H90HA0HB0H所以在51单片机中的输入输出操作实际上就是个普通的RAM单元操作一样如输出指令MOV80HA将累加器中的数据送到P0口输出输入指令MOVA90H将P1口的数据输入到累加器A中既MCS-51的指令系统中没有专用的输入输出INOUT指令而是把P0-P3作为普通的内存单元来使用上面的第一个例子实际上就是MCS-51的输出指令同理后者是MCS-51的输入指令串行数据缓冲器SBUF它是专门用来存放发送或接收的数据实际上它是两个独立的寄存器尽管在SFR中的RAM地址只是99H但根据指令发送或接收两种不同的操作硬件会自动的区分将数据送如对应的缓冲单元定时计数器T0T1无论是定时还是计数对于MCS-51单片机的定时计数器来说都是一个计数器在计数这个计数器是由两个8位寄存器高位和低位构成的16位计数器分别是TH0TL0T0TH1TL1T1TH和TL中的数据直接与定时操作或计数操作有关因此在使用定时计数器之前要对它进行初始化其中就要对THTL赋初值如MOV8CH01HMOV8AH20H大家试分析上面两条指令的作用有关SFR中其它寄存器的说明将相关的章节中作介绍143外部数据存储器在片内RAM不能满足需要时就要外接RAMP0P1作为外部RAM的地址和数据总线MCS-51对外部数据存储器的扩展能力为64KB除了硬件电路外系统主要是靠专门的指令来访问外部数据存储器如MOVR020H将外部RAM单元地址20H送R0寄存器MOVXAR0从外部RAM20H单元取数据到累加器A这里使用了R0做间址寄存器所以寻址范围为256KB同理MOVDPTR2000H将外部RAM单元的地址的2000送DPTRMOVXADPTR从外部RAM2000H单元中取数据到A这里使用了16位的寄存器DPTR所以寻址范围为64KB第一章第四节内容小结14MCS-51单片机的存储器的配置片内4K的程序存储器ROM和256B的数据存储器RAM片外可以扩展64K的ROM和RAM从用户编程的角度可以将它们分为3个存储空间1片内RAM2片外RAM3片内片外的ROM141程序存储器片内与片外当引脚EA1时单片机上电复位后从片内ROM的0000H单元运行程序若引脚EA0时单片机上电复位后从片外ROM的0000H单元运行程序当引脚EA1且PC值大于1FFFH时单片机就自动转到片外ROM的2000H单元继续运行程序无论是使用片内还是片外的ROM有六个单元是有特定意义的10000H单元上电复位后的启动地址20003H单元外部中断INT0的入口地址3000BH单元定时器T0的中断入口地址40013H单元外部中断INT1的入口地址5001BH单元定时器T1的中断入口地址60023H单元串行口中断的入口地址142内部数据存储器RAM内部RAM的256B分为低128B和高128B其中低128B中有1工作寄存器区2位寻址区3便笺区高128B中仅仅使用了小部分做特殊功能寄存器SFR用注意1SFR不同于一般的数据RAM它不是用于存储数据而是用来存储和表征单片机内部几个逻辑部件的特征状态等重要信息2在使用RAM时要注意字节地址和位地址的概念3访问内部RAM的指令为MOV指令143外部数据存储器在硬件具备的条件下MCS-51单片机可以使用64KB的外部数据存储器如果要访问外部数据存储器RAM时只能使用间址的寻址方式间址寄存器有R0R1或DPTR前者寻址范围为256KB00H-FFH后者为64KB0000H-FFFFH使用的指令是MOVX15震荡器时钟电路和CPU的时序151震荡器与时钟电路MCS-51内部有一个用于构成震荡器的高增益反相放大器在单片机引脚的XTAL1和XTAL2分别是此放大器的输入和输出端与作为反馈元件的晶体或陶瓷谐振器一起构成了一个自激震荡器见右上图如果使用外部震荡器信号其外来的信号加在XTAL1的引脚上见右下图152MCS-51单片机的时序时钟周期T时序中最小的时间单位其值由外接晶体或外输入时钟来决定其值为石英振荡器频率的倒数例如在单片机外接1MH的晶体则单片机的系统时钟的频率为1M时钟周期为1us机器周期完成特定功能所需要的时间在MCS-51单片机中机器周期由12个时钟周期构成并分为6个状态S1-S6每个状态又分为P1和P2两拍这样一个机器周期的12个震荡周期可以表示为S1P1S1P2S2P1S2P2S3P1S3P2S6P1S6P2将12个震荡周期用6个状态和2拍来替代指令周期这是时序图中最大的时间单位既执行一条指令所需要的时间在MCS-51系统中不同的指令它所包含的机器周期数不同它们分别是1单机器周期指令2双机器周期指令3四机器周期指令我们知道一个机器周期包含了12个震荡周期如果我们使用一个12M的晶体震荡器那么一个机器周期为1us两个机器周期为2us四个机器周期为4us可见一条指令的运算速度与它所包含的机器周期数有关机器周期数越少执行的速度就越快在MCS-51单片机的指令系统中除了乘除法指令为四个机器周期外其余都是单周期和双周期指令指令的字节数与指令周期之间的关系在MCS-51单片机的指令系统中有单字节双字节三字节指令在MCS-51的111条指令中可以分为六种基本的时序1单字节单周期指令4双字节单周期指令2单字节双周期指令5双字节双周期指令3单字节四周期指令6三字节双周期指令单字节单周期指令的时序指令特点在程序存储器ROM中仅占一个存储单元在ALE第一次有效S2P1时从ROM中读取指令的操作码送入指令寄存器IR中并译码执行在ALE第二次有效时封锁PC加一使第二次读数无效可见1ALE信号对应这从ROM中读指令所以在一个机器周期中CPU可以读两次指令2对于单字节单周期的指令CPU通过译码后封死PC实际上指令的后半部不做任何工作双字节单周期指令时序指令特点一条指令长度为两个字节并存储在ROM相邻的两个单元中要想完整的将这样的指令执行完必须从ROM中读两次操作码在ALE第一次有效时CPU从ROM的n单元中取出指令的第一个字节OP1-1并送入IR译码通过译码CPU知道这是一条双字节指令所以使PC加一并在ALE第二次有效时从ROM的n1单元取出指令的第二个字节OP1-2送入IR进行译码并产生对应的操作最后在S6P2时完成本条指令的运行单字节双周期指令的时序指令特点单字节需要两个机器周期运行如INCDPTRDPTR为两个8位的寄存器加一时必须分两步完成既第一步DPL加一如果DPL加一有进位则还要进行第二步对DPH加一在指令周期的第一个ALE时将ROM中的操作码OP取出经IR译码后得知为单字节双周期指令所以一面执行该指令同时封锁后面三次ALE有效时的PC1在第二个机器周期的S6P2时完成操作153访问外部程序存储器ROM的时序设单片机使用片外ROM且要执行的是一条movcaadptr指令设adptr2000H1在S2P1时刻P2口输出外部ROM的高八位地址A15-A8P0口输出低八位地址A7-A0这时地址是由程序计数器PC提供的ROM中的指令地址2在ALE的下降沿P0口的数据低八位地址被锁存到74LS373中3在S3P2到S4P1期间psen变低电平时外部程序ROM被选中数据输出端的三态门被打开被选中单元中的指令movc送到P0口上且在S4P2时指令经P0口送至CPU的IR中4CPU对指令译码后在S4P2时进行常数地址计算并由P0P2口输出5在S5P2时ALE将常数地址的低八位锁存6在S6P1时外部ROM被再次选种打开按照单片机所提供的16位常数地址将外部ROM中的常数经P0口在S6P2时刻送入累加器A154读外部数据存储器RAM的指令时序设外部RAM2000H单元中有一个数x且DPTR中已存有该数地址2000H则CPU执行外部ROM中的指令MOVXADPTR将外RAM的x送A1在S2P2时ALE的第一个下降沿将P0口输出的外程序ROM的低八位地址锁存到74LS373锁存器中2在S3P2的Psen为低电平时选中外ROM并根据单片机P0P2口输出的16位地址选中movx指令单字节通过P0口送至单片机内部IR中译码经译码后产生下列的一系列操作3CPU将DPTR中的高8位20H送P2口输出低八位00H经P0口输出节在S5P1时ALE第二次下降沿时将P0口的低八位地址锁存4在第二个机器周期的S1-S3中单片机输出RD信号低电平选中外部RAM并根据单片机提供的2000H这16位地址中取出数据x5CPU在S2-S3期间将外部RAM2000H单元送到P0口上的数据送入累加器A中上述过程可以分成两个指行的阶段1根据PC所指定的程序存储器的地址将movx指令从片外ROM中取出2经译码后将DPTR提供的外数据存储器RAM中的数据地址取出数据经P0口送累加器A在第一阶段CPU产生Psen信号用来选通外部程序存储器ROM在第二阶段CPU输出RD信号低电平用来选通并读取外部数据存储器RAM的数据16输入输出端口在MCS-51单片机的四个端口都是具有输出锁存功能的双向端口这些锁存器的位置都在SFR中其地址分别为80H90HA0HB0H出于系统的考虑在硬件设计上对每一个端口都有不同的要求所以每一个端口又具有不同的特点161P0口特点通用数据IO端口和地址数据复用总线端口1在作为通用数据IO端口时具有较强的驱动能力8个TTL负载与MOS负载连接时需要外接一个上拉电阻2作为地址数据复用总线使用时P0口首先输出外部存储器的低八位地址然后再变为数据总线进行数据的输入或输出此时P0口不能再作为通用IO口P0口的位结构图1P0口的IO操作通用IO端口在P0口作为通用IO端口时控制电路中的控制为0电平多路开关MUX接入下方的锁存器的Q端由于与门的一个输入端为0所以它使上端的FET截止这就是P0口在做IO口时输出为漏极开路的结构原因输出操作在执行以口为目标的指令时数据送到锁存器的D端经Q端送场效管应输出极如送1时Q0使下端的FET截止这样出现输出极的两个FET全部截止
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 原理 课件
![提示](https://static.bingdoc.com/images/bang_tan.gif)