




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机原理及应用第一章绪论1.什么叫单片机?其主要特点有哪些?在一片集成电路芯片上集成微处理 器、存储器、I/O接口电路,从而构成 了单芯片微型计算机,即单片机。特点:控制性能和可靠性高、体积小、价格低、易于产品化、具有良好的性 价比。第二章80C51的结构和原理1.80C51的基本结构a. CPU系统8位CPU,含布尔处理器;时钟电路;总线控制逻辑。b. 存储器系统4K字节的程序存储器(ROM/EPROM/FLASH,可外扩至64KB);128字节的数据存储器(RAM,可外扩至64KB);特殊功能寄存器SFRc. I/O 口和其他功能单元4个并行I/O 口;2个16位定时/计数器;1个全双工
2、异步串行口;中断系统(5个中断源,2个优先 级)2.80C51的应用模式a.总线型单片机应用模式总线型应用的“三总线”模式; 非总线型应用的“多I/O”模式 3.80C51单片机的封装和引脚a.总线型DIP40引脚封装RST/VPo:复位信号输入引脚/备用 电源输入引脚;ALE/PROG :地址锁存允许信号输 出引脚/编程脉冲输入引脚;EA /Vpp:内外存储器选择引脚/片 内EPROM编程电压输入引脚; PSEN :外部程序存储器选通信号输出引脚是上电与按键均有效的复位b.非总线型DIP20封装的引脚RST:复位信号输入引脚4.80C51的片内存储器增强型单片机片内数据存储器为 256字节,
3、地址范围是 00HFFH。低128字节的配情况与基本型单片机相同。高128字节一般为RAM,仅能采用寄 存器间接寻址方式询问。注意:与该 地址范围重叠的特殊功能寄存器 SFR 空间采用直接寻址方式询问。5.80C51的时钟信号晶振周期为最小的时序单位。一个时钟周期包含2个晶振周期。晶振信号12 分频后形成机器周期。即一个机器 周期包含12个晶振周期或6个时钟周 期。6.80C51单片机的复位定义:复位是使单片机或系统中的其 他部件处于某种确定的初始状态。a复位电路b.单片机复位后的状态单片机的复位操作使单片机进入初始化状态。初始化后,程序计数器PC=0000H,所以程序从0000H地址单元开始
4、执行。特殊功能寄存器复位后的状态是确定的。P0P3 为 FFH,SP为 07H,SBUF不定,IP、IE和PCON的有效位为0,其余的特殊功能寄存器的状态为 00H. 相应的意义为:P0P3=FFH,相当于各口锁存器已写入1,此时不但可用于输出,也可以用于输入;SP=07H,堆栈指针指向片内RAM的07单元;IP、IE和PCON的有效位为0,各 中断源处于低优先级且均被关断、 串行通讯的波特率不加倍;PSW=00H,当前工作寄存器为0组。两种形式:一种是上电复位;另一种7.80C51的存储器组织功能:存储信息(程序和数据)00H7FHa.程序存储器低端的一些地址被固定地用作特定的入口地址:?0
5、000H :单片机复位后的入口地址;?0003H :外部中断0的中断服务程序入口地址;?000BH:定时/计数器0溢出中断服务程序入口地址;?0013H :外部中断1的中断服务程序入口地址;?001BH:定时/计数器1溢出中断服务程序入口地址;?0023H :串行口的中断服务程序入口地址。8.80C51单片机的数据存储器配置80C51单片机数据存储器分为片外RAM和片内RAM两大部分。80C51片内RAM的128B部分分成工作寄存器区、位寻址区、通用 RAM三 大部分。增强型单片机片内除地址范围为00H7FH的128B RAM夕卜,又增加了 80HFFH的高128B的RAM。增加的 这部分RA
6、M仅能采用间接寻址方式访 问。片外RAM地址空间为64KB,地址范围是 0000HFFFFH。与程序存储器地址空间不同的是,片外RAM地址空间与片内 RAM地址空间在地址的低端0000H007FH是重叠的。访问片外RAM时采用指令 MOVX实现,访问片内RAM采用指令 MOV,无读写信号产生。a.工作寄存器区80C51单片机片内RAM低端的00HTFH共32B,分成4个工作寄存器组,每组占8个单元。寄存器0组:地址00H07H ; 寄存器1组:地址08H0FH ; 寄存器2组:地址10H17H ;基本型单片机片内RAM的地址范围是寄存器3组:地址18H1FH程序运行时,只能有一个工作寄存器位时
7、CY=1,否贝U CY=O;组作为当前工作寄存器组;当前工作寄存器组的选择由特殊功能寄存器中 得程序状态字寄存器 PSW的RS1、RS0 来决定。b.位寻址区内部RAM的20H2FH共16个字节是位寻址区。其128位的地址范围是00H7FH。c通用RAM区位寻址区之后的30H7FH共80个字节为通用RAM区。这些单元可以作为 数据缓冲器使用。实际应用中,常需在RAM区设置堆栈。80C51的堆栈一般设在 30H7FH的范围内,栈顶的位置由堆栈指针SP指示。复位时SP的初值为07H,在系统初始 化时可以重新设置。9.80C51单片机的特殊功能寄存器a.程序状态字寄存器 PSW, 8位。含义 如下:
8、? CY:进位、借位标志。有进位、借? AC:辅助进位、借位标志? F0:用户标志位,由用户自己定义? RS1、RS0当前工作寄存器组选 择位? OV:溢出标志位。有溢出时OV=1,否则0V=0? P:奇偶标志位。存于ACC中的运 算结果有奇数个“1 ”时°=1,否则P=0。10. P0 口、P2 口 的结构P0 口作为分时复用的低 8位地址/数据总线,P2 口作为高8位地址总线。a. P0 口的结构P0用作通用I/O 口输出驱动级工作在需外接上拉电阻的漏极开路方式;P0 口在作为通用I/O 口,属于准双向 口。P0用作地址/数据总线b. P2 口的结构P2 口的输出驱动电路与P0
9、口不同,内部设有上拉电阻P3.1: TXD (串行口输出);P2用作通用I/O 口P2 口在作为通用I/O 口,属于准双向 口。P2用作地址总线11. P3 口结构a. P3用作第一功能的通用I/O 口b. P3用作第二功能使用P3.0: RXD (串行口输入);P3.2: INTO (外部中断0输入);P3.3: INTI (外部中断1输入);P3.4: TO (定时器0的外部输入);P3.5: T1 (定时器1的外部输入);P3.6: WR (片外数据存储器“写”选通控制输出);P3.7: RD (片外数据存储器“读” 选通控制输出)。第三章80C51的指令系统1.80C51的寻址方式表3
10、.1寻址方式所对应的寄存器和存储空间号式 方 址 寻间 空1基本方式址 寻 器 寄隔>) A 累R尔2址 寻 接 直R FS3址 寻DPT s D RR1, R( M ( 忖AM 内 R 片 外片4止 寻 立M oR5扩展方式址 寻 址 变M oR6止 寻 对 目节 字可寻址位(内部 RAM20H2FH单元7位寻址的位和部分SFR的位)2. 特殊传送指令表3.3特殊传送指令编号指令分类指令机器码子节机器周期数1ROM查表MOVC A,A+DPTR93H22MOVC A,A+PC83H23读片外RAMMOVX A,DPTRE0H24MOVX A,RiE2H(E3H)25写片外RAMMOVX
11、DPTR, AF0H26MOVXRi,AF2H(F3H)27堆栈操作PUSH directC0H2direct8POP directD0H2direct堆栈操作在80C51单片机中,堆栈的生长方向是向上的。入栈操作时,先将 SP+1,然后 将指令指定的直接地址单元的内容存入 SP指向的单元;出栈操作时,将 SP指 向的单元内容传送到指令指定的直接地址单元,然后 SP-1 o系统复位时,SP的内容位07H o SP的值越小,堆栈深度越深。PUSH direct: SP (SP) 1,(SP) (direct)POP direct: direct (SP),SP (SP) 1一般在中断、子程序调用
12、时发生堆栈操作MOV、MOVX、MOVC 区别MOV :单片机内部数据传递;MOVX:单片机与片外RAM和I/O 口电路的数据传递;MOVC: ROM的查表3. 逻辑运算与循环类指令逻辑与:编号指令分类指令1逻辑与ANL direct,A2ANL direct,#data3ANL A,Rn4ANL A,direct5ANL A,Ri6ANL A,#data前两条把源操作数与直接地址指示内容相与;后四条是把源操作数与累加器 A的内容相与,送入A逻辑或:编号指令分类指令1ORL direct,A2逻辑或ORL direct,#data3ORL A,Rn4ORL A,direct5ORL A,Ri6
13、ORL A,#data逻辑异或:编号指令分类指令1XRL direct,A2XRL direct,#data3XRL A,Rn4XRL A,direct5XRL A,Ri6XRL A,#data累加器清0和取反CLRA清0CPLA取反累加器循环移位RR右移RRCRL左移RLC4. 控制转移类指令短跳转:AJMP;长跳转:LJMP;相对跳转:SJMP。由于LJMP指令提供的是16位地址,因此程序可以转向64KB的程序存储器地址空间的任何单元。累加器判0转移:JZ rel:(A)=O,则 PC PC rel ;JNZ rel:(A) 0,则 PC PC rel比较不相等转移(目的字节与源字节不相等
14、则转移):CJNE A direct, relACJNE Rn ,#data,relRi减1不为0转移:DJNZRn,relDJNZdirect,rel将操作数的循环控制单元的内容减1,并判断是否为0若不为0, 一直循环。若 为0,程序往下执行。调用:ACALL短调用;LCALL长调用返回:RET子程序返回指令;RETI中断服务子程序返回指令CPL取反第四章1. 查表程序有一变量存放在片内RAM的20H单元,其取值范围为00H05H。要求编制一 段程序,根据变量值求平方值,并存入片内 RAM的21H单元。程序如下:ORG 1000HSTART:MOV DPTR,#2000HMOV A,20HM
15、OVC A, A+DPTRMOV 21H,ASJMP $ORG 2000HTABLE:DB 00,01,04,09,16,25END2. 双字节无符号数加法设被加数存放在内部 RAM 的 51H、50H 单元,加数存放在内部 RAM 的 61H、 60H 单元,相加的结果存放在内部 RAM 的 51H、50H 单元,进位存放在位寻址 区的 00H 位中,实现此功能的程序段如下:MOV R0,#50H ;被加数的低字节地址MOV R1,#60H ;加数的低字节地址MOV A,R0 ;取被加数低字节ADD A,R1 ; 加上加数低字节MOV R0, A ;保存低字节相加结果INC R0 ;指向被加
16、数高字节INC R1 ; 指向加数高字节MOV A,R0 ;取被加数高字节ADDC A,R1 ;加上加数高字节(带进位加)MOVR0,A ;保存高字节相加结果MOV00H, C ;保存进位3. 双分支程序设变量x以补码的形式存放在片内 RAM的30H单元,变量y与x的关系是:当x>0时,y=x ;当x=0时,y=20H ;当x<0时,y=x+5。编制程序,根据x的大小求 y 并返回原单元。程序段如下:START:MOVA, 30HJZNEXTANLA, #80H ;判断符号位JZLPMOVA, #05HADDA, 30HMOV30H, ASJMPLPNEXT:MOV30H, #20
17、HLP:SJMP$4. 多分支程序根据R7的内容转向相应的处理程序。设R7的内容为0N,对应的处理程序的入口地址分别为 PP0PPN。程序段如下:START: MOV DPTR, #TAB ;置分支入口地址表首址MOV A, R7ADDA, R7MOVR3, AMOVCA, A+DPTR ;取高位地址XCHA, R3INCAMOVCA, A+DPTR ;取低位地址MOVDPL, A ;处理程序入口地址低MOVDPH, R3 ;处理程序入口地址高CLRAJMPA+DPTRDWPP0DWPP1DWPPNTAB:8 位送 DPL8 位送 DPH5. 循环程序先执行后判断;先判断后执行50ms 延时程
18、序 若晶振频率为12MHZ,则一个机器周期为1 g,执行一条DJNZ指令需要2个机器周期,即2血。采用循环计数法延时,循环次数可通过计算获得,并选择先执行后判断的循环结构。程序段如下:DEL: MOV R7, #200 ; 1 pSDEL1: MOV R6, #123 ; 1 psNOP ; 1pSDEL2: DJNZ R6, DEL2 ; 2g共(2*123) pSDJNZ R7, DEL1 ; 2 ps 共(2*123+2+2)*200+1 ps,即 50.001msRET6. 子程序及其调用a. 现场保护与恢复的结构在主程序实现在子程序中实现b. 子程序调用时,参数的传递方法利用累加器或
19、寄存器利用存储器利用堆栈操作7. 常用程序举例a多字节无符号数的加法设两个 N 字节的无符号数分别存放在内部 RAM 中以 DATA1 和 DATA2 开始的单元中。相加后的结果要求存放在 DATA2 数据区中。程序段如下:MOVR0, #DATA1MOVR1,#DATA2MOVR7,#N ;置字节数CLRCLOOP: MOV A, R0ADDC A, R1 ;求和MOV R1, A ;存结果INC R0 ;修改指针INC R1DJNZ R7,LOOPb. 多字节无符号数的减法设两个N字节的无符号数分别存放在内部 RAM中以DATA1和DATA2开始的单元中。相减后的结果要求存放在 DATA2
20、 数据区中。程序段如下:MOVR0, #DATA1MOVR1,#DATA2MOVR7,#N ;置字节数CLRCLOOP:MOV A,R0SUBB A,R1 ;求差MOV R1,A ;存结果INC R0 ;修改指针INC R1DJNZ R7,LOOPc. 十六进制数与ASCII码间的转换当十六进制数在09之间时,其对应的ASCII码值为该十六进制数加30H;当十六进制数在AF之间时,其对应的ASCII码值为该十六进制数加37Hd. BCD码与二进制数之间的转换双字节二进制数转换成BCD码 设(R2R3为双字节二进制数,(R4R5R6为转换完的压缩型BCD码。程序段如下:DCDTH: CLR AM
21、OV R4, A ; R4 清 0MOV R5, A ; R5 清 0MOV R6, A ; R6 清 0MOV R7, #16 ;计数初值LOOP:CLRCMOVA, R3RLCAMOVR3, A ;R3左移一位并送回MOVA, R2RLCAMOVR2, A ;R2左移一位并送回MOVA, R6ADDCA, R6DAAMOVR6, A ;(R6)乘2并调整后送回MOVA, R5ADDCA, R5DAAMOVR5, A ;(R5)乘2并调整后送回MOVA, R4ADDC A, R4DA AMOV R4, A ; (R4)乘2并调整后送回DJNZ R7, LOOP第五章80C51的中断系统及定时
22、/计数器1.80C51的结构80C51系列单片机的中断系统有5个中断源,2个优先级,可实现二级服务中断 嵌套。或清0,由此可以获得与硬件使之置2中断响应条件CPU响应中断的条件是:第一,中断 源有中断请求;第二,此中断源的中1或清0同样的效果。才可能响应中断。3中断返回(使用RET指令)RETI指令能使CPU结束中断服务程序断允许位为1 ;第三是CPU开中断(即EA=1)。同时满足这3个条件时,CPU的执行,返回到曾经被中断过的程序 处,继续执行主程序。表5.1各中断源响应优先级及中断服务程序入口表中断源中断标志中断服务程序入口优先级顺序外部中断0( INT0)IE00003H高定时/计数器0
23、( T0)TF0000BH外部中断1( INT1)IE10013H定时/计数器1( T1)TF1001BH串行口RI 或 T10023H低注:R1、T1必须由软件清除。另外,所有能产生中断的标志位均可由软件置1功能:注:将中断响应时压入堆栈保存的断 点地址从栈顶弹出送回PC, CPU 从原来中断的地方继续执行程序; 将相应中断优先级状态触发器清0,通知中断系统,中断服务程序 已执行完毕。外部中断定义为电平触发方式,中 断标志位的状态随CPU在每个机 器周期采样到的外部中断输入引 脚的电平变化而变化。电平触发方 式适合于外部中断输入以低电平 输入且在中断服务程序中能清除 外部中断的情况。外部中断
24、定义为边沿触发方式,在 相继连续的两次采样中,一个周期 采样到外部中断输入为高电平,下 一个周期采样到为低电平,则在 IE0或IE1中将所存一个逻辑1。边 沿触发方式适合于以负脉冲形式 输入的外部中断请求。80C51单片机片内集成有两个可编程 的定时/计数器:T0和T1,它们既可 以工作于定时模式,也可以工作于外 部事件计数模式,此外, T1还可以作 为串行口的波特率发生器。5. 定时/计数器的控制TMOD用于设置其工作方式;TCON用于控制其启动和中断申请。定时模式C/T =0 ;计数模式C/T =16. 定时/计数器的定时方式和计数方式 的区别? 定时方式的计数脉冲源自内部的时钟脉冲,每个
25、机器周期寄存器的 值+1,计数频率为震荡频率的1/12 ;? 计数方式的计数脉冲源自相应的 外部输入引脚T0或T1,每个下降 沿寄存器值+1,最高计数频率为 振荡频率的1/24.7. 定时/计数器的工作方式80C51单片机定时/计数器T0有4种4.80C51的定时/计数器工作方式(方式0、1、2、3), T1有3种工作方式(方式0、1、2 )。a. 方式 0( M1M0=00 )13位计数器,由T0的低5位(高3位未用)和TH0的8位组成。TL0的 低5位溢出时向TH0进位,TH0溢出时,置位TCON中的TF0标志,向CPU发出中断请求。计数初值公式:X=213- Nb. 方式 1 (M1M0
26、=01 )16位计数器,由TL0作为低8位、TH0作为高8位,组成了 16位加1计数器。 计数个数与计数初值的关系:X=216-Nc. 方式 2 (M1M0=10 )方式2为自动重装初值的8位计数方式。TH0为8位初值寄存器。当TL0 计数溢出时,由硬件使TF0置1,向 CPU发出中断请求,并将TH0中的计 数初值自动送入TL0。TL0从初值重新 进行加1计数。周而复始,直至TR0=0 才会停止。计数个数与计数初值的关系:X=28 Nd. 方式 3 (M1M0=11 )只适用于定时/计数器T0,定时器T1 处于方式3时相当于TR1=0,停止计 数。方式3时,T0分为两个独立的8位计数器TL0和
27、TH0,TL0使用T0的所有 控制位:C/、GATE、TR0 TF0和INT0。当TL0计数溢出时,由硬件使TF0置1,向CPU发出中断请求。8. 定时/计数器的应用举例a利用定时/计数器T0方式1,产生10ms的定时,并使P1.0引脚上输出周期为20ms的方波,采用中断方式,设系统时钟频率为 12MHZ。解:(1)计算计数初值X: 由于晶振为12MHZ,所以机器周期Tcy为1宙。所以:N=t/T cy=10*10 - 3/1*10 _6=10000X=216- N=65536 10000=55536=D8F0H即应将D8H送入TH0中,F0H送入TL0中。(2) 求T0的方式控制字 TMOD
28、:M1M0=01 , GATE=0, C/T =0 ,可取方式控制字为 01H。(3) 程序清单如下ORG0000HLJMPMAIN ;跳转到主程序ORG000BH ; T0的中断入口地址LJMPDVT0 ;转向中断服务程序ORG0100HMAIN : MOVTMOD,#01H ;置T0工作于方式1MOVTH0, #0D8H ;装入计数初值MOVTL0, #0F0HSETBET0 ; T0开中断SETBEA ; CPU开中断SETBTR0 ;启动T0SJMP$ ;等待中断DVT0: CPLP1.0 ; P1.0取反输出MOVTH0, #0D8H ;重新装入计数值MOVTL0, #0F0HRET
29、I ;中断返回LP1: ACALLNTOb.利用定时/计数器TO从P1.0输出周期为1s,脉宽为20ms的正脉冲信号,晶振 频率为12MHZ。试设计程序。解:采用定时20ms,然后再计数1、49次的方法实现。a. TO工作在定时方式1时,控制字TMOD配置:M1M0=01,GATE=0, C/T =0,可取方式控制字为 01H。b. 计算计数初值X:晶振为12MHZ,所以机器周期Tcy为1宙。所以:-3- 6N=t/T cy=20*10 /1*10 =20000X=216 - N=65536 20000=45536=4E20H即应将4EH送入TH1中,20H送入TL1中。c. 实现程序如下:O
30、RG0000HAJMPMAIN ;跳转到主程序ORG0030HMAIN : MOV TMOD,#01H ;置 T0 工作于方式 1MOV TH0, #4EH ;装入循环计数初值MOVTL0, #20H ;首次计数值LP0: SETBP1.0ACALL NT0CLRP1.0MOVR7, #49 ;计数 49 次DJNZR7, LP1AJMPLPONTO: MOVTHO,#4EHMOVTLO,#20HSETBTROJNBTFO,$CLRTROCLRTFORETENDc.要求从P1.1引脚输出1OOOHZ方波,晶振频率为12MHZ。试设计程序。 解:采用TO实现。 TO工作在定时方式1时,控制字TMOD配置:M1MO=O1,GATE=0, C/T=O,可取方式控制字为 01H。 计算计数初值:晶振为12MHZ,所以机器周期Tcy为1吟1/1OOO=1*1O 一3。所以:N=t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025设立信用证业务合同范本及英文版合同
- 2025至2030沥青混凝土摊铺机行业市场占有率及投资前景评估规划报告
- 2025蔬菜定购合同模板
- 法警理论知识课件
- 2024年教师资格《中学综合素质》模拟卷(附答案)
- 2025年苏教版五年级下册数学学习资源开发计划
- 2025果园场租赁合同模板
- 2025年综合类-中学教育学-第十章班组管理历年真题摘选带答案(5卷100道合辑-单选题)
- 2025最权威的个人租房合同范本
- 2025教学楼维修保养合同范本
- 家长育儿教育课件
- 2025西藏山南旅游文化投资有限责任公司招聘15人笔试历年参考题库附带答案详解
- 酒精中毒病人诊疗、急救与护理知识考核试题与答案
- 食品快检培训 课件
- 2025年萍乡卫生职业学院单招(语文)测试题库附答案
- 出口退税培训课件下载
- 华为emt轮岗管理制度
- 公司数据分类分级管理制度
- 健康科普比赛题目及答案
- 小区防汛设备管理制度
- 传染病防控健康巡讲要点
评论
0/150
提交评论