单片机原理与应用课程论文_第1页
单片机原理与应用课程论文_第2页
单片机原理与应用课程论文_第3页
单片机原理与应用课程论文_第4页
单片机原理与应用课程论文_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、河海大学计算机与信息学院(常州)单片机原理与应用课程论文 指导老师: 授课班号: 姓 名: 学 号: 第一章 单片机系统结构一、 MCS-51单片机基本特性1、8 位的 CPU, 片内有振荡器和时钟电路,工作频率为 112MHz(Atmel 89Cxx为024MHz)2、 片内有 128/256字节 RAM3、 片内有 0K/4K/8K等字节 程序存储器ROM4、 可寻址片外 64K字节 数据存储器RAM5、 可寻址片外 64K字节 程序存储器ROM6、 4个8位 的并行I/O口(PIO)7、 1个 全双工串行口(SIO/UART)8、 2/3个16位 定时器/计数器(TIMER/COUNTE

2、R)9、 可处理 5/6个中断源,两级中断优先级10、 内置1个布尔处理器和1个布尔累加器(Cy)11、MCS-51指令集含 111条指令二、单片机的结构三、单片机的引脚Vcc, GND,XTAL1, XTAL2(片内振荡电路输入/输出端),RESET,EA/Vpp,ALE/PROG,PSEN,P0.0P0.7,P1.0P1.7,P2.0P2.7,P3.0P3.7。RESET: 复位端(正脉冲有效,宽度 2个机器周期),复位使单片机进入某种确定的初始状态: PC值归零(0000H);各个SFR被赋予初始值(见P.42): P0P3 = 0FFH,Acc = 0,B = 0,TH0=0,TL0=

3、0,TH1=0,TL0=0,SP=7,PSW=0 退出处于节电工作方式的停顿状态、退出一切程序进程、退出程序的死循环,从头开始。 EA/Vpp: 寻址外部ROM控制端/编程电源输入端。 低有效,片内无ROM时必须接地; 片内有ROM时并应用时应当接高电平PSEN:寻址外部程序存储器时选通外部EPROM的 读控制端(OE)低有效。四、振荡周期/时钟周期:Tc=晶振频率fosc(或外加频率)的倒数状态周期:Ts=2个时钟周期(Tc)(很少用到此概念)机器周期:Tm=6个状态周期(Ts)=12个振荡周期(Tc)指令周期: Ti:执行一条指令所需的机器周期(Tm)数牢牢记住: 振荡周期 = 晶振频率f

4、osc的倒数;1个机器周期 = 12个振荡周期1个指令周期 = 1、2、4个机器周期五、存储器、堆栈、SFR1、89C51单片机存储器配置片内RAM 128字节(00H7FH); 片内RAM前32个单元是工作寄存器区(00H1FH) 片内RAM有128个可按位寻址的位,占16个单元。 位地址编号为:00H7FH,分布在20H2FH单元片内21个特殊功能寄存器(SFR)中:地址号能被 8整除的 SFR中的各位也可按位寻址(P.33-34)可寻址片外RAM 64K字节 (0000HFFFFH)可寻址片外ROM 64K字节 (0000HFFFFH)片内 Flash ROM 4K字节 (000HFFF

5、H)2、存储器配置(片内RAM)3、堆栈: 在片内RAM中,常常要指定一个专门的区域来存放某些特别的数据,它遵循先进后出和后进先出(LIFO/FILO)的原则,这个RAM区叫堆栈。功用:1)子程序调用和中断服务时CPU自动将当前PC 值压栈保存,返回时自动将PC值弹栈。2)保护现场/恢复现场3)数据传输堆栈区由特殊功能寄存器堆栈指针SP管理 堆栈区可以安排在 RAM区任意位置,一般不安排在工作寄存器区和可按位寻址的RAM区,通常放在RAM区的靠后的位置。从堆栈取出数据时:取出的数据是最近放进去的一个数据,也就是当前栈顶的数据。然后SP再自动减1,仍指着栈顶89C51特殊功能寄存器(SFR)专用

6、于控制、选择、管理、存放单片机内部各部分的工作方式、条件、状态、结果的寄存器。不同的SFR管理不同的硬件模块,负责不同的功能各司其职换言之:要让单片机实现预订的功能,必须有相应的硬件和软件,而软件中最重要的一项工作就是对SFR写命令(要求)。4、特殊功能寄存器(PC)PC 不是一个特殊功能寄存器SFR,但其作 用又十分重要和特殊特点:它是16位的按机器周期自动增1计数器总指向下一条指令所在首地址(当前PC值)一切分支/跳转/调用/中断/复位 等操作的本质就是:改变 PC 值特殊功能寄存器(PSW) 第二章:单片机指令系统一、ASM-51指令的格式标号:操作码 目的操作数,源操作数;注释方括符

7、表示可选项标号代表指令所在地址,1-8个字母/数字,“:”结尾操作码就是指令功能助记符,指令实体目的操作数源操作数注释,以“;”开头二、51单片机指令的寻址方式寻找(或确定)操作数所在单元地址的方式。寻址方式越多,计算机寻址能力越强,但指令系统也越复杂。1、寄存器寻址操作数在寄存器中,如R0-R7,A、B、Cy(位)、DPTR等例:MOV A,B ; (A) (B) MOV 30H,R0 ;(30H)(R0) MOV A,R1 ; (A) (R1)2、立即寻址操作数在指令中直接给出例:MOV A,#64H ;(A) 立即数 64H ADD A,#05H ;(A)(A)+立即数 05H注意:符号

8、“#”表明其后跟的是立即数, 立即数就是数字量本身。3、直接寻址指令中直接给出了操作数所在单元的地址或名称 例:MOV R1,1FH ;(R1) (1FH) MOV 30H,4AH ;(30H)(4AH)4、寄存器间接寻址寄存器中的内容是一个地址,该地址单元的内容是所需的操作数。操作数是通过寄存器间接得到的例: MOV R1,#30H ;(R1) 立即数30H MOV R1,#0FH ;(30H)立即数0FH MOV A,R1 ;(A)(30H)=#0FH“间接”表示某寄存器中的“内容”只是一个“单元地址”,这个地址单元中存放的数据才是要找的“操作数”。5、变址寻址 也称为: 基址寄存器+变址

9、寄存器间接寻址以16位的地址指针寄存器DPTR或 16位的PC寄存器为基址寄存器,以累加器 A 为变址寄存器,两者中的“内容和”形成一个16位的“地址”,该“地址”所指的存储单元中的内容才是操作数。6、相对寻址当前PC值加上指令中规定的偏移量 rel,构成实际的操作数地址例: SJMP rel 操作:跳转到的目的地址 = 当前16位PC值 + rel注意:1)“当前PC值”指程序中下一条指令所在的首地址, 是一个16位数;2)符号“rel”表示“偏移量”,是一个带符号的单字 节数,范围是:-128+127(80H7FH), 7、位寻址指令中直接给出了操作数所在的位地址或名称。例: CLR P1

10、.0 ;(P1.0) 0 SETB ACC.7 ;(ACC.7) 1 CPL C ;( C ) NOT( C )三、 MCS-51指令集1、数据传送类指令内部存储器间传送: (MOV16条)外部数据存储器与累加器间传送: (MOVX4条)程序存储器向累加器传送:(MOVC2条)数据交换:(XCH,XCHD,SWAP5条)堆栈操作:(PUSH,POP2条)(1)、内部存储器间传送指令 a. 以累加器A为目的操作数的指令MOV A, data ; A data MOV A, Rn ; n=07, A (Rn) MOV A, Ri ; i=0,1 , A (Ri) MOV A, direct ; A

11、 (Rn) direct为内部RAM或SFR地址注意以下两组指令的不同点MOV A, #20H ; (A) = 20H A的内容为20HMOV A, 20H ; (A) = (20H) A的内容为20H中的内容b. 以Rn为目的操作数的指令 MOV Rn, A ;Rn (A) , n=07MOV Rn , direct ;Rn (direct) MOV Rn ,data ;Rn datac.以直接地址为目的操作数的指令 MOV direct, A ;direct (A) MOV direct, Rn ; direct (Rn) , n=07MOV direct, Ri ; direct ( R

12、i ) ) , i=0,1MOV direct, direct ;direct (direct) MOV direct, #data ;direct datad. 以寄存器间接地址为目的操作数指令MOV Ri, A ; (Ri) ) (A) ,i=0,1MOV Ri , direct ; (Ri) ) (direct) MOV Ri ,data ; (Ri) ) data(2)、外部数据存储器与累加器间传送 (4条)类指令可在累加器与以DPTR或Ri所代表的外部 RAM 之间进行数据传送。MOVX A, DPTR (A) (DPTR)MOVX A, Ri (A) (Ri) MOVX DPTR,

13、 A (DPTR) (A) MOVX Ri, A (Ri) (A)(3)、程序存储器向累加器传送指令(2条)MOVC A,A+DPTR MOVC A,A+PC 通常称为查表指令,寻址方式属: “基址寄存器 + 变址寄存器间接寻址” (4)、数据交换指令(5条)XCH A,direct (字节互换)XCH A,Ri (字节互换) XCH A,Rn (字节互换) (A) (direct)或(Ri),或(Rn)XCHD A,Ri 累加器 Acc的低4位与(Ri)的低4位互换,各自的高4位不变 SWAP A 累加器 Acc的低4位与自身的高4位互换 (5)、堆栈操作指令(2条)PUSH direct压

14、栈指令POP direct弹栈指令堆栈区由特殊功能寄存器堆栈指针SP 管理堆栈区可以安排在 RAM区任意位置,一般不安排在工作寄存器区和可按位寻址的RAM区,而是放在RAM区的靠后的位置堆栈总是指向栈顶通常PUSH与POP两条指令成对使用2、算术运算类指令加法运算: (ADD4条)带进位加法运算: (ADDC4条)带借位减法运算: (SUBB4条)加1/减1操作: (INC,DEC9条)单字节乘/除法运算: (MUL,DIV2条)十进制调整: (DA A1条)带进位加法运算: (ADDC4条)带借位减法运算: (SUBB4条)3、逻辑运算及移位类指令(5种/24条)逻辑与运算: (ANL6条)

15、逻辑或运算: (ORL6条)逻辑异或运算: (XRL6条)累加器清零/取反: (CLR,CPL2条)累加器移位操作: (RL,RLC,RR,RRC4条)4、控制转移类指令(4种/17条)此类指令改变程序的执行顺序改变当前PC值无条件转移:(LJMP,AJMP,SJMP,JMP4条)条件转移(判断跳转):(JZ,JNZ,CJNE,DJNZ8条)子程序调用及返回:(LCALL,ACALL,RET,RETI4条)无条件转移LJMP,AJMP,SJMP,JMP4条LJMP addr16 长跳转指令可在64K范围内跳转AJMP addr11 绝对跳转指令可在指令所在的2K范围内跳转SJMP rel 相对

16、跳转指令可在当前PC-128与+127范围内跳转JMP A+DPTR散转指令(间接长跳转指令) 可在以DPTR为基址 + A为偏移量之和所指向的64K程序范围内跳转条件转移CJNE A, #data, relCJNE A, direct,rel CJNE Ri,#data, relCJNE Rn, #data, rel将A(或Ri,或Rn)与#data(或direct)相比较,其值不相等就跳转;相等则不跳转,继续往下走。DJNZ direct,relDJNZ Rn, rel将direct(或Rn)里的内容减 1,结果不等于0就跳转;等于0则不跳转继续往下走。子程序调用及返回:(LCALL,AC

17、ALL,RET,RETI4条)5、位操作类指令(17条)位操作类指令 以位为单位进行逻辑运算及操作,可分为4种: 位传送: (MOV2条)位清零/置位:(CLR,SETB4条)位逻辑与/或/非运算:(ANL,ORL,CPL6条)位传送指令(2条): MOV C, bit ;(C)(bit) MOV bit, C ;(bit)(C) 注: bit表示位地址位清零/置位指令(4条): CLR bit(或CLR C);(bit或 C)“0” SETB bit(或SETB C);(bit或 C)“1” 位逻辑与/或/非指令(6条): ANL C,bit(或ANL C, /bit) ORL C,bit(

18、或ORL C, /bit) CPL bit (或CPL C) 注:“/bit”表示对bit位的反参加运算,bit本身不变空操作: NOP“耗时”一个机器周期。 do nothing!第三章 单片机中断系统一、中断概念1、中断:是指CPU执行正常程序时,系统中出现特殊请求,CPU暂时中止当前的程序,转去处理更紧急的事件,处理完毕后,CPU返回原程序的过程。 2、中断涉及的几个环节 中断源 中断申请开放中断保护现场中断服务恢复现场中断返回3、中断响应过程、设置中断优先级触发器、保护断点:将断点地址压入堆栈保存,即当前PC值入栈。、保护现场:将ISR中使用到的重要寄存器入栈、寻找中断向量:中断服务程

19、序入口PC,转入中断服务。、中断处理:执行中断源所要求中断服务程序。、恢复现场:重要寄存器出栈、中断返回:执行中断返回指令,栈顶内容PC,程序跳转 回断点处。 4、单片机的中断源及TCON 2个外部中断请求:INT0,INT12个片内定时器/计数器T0和T1中断请求:TF0,TF1,(TF252子系列有T2) 1个串行口中断请求:TI/RI5、CPU识别中断申请的依据CPU在每个机器周期的S5P2期间,会自动查询各个中断申请标志位,若查到某标志位被置位,将启动中断机制。TCON:Timer控制寄存器,是管理定时器工作的SFR(其中低4位管外部中断)IE0/IE1:外部中断申请标志位: =0:没

20、有外部中断申请; =1:有外部中断申请。IT0/IT1:外部中断请求的触发方式选择位: =0:在INT0/INT1端申请中断的信号低电平有效; =1:在INT0/INT1端申请中断的信号负跳变有效.6、单片机的中断矢量与优先级 (1)、中断矢量: MCS-51单片机的 5 个中断源分别对应有各自的中断服务程序入口地址(2)、中断优先级控制寄存器IP (0B8H)IP PT2 PS PT1 PX1 PT0 PX0(3)、中断允许寄存器IE (0A8H) IE EA ET2 ES ET1 EX1 ET0 EX0 二、 中断系统硬件结构 第三章 并口、定时与串口一、单片机的I/O引脚结构1、单片机的

21、引脚(P0口)P0.0P0.7: 双向I/O (内置场效应管上拉)寻址外部程序存储器时分时作为双向8位数据口和输出低8位地址复用口;(可浮空)不接外部程序存储器时可作为8位准双向I/O口使用。2、单片机的引脚(P1口)P1.0P1.7: 准双向I/O口(内置了上拉电阻) 输出时一切照常,仅在作输入口用时要先对其写“1”。3、单片机的引脚(P2口)P2.0P2.7: 双向I/O (内置了上拉电阻)寻址外部程序存储器时输出高8位地址;不接外部程序存储器时可作为8位准双向I/O口使用。4、单片机的引脚(P3口)P3.0P3.7: 双功能口(内置了上拉电阻) 它具有特定的第二功能。在不使用它的第二功能

22、时它就是普通的通用准双向I/O口。二、单片机的定时/计数器1、TIMER的作用:定时操作:定时采样,定时扫描,定时中断测量外部信号:累加统计,测量周期等定时输出:PWM等监视系统正常工作与否定时器:对片内机器时钟(周期方波)进行计数计数器:对Tx引脚输入的负脉冲进行计数与Timer工作有关的特殊功能寄存器: TCON 、TMOD、THx 和 TLx2、MCS-51 计数/定时器的实质实质是计数器,脉冲每一次下降沿,计数寄存器数值将加1. 计数的脉冲如果来源于单片机内部的晶振,由于其周期极为准确,这时称为定时器。 计数的脉冲如果来源于单片机外部的引脚,由于其周期一般不确定,可表示事件发生,这时称

23、为计数器。定时器控制寄存器TCON (88H) TFx: Timer0/1计数溢出标志位。 =1 计数溢出; =0 计数未满 TFx标志位可用于申请中断或供CPU查询。 在进入中断服务程序时会自动清零;但在 查询方式时必须软件清零。TRx: Timer0/1运行控制位。 =1 启动计数; =0 停止计数3、定时器方式寄存器TMOD (89H)M1,M0:工作方式定义位 ( 定义4 种方式 ):0 0:13位 Timer用它无益,不要记它!0 1:16位 Timer经常用到1 0:可自动重装的 8位 Timer经常用到1 1:T0 分为2个8位 Timer;T1 此时不工作 因为没有带来什么好处

24、,几乎无用C/T :计数器/定时器选择位 = 1 外部事件计数器。对Tx引脚的负脉冲计数; = 0 片内时钟定时器。对机器周期脉冲计数定时GATE门控位: Timer可由软件与硬件两者控制 a GATE = 0 普通用法 Timer的启/停由软件对TRx位写“1”/“0”控制 GATE = 1 门控用法 Timer的启/停由软件对TRx位写“1”/“0” 和在INTx引脚上出现的信号的高/低共同控制 (INTx引脚高电平允许定时/计数)4、定时器结构与工作方式 (1)、工作方式1:16位的定时/计数器工作方式1 的编程要点: THx/TLx赋初值:THx赋高8位,TLx赋低8位TMOD选方式:

25、 写“M1,M0”=01 b 选方式1 若不用门控位,直接用软件写TRx控制启/停a 若使用门控位,先置位TRx,然后由INTx端的高/低电平来控制其启/停若要允许中断,还须先置位ETx、EA等中断允许控制位,并编写中断服务程序a 若不用中断,可查询“计数溢出标志TFx” 的方式工作,但溢出标志TFx须软件清0方式1:定时初值/定时时间计算定时器的计数单元每个机器周期自动加1直到溢出(0) T=(12/fosc)*(216-a)us(2)、工作方式 2 的编程TMOD寄存器选方式: 写“M1,M0” = 10 b 选中方式2THx/TLx赋相同初值 在TLx计数达到0FFH 再加“1”时,TL

26、0将溢出, “TFx”置1去申请中断,同时THx中的值自动重装(Copy)进TLx其他用法与各种方式1完全相同方式2:定时初值/定时时间计算定时器的计数单元每个机器周期自动加1直到溢出(0)T=(12/fosc)*(28-a)us (最大计数值:256)Timer工作方式 3 几乎无用(3)、定时器小结: (2个16位加法计数器)工作方式由TMOD决定; 计数/定时由C/T位决定 工作方式0(13位) 永远不用 工作方式3(T0拆为双8位) 几乎无用 工作方式1(16位) 经常用到 工作方式2(8位自动重装) 经常用到运行/停止由TRx位控制,(当GATE=1时:由TRx位和Tx引脚上的信号共

27、同控制)从初值按机器周期或外部脉冲递加,溢出位 TFx申请中断;中断允许由ETx位和EA位控制,特别注意:不管定时时间到了与否,只要不控制TRx位,定时器就不会停止。注意:定时初值三、串行通信与并行通讯并行通讯:数据的各位同时传送。传输线的根数与数据位数相等。串行通讯:数据逐位顺序传送。传输线仅需1-2根。串行通信的基本特征是数据逐位顺序进行传送串行通信的格式及约定(如:同步方式、通讯速率、数据块格式、信号电平等)不同,形成了多种串行通信的协议与接口标准。全双工串行接口(UART)全双工:(串行通信)收/发可同时进行 半双工:(串行通信)收/发不可同时进行 单 工:数据单向传送异步串行通信:以

28、字符为单位进行传送 同步串行通信:以数据块为单位进行传送 波特率(bps.):每秒钟传输的数据位数1、异步串行通信数据格式2、串行口的结构两个同名的接收/发送缓冲寄存器SBUF(99H) 指令 MOV SBUF,A 启动一次数据发送,可向SBUF 再发送下一个数 指令 MOV A,SBUF 完成一次数据接收,SBUF可再 接收下一个数接收/发送数据,无论是否采用中断方式工作,每接收/发送一个数据都必须用指令对 RI/TI 清0,以备下一次收/发。3、串行口相关的SFR(SCON,PCON)SM0,SM1:串行口4种工作方式的选择位。 0 0 方式0:8位移位寄存器I/O,波特率固定为 fosc/12 0 1 方式1:8位UART(1+8+1位), 波特率可变,按公式计算 1 0 方式2:9位UART(1+8+1+1位), 波特率固定=fosc x1/32或1/64 1 1 方式3:9位UART(1+8+1+1位), 波特率可变,按公式计算SM2:串行口多机通信控制位(作为方式2、方式3的附加控制位)RI,TI:串行口收/发数据申请中断标志位 1 申请中断; 0 不申请中断RB8:在方式2、3中,是收到的第9位数据。 在多机通信中,用作区别地址帧/数据帧的 标志。(奇偶校验)TB8:方式2、3中,是要发送的第9位数据。 多机通信中,TB8=0 表示发送的是数据; TB8=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论