单片机总结ppt课件.ppt

上传人:飞****2 文档编号:29418329 上传时间:2022-07-30 格式:PPT 页数:60 大小:1.50MB
返回 下载 相关 举报
单片机总结ppt课件.ppt_第1页
第1页 / 共60页
单片机总结ppt课件.ppt_第2页
第2页 / 共60页
点击查看更多>>
资源描述

《单片机总结ppt课件.ppt》由会员分享,可在线阅读,更多相关《单片机总结ppt课件.ppt(60页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第第1 1章章 绪论绪论一、什么是单片机一、什么是单片机从外形上看:从外形上看:双列直插式封装、贴片式封装双列直插式封装、贴片式封装从内部上看:从内部上看:结构图结构图u又称微控制器又称微控制器 (Microcontroller Unit ,MCU)u或称或称嵌入式控制器嵌入式控制器(Embedded Controller) 在一块半导体硅片上集成了微处理器(在一块半导体硅片上集成了微处理器(CPU)、存储、存储器、各种器、各种I/O接口,具有计算机的属性,称为单片微型计接口,具有计算机的属性,称为单片微型计算机(简称单片机)。算机(简称单片机)。从类型上看:从类型上看:u通用型单片机通用型单

2、片机u专用型单片机专用型单片机P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78RST/VPD9RXD P3.010TXD P3.111INT0 P3.212INT1 P3.313T0 P3.414T1 P3.515WR P3.616RD P3.717XTAL218XTAL119VSS20P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728PSEN29ALE/PROG30EA/VPP31P0.732P0.633P0.534P0.435P0.336P0.237P0.138P0.039VCC408031 8051 8751

3、2.1 单片机的外特性单片机的外特性一、电源:一、电源:2个个 Vcc(40) Vss(20)二、时钟:二、时钟: 2个个 XTAL1(19) XTAL2(18)三、输入输出(三、输入输出(I/O):):32个个 P0:8个个 P1:8个个 P2:8个个 P3:8个个四、控制信号:四、控制信号:4个个 RST/VPD ALE/PROG PSEN EA/VppXTAL1XTAL2MCS-51C1C2CYSXTAL2XTAL1MCS-51+5VVSS外部时钟源外部时钟源图图1 内部振荡方式内部振荡方式 图图2 外部振荡方式外部振荡方式二、时钟电路引脚二、时钟电路引脚 XTAL1(19) XTAL2

4、(18)1、两种方式、两种方式v1振荡周期:为单片机提供时钟信号的振振荡周期:为单片机提供时钟信号的振荡源的周期。荡源的周期。v 2状态周期:是振荡源信号经二分频后形状态周期:是振荡源信号经二分频后形成的时钟脉冲信号。成的时钟脉冲信号。 v3机器周期:通常将完成一个基本操作所机器周期:通常将完成一个基本操作所需的时间称为机器周期。需的时间称为机器周期。6个状态周期个状态周期v 4指令周期:是指指令周期:是指CPU执行一条指令所需执行一条指令所需要的时间。一个指令周期通常含有要的时间。一个指令周期通常含有14个个机器周期机器周期。思考:思考:若若MCS-51单片机外接晶振为单片机外接晶振为12M

5、Hz时,时,则单片机的机器周期为多少?则单片机的机器周期为多少? +5V实例实例1:用:用8051最小系统点亮发光二极管最小系统点亮发光二极管LED+5V+5V+5V+5V+5VP1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78RST/VPD9RXD P3.010TXD P3.111INT0 P3.212INT1 P3.313T0 P3.414T1 P3.515WR P3.616RD P3.717XTAL218XTAL119VSS20P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728PSEN29ALE/PROG30EA

6、/VPP31P0.732P0.633P0.534P0.435P0.336P0.237P0.138P0.039VCC408031 8051 8751 +5V ORG 0000H D1:JB P1.6, LOOP CLR P1.3 SJMP LOOP1 LOOP: SETB P1.0LOOP1:SJMP D1 END 1、程序存储器、程序存储器(1(1) )作用:作用:存储存储应用程序的机器码、表格常数应用程序的机器码、表格常数(2(2) )如何选择片内片外的如何选择片内片外的程序程序存储器存储器?(3)(3)系统保留系统保留ROMROM地址(特殊存储单元)地址(特殊存储单元)0000H0000H

7、:启动地址:启动地址0003H0003H:外部中断:外部中断0 0的中断服务入口地址的中断服务入口地址000BH000BH:定时:定时/ /计数器计数器0 0溢出中断入口地址溢出中断入口地址0013H0013H:外部中断:外部中断1 1的中断服务入口地址的中断服务入口地址001BH001BH:定时:定时/计数器计数器1 1溢出中断入口地址溢出中断入口地址0023H0023H:串行口中断服务程序入口地址:串行口中断服务程序入口地址2、数据存储器、数据存储器(1)作用:存放运算的中间结果、数据暂存、缓冲作用:存放运算的中间结果、数据暂存、缓冲(2)片外数据存储器:片外数据存储器:64K(3)片内片

8、内数据存储器数据存储器: 地址范围:低地址范围:低128字节字节 00H7FH 高高128字节字节 80HFFH特特殊殊功功能能寄寄存存器器通用通用RAM位寻址位寻址区区00H1FH20H2FH30H7FH80HFFH外外 部部RAM(I/O口口地址地址)0000HFFFFH内部数据存储器内部数据存储器(a)外部数据存储器外部数据存储器(b)工作寄工作寄存器区存器区返回返回CYACF0RS1RS0OV/PD0HPSW.0PSW.1PSW.2PSW.4PSW.6PSW.7PSW.5PSW.3CY:进借位标志;:进借位标志;AC:辅助进借位标志;:辅助进借位标志; F0:用户标志;:用户标志; R

9、S1、RS0:工作寄存器组选择:工作寄存器组选择;OV:溢出位;:溢出位;P: 奇偶位。奇偶位。RS1 RS0选择工作寄存器组选择工作寄存器组0 00组(组(00H07H)0 11组(组(08H0FH)1 02组(组(10H17H)1 13组(组(18H1FH)工作寄存器组选择控制表特殊功能寄存器特殊功能寄存器SFRSFR三、比较不相等转移指令三、比较不相等转移指令 CJNE A,#data,rel CJNE A,direct,rel CJNE Ri,#data,rel CJNE Rn,#data,rel 该类指令具有该类指令具有比较和判断比较和判断双重功能,比较的本质是做减法运算,双重功能,

10、比较的本质是做减法运算,用第一操作数内容减去第二操作数内容,但差值不回存。用第一操作数内容减去第二操作数内容,但差值不回存。两个两个操作数的内容不变。操作数的内容不变。若(第一操作数若(第一操作数)=(第二操作数),则程序继续执行,(第二操作数),则程序继续执行,(PC)(PC) +3 若(第一操作数若(第一操作数)(第二第二操作数),则程序转移,操作数),则程序转移,(PC)(PC) + rel +3,Cy0 若(第一操作数若(第一操作数)(第二操作数),则程序转移,(第二操作数),则程序转移,(PC)(PC) + rel +3,Cy1自自然然优优先先级级矢矢量量地地址址自自然然优优先先级级

11、矢矢量量地地址址高级中高级中断请求断请求PCPCPCPC断请求断请求低级中低级中SCONSCON中断标志中断标志IPIPPX0PX01 1PT0PT01 11 10 0PX1PX11 10 0PSPS1 10 00 0PT1PT10 0IEIEEX0EX0ET0ET0EX1EX1ET1ET1ESESTCONTCONIE0IE0TF0TF0IE1IE1TF1TF1TITIRIRIRXRXTXTXT1T11 1INT1INT10 0T0T0INT0INT01 10 0源允许源允许 总允许总允许优先级优先级硬件查询硬件查询EAEA5.2 MCS-51的中断系统的中断系统 nMCS-51提供了提供了5

12、个中断源个中断源,2个中断优先级控制个中断优先级控制,可实现,可实现2级中断服务嵌套级中断服务嵌套。n可通过可通过程序设置程序设置中断的允许或屏蔽,设置中断的优先级。中断的允许或屏蔽,设置中断的优先级。P3.0P3.1P3.5P3.4P3.2P3.3IT0IT1一、内部结构图一、内部结构图TF1TR1 TF0TR0 IE1IT1 IE0 IT088HTCON:TCON: 定时器定时器/ /计数器控制寄存器计数器控制寄存器SCON:SCON: 串行口控制寄存器串行口控制寄存器EA -ESET1EX1ET0EX098HIE:IE: 中断允许寄存器中断允许寄存器SM0SM1SM2RENTB8RB8T

13、IRIA8HIP:IP: 中断优先级寄存器中断优先级寄存器- -PSPT1PX1PT0PX0B8H MCS-51单片机设置了单片机设置了4个专用寄存器用于中断控制,用户通个专用寄存器用于中断控制,用户通过设置其状态来管理中断系统。过设置其状态来管理中断系统。二、处理外部中断举例二、处理外部中断举例例例1 1:要求每次按动按键,使外接发光二极管:要求每次按动按键,使外接发光二极管LEDLED改变一次亮灭状态。改变一次亮灭状态。解:解:INT0INT0输入按键信号,输入按键信号,P P1.01.0输出改变输出改变LEDLED状态。状态。1 1跳变触发跳变触发:每次跳变引起一次中断请求。:每次跳变引

14、起一次中断请求。 O R G 0 0 0 0 H ; 复 位 入 口; 复 位 入 口 AJMP MAINO R G0 0 0 3 H ; 中 断 入 口; 中 断 入 口AJMP PINT0ORG 0100H;主程序;主程序MAIN:MOV SP,#40H;设栈底;设栈底SETB IT0;负跳变触发中断;负跳变触发中断SETB EX0;开;开INT0中断中断SETB EA;开总允许开关;开总允许开关H:SJMP H ;执行其它任务;执行其它任务ORG 0200H;中断服务程序;中断服务程序PINT0:CPL P1.0 ;改变;改变LED RETI;返回主程序;返回主程序单片机单片机INT0P

15、1.01+5V(1 1)软件等待按键释放。)软件等待按键释放。(2 2)硬件清除中断信号。)硬件清除中断信号。2 2、电平触发:、电平触发:单片机单片机INT0P1.01+5V ORG 0000H;复位入口;复位入口 AJMP MAINO R G0 0 0 3 H ; 中 断 入 口; 中 断 入 口AJMP PINT0ORG 0100H;主程序;主程序MAIN:MOV SP,#40H;设栈底;设栈底 CLR IT0;低电平触发中断;低电平触发中断 SETBEX0;开;开INT0中断中断 SETBEA;开总允许开关;开总允许开关H:SJMP H ;执行其它任务;执行其它任务ORG 0200H;

16、中断服务程序;中断服务程序PINT0:CPL P1.0 ;改变;改变LEDWAIT:JNB P3.2,WAIT;等按键释放;等按键释放RETI;返回主程序;返回主程序例例2: 通过外部中断控制八盏灯循环点亮。通过外部中断控制八盏灯循环点亮。解:通过解:通过P1口扩展八盏灯,在口扩展八盏灯,在/INT1引脚接一个按钮引脚接一个按钮开关到地,每按一下按钮就申请一次中断,点亮一开关到地,每按一下按钮就申请一次中断,点亮一盏灯,中断服务则是:依次点亮八盏灯中的一盏。盏灯,中断服务则是:依次点亮八盏灯中的一盏。采用边沿触发。采用边沿触发。程序如下:程序如下: ORG 0000H LJMP MAIN OR

17、G 0013H ; 中断服务程序入口地址中断服务程序入口地址 LJMP IN11 MAIN:SETB EA ; 开总中断允许开总中断允许“开关开关” SETB EX1 ; 开分中断允许开分中断允许“开关开关” CLR PX1 ; 低低 优先级(也可不要此句)优先级(也可不要此句) SETB IT1 ; 边沿触发边沿触发 MOV A , #01H ; 给累加器给累加器A赋初值赋初值 SJMP $ ; 原地等待中断申请原地等待中断申请 IN11:RL A ; 左环移一次左环移一次 MOV P1,A ; 输出到输出到P1口口 RETI ; 中断返回中断返回 ENDTF1TR1 TF0TR0 IE1I

18、T1 IE0 IT01 1、TCON TCON 定时器定时器/ /计数器控制寄存器计数器控制寄存器 88H88HTF0/TF1:T0/T1溢出标志位。可用于溢出标志位。可用于申请中断或供申请中断或供CPU查询查询。在。在进入进入中断中断服务程序时会服务程序时会自动清零自动清零;但在;但在查询查询方式时必须方式时必须软件清零软件清零。 定时或计数时间到,可以采用查询或中断方式处理;定时或计数时间到,可以采用查询或中断方式处理; =1 :计数溢出计数溢出; =0 :计数未满。:计数未满。TR0/TR1:T0/1启停控制位。启停控制位。 =1 :启动计数;:启动计数; =0: 停止计数。停止计数。I

19、E0/IE1和和IT0/IT1:用于管理外部中断。:用于管理外部中断。二、二、4 4个个SFRSFRGATEC/TM1M0GATEC/TM1M02 2、TMOD: TMOD: 定时器定时器/ /计数器工作方式控制寄存器计数器工作方式控制寄存器 89H89H 0 0 :INT0INT0对启动对启动T0T0没有影响,由没有影响,由TR0TR0启动;启动;GATE :门控位:门控位 1 1 :启动:启动T0T0由由INT0INT0、TR0TR0共同启动。共同启动。M1 M0:工作方式选择位工作方式选择位 。 0 0 :13位定时器位定时器/计数器;计数器; 0 1 :16位定时器位定时器/计数器(常

20、用)计数器(常用); 1 0 :可自动重装的:可自动重装的8位定时器位定时器/计数器(常用);计数器(常用); 1 1 :T0 分为分为2个个8位定时器位定时器/计数器;仅适用于计数器;仅适用于T0。 C/T C/T : 定时方式定时方式/ /计数方式选择位。计数方式选择位。 1 1 : 计数器工作方式,对计数器工作方式,对T0/T1T0/T1引脚外部事件的负脉冲计数;引脚外部事件的负脉冲计数; 0 0 : 选择定时器工作方式,对机器周期脉冲计数定时。选择定时器工作方式,对机器周期脉冲计数定时。例例1 1:利用定时器产生周期为:利用定时器产生周期为2ms2ms的方波,的方波,foscfosc=

21、6MHZ=6MHZ使用使用T0/T1T0/T1的步骤:的步骤:1 1、确定选择、确定选择T0/T1T0/T12 2、确定工作模式、确定工作模式3 3、确定工作方式、确定工作方式4 4、计算初值、计算初值5 5、编写主程序、编写主程序 中断入口处理中断入口处理 定时器定时器/ /计数器初始化计数器初始化6 6、编写中断服务程序、编写中断服务程序(1)(1)方式方式0 0:Tmax=2131 s=8.192ms(2)(2)方式方式1 1:Tmax=2161 s=65.536ms (3)方式方式2、3:Tmax=281 s=0.256ms定时定时选择选择T0T0T=(M TC)T0 1ms1ms=(

22、216 -TC)2 s TC=65036=0FE0CH一、方式一、方式1 1的应用的应用 ORG 0000H AJMP MAIN ORG 000BH AJMP TT0 ORG 0100HMAIN: MOV SP,#40H MOV TMOD,#01H MOV TL0,#0CH MOV TH0,#0FEH SETB TR0 SETB ET0 SETB EALOOP: SJMP LOOP ORG 0200HTT0:CPL P1.0 MOV TL0,#0CH MOV TH0,#0FEH RETI END思考题:思考题:1 1、实现本题功能、实现本题功能T0T0是否需要停止?是否需要停止?2 2、中断服

23、务程序为什么要给、中断服务程序为什么要给T0T0重新赋初值?重新赋初值? 不赋初值会出现什么现象?不赋初值会出现什么现象?讨论题:讨论题:定时精度可能会受什么因素影响?定时精度可能会受什么因素影响?方案方案1 1:采用中断方法:采用中断方法方案方案2 2:采用查询方法:采用查询方法 ORG 0000H MOV TMOD, #01HLOOP: MOV TH0, #0FEH MOV TL0, #0CH SETB TR0LOOP1:JNB TF0,LOOP1 CLR TR0 CPL P1.0 SJMP LOOP讨论题:讨论题:比较两个方案的优缺点比较两个方案的优缺点查询方法:查询方法: 程序简单;程

24、序简单; 但但CPUCPU必须不断查询必须不断查询TF0TF0标志;标志; CPUCPU效率低。效率低。中断方法:中断方法: 程序复杂;程序复杂; 能提高能提高CPUCPU效率。效率。128345610 11 12 13数 据 输 出移 位 脉 冲RXDTXD805174LS164D7 D6 D5 D4 D3 D2 D1 D03 3、方式、方式0 0的应用:扩展并行输入输出口的应用:扩展并行输入输出口 CB: MOV R7,#0AH MOV R0,#50H MOV SCON ,#00HSEND1: MOV A,R0 MOV SBUF ,AWAIT: JNB TI,WAIT CLR TI INC

25、 R0 DJNZ R7, SEND1 例:将以例:将以50H50H为首地址的为首地址的1010个单元中数据由串口送出。个单元中数据由串口送出。92654314 13 12 11数 据 输 入移 位 脉 冲RXDTXD805174LS165D7D6D5D4D3D2D1D0 CB:MOV R7,#05H MOV R0,#30H RE1: MOV SCON ,#10HWAIT: JNB RI,WAIT CLR RI MOV A,SBUF MOV R0 ,A INC R0 DJNZ R7,RE1 例:从扩展口读入例:从扩展口读入5 5个数据,存到内部个数据,存到内部RAMRAM以以30H30H开始的单

26、元中。开始的单元中。例:例:T0T0引脚发生负跳变时,从引脚发生负跳变时,从p1.0p1.0引脚输出引脚输出1 1个周期为个周期为1ms1ms的方波的方波T0500us500usP1.0分析:分析:(1 1)工作方式选择)工作方式选择 T0T0为方式为方式2 2计数,初值计数,初值 0FFH.0FFH. T1 T1为方式为方式2 2定时,初值定时,初值(2(28 8-X)-X)2us=500us 2us=500us X=06HX=06H(2 2)中断服务程序)中断服务程序 T0T0中断服务程序停止中断服务程序停止T0T0计数,置标志位计数,置标志位 T1T1中断服务程序对中断服务程序对P1.0

27、P1.0求反,使求反,使P1.0P1.0产生周期产生周期1ms1ms的方波。的方波。二、方式二、方式2 2的应用的应用 ORG 0000H RESET: LJMP MAIN ORG 000BH LJMP IT0P ORG 001BH LJMP IT1P ORG 0100HMAIN: MOV SP,#60H ACALL PT0M2 LOOP: MOV C,F0 JNC LOOP SETB TR1 SETB ET1 vHERE: AJMP HEREPT0M2: MOV TMOD,#26H MOV TL0,#0FFH MOV TH0,#0FFH SETB TR0 SETB ET0 MOV TL1,#

28、06H MOV TH1,#06H CLR F0 SETB EA RET IT0P: CLR TR0 SETB F0 RETI IT1P: CPL P1.0 RETI一、串口方式一、串口方式0 0的应用的应用例:例:用用8051串行口外接串行口外接CD4094扩展扩展8位并行输出口,位并行输出口,8位并行口位并行口的各位都接一个发光二极管,要求发光二极管呈流水灯状态的各位都接一个发光二极管,要求发光二极管呈流水灯状态(轮流点亮)。(轮流点亮)。 方案一:采用查询方案一:采用查询TI决定是否发送下一帧数据决定是否发送下一帧数据方案二:采用中断决定是否发送下一帧数据方案二:采用中断决定是否发送下一帧

29、数据 RR A CLR P1.0 SJMP OUT0 DELAY: MOV R7, #250 D1: MOV R6, #250 D2: DJNZ R6, D2 DJNZ R7, D1 RET END ORG 0000H START: MOV SCON, #00H MOV A, #80H CLR P1.0 OUT0: MOV SBUF, A OUT1: JNB TI, OUT1 CLR TI SETB P1.0 ACALL DELAY 92654314 13 12 11数 据 输 入移 位 脉 冲RXDTXD805174LS165D7D6D5D4D3D2D1D0 CB:MOV R7,#05H M

30、OV R0,#30H RE1: MOV SCON ,#10HWAIT: JNB RI,WAIT CLR RI MOV A,SBUF MOV R0 ,A INC R0 DJNZ R7,RE1 RET例:从扩展口读入例:从扩展口读入5 5个数据,存到内部个数据,存到内部RAMRAM以以30H30H开始的单元中。开始的单元中。P3.0 RXDP3.1 TXD分析:分析: 从串口送出什么样的数据才能显示从串口送出什么样的数据才能显示 0?例:利用串并转换将数字例:利用串并转换将数字 0909输出到输出到LEDLED显示器上显示,输出显示器上显示,输出同一个数字。同一个数字。 ORG 0000H AJM

31、P MAIN ORG 0030HMAIN:MOV SP,#60H MOV SCON,#00H MOV R1,#00H L1:MOV A,R1 MOV DPTR,#TAB MOVC A,A+DPTR MOV SBUF ,A JNB TI,$ CLR TI MOV SBUF ,A JNB TI,$ CLR TI CALL DELAY CJNE R1,#9,L2 MOV R1,#00H AJMP MAIN L2:INC R1 AJMP L1TAB:DB 03H,9FH,25H,0DH,99H,49H DB 41H,1FH,01H,09HDELAY: END思考:不用串行口发送数据,采用某一个输出口是

32、否也可以思考:不用串行口发送数据,采用某一个输出口是否也可以 完成串并转换?完成串并转换? 例:例:扩展扩展8片片2764P2.7P2.6P2.5P2.4P2.0P0口口ALEPsen/CE0A12A8A7 8K8A0/OE1O0O774LS373C y7BA y 0 /CE1A12A8A78K8A0/OE1O0O7/CE7A12A8A78K8A0/OE1O0O7MCS5174LS1380000H1FFFH2000H3FFFH4000H5FFFH6000H7FFFH8000H9FFFHA000HBFFFHC000HDFFFHE000HFFFFHP P1.71.7P P1.61.6P P1.51

33、.5P P1.41.4P P1.31.3P P1.21.2P P1.11.1P P1.01.0P P3.73.7P P3.63.6P P3.53.5P P3.43.4P P3.33.3P P3.23.2P P3.13.1P P3.03.0RDRDEAEARESETRESET803180318051805187518751P P2.72.7P P2.62.6P P2.52.5P P2.42.4P P2.32.3P P2.22.2P P2.12.1P P2.02.0P P0.70.7P P0.60.6P P0.50.5P P0.40.4P P0.30.3P P0.20.2P P0.10.1P P0

34、.00.0ALEALEA A1515A A1414A A1313A A1212A A1111A A1010A A9 9A A8 8A A7 7A A6 6A A5 5A A4 4A A3 3A A2 2A A1 1A A0 0D D7 7D D6 6D D5 5D D4 4D D3 3D D2 2D D1 1D D0 0G G锁锁存存器器A0A1A2A3A4A5A6A7A8A9A10A11A12D0D1D2D3D4D5D6D7OEVccGNDCE16264+5VWEPSENPSENWRWRCE262646264的的8 KB8 KB地址范围不唯一(因为地址范围不唯一(因为P2.7P2.6P2.7

35、P2.6可为任意值)可为任意值)可以为可以为0000H-1FFFH 4000H-5FFFH 8000H-9FFFH A000H-DFFFH0000H-1FFFH 4000H-5FFFH 8000H-9FFFH A000H-DFFFH四种中的一种地址范围。四种中的一种地址范围。例:分析外部数据存储器地址范围例:分析外部数据存储器地址范围0000H1FFFH/2000H3FFFH/4000H5FFFH/6000H7FFFH写数据:写数据:MOV A, DATA MOV DPTA, 6000HMOVX DPTR, A读数据:读数据:MOV DPTR, 7FFFHMOVX , DPTR 例:例:在数据

36、存储器扩展电路中,将片内在数据存储器扩展电路中,将片内RAM 以以50H单元开始的单元开始的16个数据,传送片外数据存储器个数据,传送片外数据存储器0000H开始的单元中。开始的单元中。程序如下:程序如下: ORG 1000H MOV R0, #50H MOV R7, #16 MOV DPTR, #0000H AGAIN: MOV A, R0 MOVX DPTR, A INC R0 INC DPTR DJNZ R7, AGAIN RET END1、无条件传送方式、无条件传送方式 在进行在进行I/OI/O操作时,不需要测试外部设备的状态,可以根操作时,不需要测试外部设备的状态,可以根据需要随时进

37、行数据传送操作。一般用于具有常驻的或变化据需要随时进行数据传送操作。一般用于具有常驻的或变化缓慢的数据信号的外部设备如机械开关、指示灯、发光二极缓慢的数据信号的外部设备如机械开关、指示灯、发光二极管、数码管等,以及工作速度非常快,足以和管、数码管等,以及工作速度非常快,足以和CPUCPU同步工作同步工作 的外部设备如外部数据存储器,数的外部设备如外部数据存储器,数/ /模转换器。模转换器。2、程序查询方式、程序查询方式 为了实现查询方式的数据输入输出传送,需要由接口电为了实现查询方式的数据输入输出传送,需要由接口电路提供外设状态,并以软件方法进行状态测试。路提供外设状态,并以软件方法进行状态测

38、试。3 、程序中断方式、程序中断方式 采用中断方式进行数据传送时,当外设为数据传送作好采用中断方式进行数据传送时,当外设为数据传送作好准备之后,就向准备之后,就向CPUCPU发出中断请求。发出中断请求。CPUCPU响应中断后,再继续响应中断后,再继续执行被中断的原程序。执行被中断的原程序。 方式选择控制字方式选择控制字 二、二、8255A8255A的控制字的控制字(2(2个)个) C口置位口置位/复位控制字复位控制字B组C口低4位B口方式选择0:输出1:输入0:输出1:输入 0:模式0 1:模式1A组C口高4位A口方式选择0:输出0:输出1:输入1:输入01:模式100:模式01*:模式21:

39、方式标志0:复位1:置位000001010PC0位选择011100101110111PC1PC2PC3PC4PC5PC6PC70:位操作D7 D6D5 D4 D3 D2 D1 D0D7D3 D2D1 D0(a)(b)B组C口低4位B口方式选择0:输出1:输入0:输出1:输入 0:模式0 1:模式1A组C口高4位A口方式选择0:输出0:输出1:输入1:输入01:模式100:模式01*:模式21:方式标志0:复位1:置位000001010PC0位选择011100101110111PC1PC2PC3PC4PC5PC6PC70:位操作D7 D6D5 D4 D3 D2 D1 D0D7D3 D2D1 D0

40、(a)(b)思考:思考:如何把这两个控制字写入如何把这两个控制字写入8255A8255A? 8255A8255A如何区分这两个控制字?如何区分这两个控制字? MOV DPTR,#7F03H MOV A,#83H MOVX DPTR, A 例:例: 设设8255控制字寄存器的地址为控制字寄存器的地址为7F03H,试编程使,试编程使A口为方口为方式式0输出,输出,B口为方式口为方式0输入,输入,PC4PC7为输出,为输出,PC0PC3为为输入。输入。B组C口低4位B口方式选择0:输出1:输入0:输出1:输入 0:模式0 1:模式1A组C口高4位A口方式选择0:输出0:输出1:输入1:输入01:模式

41、100:模式01*:模式21:方式标志0:复位1:置位000001010PC0位选择011100101110111PC1PC2PC3PC4PC5PC6PC70:位操作D7 D6D5 D4 D3 D2 D1 D0D7D3 D2D1 D0(a)(b)例:设例:设8255控制字寄存器地址为控制字寄存器地址为7F03H,将,将PC1置置1,PC3清清0。MOV DPTR,#7F03HMOV A,#03HMOVX DPTR, AMOV A,#06HMOVX DPTR, AB组C口低4位B口方式选择0:输出1:输入0:输出1:输入 0:模式0 1:模式1A组C口高4位A口方式选择0:输出0:输出1:输入1

42、:输入01:模式100:模式01*:模式21:方式标志0:复位1:置位000001010PC0位选择011100101110111PC1PC2PC3PC4PC5PC6PC70:位操作D7 D6D5 D4 D3 D2 D1 D0D7D3 D2D1 D0(a)(b)例:如果在例:如果在8255的的B口接有口接有8个按键,个按键,A口接有口接有8个发光二极管,完个发光二极管,完成按下某一按键,相应的发光二极管发光的功能。成按下某一按键,相应的发光二极管发光的功能。 MOV DPTR,#0003H ;指向;指向8255的控制口的控制口 MOV A,#83H MOVX DPTR, A ;向控制口写控制字

43、,向控制口写控制字,A口输出,口输出,B口输入口输入LOOP: MOV DPTR,#0001H ;指向;指向8255的的B口口 MOVX A, DPTR ;检测按键,将按键状态读入;检测按键,将按键状态读入A MOV DPTR,#0000H ;指向;指向8255的的A口口 MOVX DPTR, A ;驱动;驱动LED发光发光 SJMP LOOP12345678910111213141516171819204039383736353433323130292827262524232221PC3PC4TIMER INRESETPC5TIMER OUTCERDWRALEAD0AD1AD2AD3AD4A

44、D5AD6AD7VSSVCCPC2PC1PC0PB7PB6PB5PB4PB3PB2PB1PB0PA7PA6PA5PA4PA3PA2PA1PA081558155256 B静态RAM14位定时计数器ABCAD07CERDWRRESETALETIME INTIME OUTVCC(+5V)VSS(GND)PC05PB07PA07IO/ MIO/ M一、一、81558155的内部结构和引脚的内部结构和引脚TM2 TM1 IEB IEA PC2 PC1 PB PA0:A口为输入方式;口为输入方式;1:A口为输出方式口为输出方式00 方式方式1:A、B口为基本输入输出,口为基本输入输出,C口为输入方式口为输

45、入方式11方式方式2:A、B口为基本输入输出,口为基本输入输出,C口为输出方式口为输出方式01 方式方式3:A口选通输入输出,口选通输入输出,B口为基本输入输出口为基本输入输出 PC0:AINTR,PC1:ABF,PC2:ASTB PC35:输出:输出10 方式方式4:A口、口、B口选通输入输出口选通输入输出 PC0:AINTR,PC1:ABF,PC2:ASTB PC2:BINTR,PC4:BBF,PC5:BSTB0:禁止:禁止A口中断口中断1:允许:允许A口中断口中断0:B口为输入方式;口为输入方式;1:B口为输出方式口为输出方式0:禁止:禁止B口中断口中断1:允许:允许B口中断口中断00空

46、操作,不影响定时空操作,不影响定时/计数器操作计数器操作01停止定时停止定时/计数器操作计数器操作10若定时若定时/计数器正在计数,长度减为计数器正在计数,长度减为1时停止计数时停止计数11 启动,置定时启动,置定时/计数器方式和长度后立即启动计数计数器方式和长度后立即启动计数 若正在计数,溢出后按新的方式和长度计数若正在计数,溢出后按新的方式和长度计数二、二、81558155的命令字的命令字/ /状态字寄存器状态字寄存器 8155芯片的命令芯片的命令/状态寄存器物理上只有一个端口地址,对该端口写操作,状态寄存器物理上只有一个端口地址,对该端口写操作,命令字被写入命令寄存器;对该端口读操作,则

47、从状态寄存器读出状态字。命令字被写入命令寄存器;对该端口读操作,则从状态寄存器读出状态字。8155的命令字格式:的命令字格式:状态寄存器格式状态寄存器格式 XTIMINTEBBBFINTRBINTEAABFINTRAA口 中 断 请 求 标 志A口 缓 冲 器 满 /空 标 志允 许 A口 中 断 标 志B口 中 断 请 求 标 志B口 缓 冲 器 满 /空 标 志D7D6D5D4D3D2D1D0允 许 B口 中 断 标 志定 时 器 中 断 标 志 , 计 数 满 该 位 置 “ 1” 中 断 请 求 , 复 位 后 为 “ 0”空例:例:若若A A口定义为基本输入方式,口定义为基本输入方式

48、,B B口定义为基本输出方式,对口定义为基本输出方式,对输入脉冲进行输入脉冲进行2424分频,写出分频,写出初始化程序初始化程序。START:MOV DPTR, 7F04H ;指针指向定时器低;指针指向定时器低8 8位位 MOV A,18H ;计数初值;计数初值2424送送A,A, MOVX DPTR,A ;计数初值低;计数初值低8 8位装入定时器位装入定时器 INC DPTR ;指针指向定时器高;指针指向定时器高8 8位位 MOV A,40H ;设定时器连续方波输出;设定时器连续方波输出 MOVX DPTR,A ;计数初值高;计数初值高6 6位装入定时器位装入定时器 MOV DPTR,7F0

49、0H ;指向命令;指向命令/ /状态口状态口 MOV A,#0C2H ;设定命令控制字;设定命令控制字 MOVX DPTR,A ;A A口输入,口输入,B B口输出口输出, ,开定时器开定时器例:扩展例:扩展5 5个个LED(LED(共阳)数码管。编写显示子程序,实现将共阳)数码管。编写显示子程序,实现将30H30H34H534H5个单元的数值分别显示在个单元的数值分别显示在5 5位位LED4LED4LED0LED0上。上。DIS: MOV R0,#30H MOV R3,#01H MOV A,R3 DLP:MOV P1,A MOV DPTR,#TAB MOV A,R0 MOVC A,A+DPT

50、R MOV P2,A ACALL DLY1MS INC R0 MOV A,R3 RL A MOV R3,A JNB ACC.5,DLP SJMP DIS TAB:DB 0C0,0F9H,0A4H, 0B0H, H0F8H,82H,92H,99H,DLY1MS: 例例4 4:用串行口实现静态显示电路的接口:用串行口实现静态显示电路的接口例:编写显示更新子程序,实现将例:编写显示更新子程序,实现将70H70H77H77H共共8 8个单元的数值分个单元的数值分别显示在别显示在8 8位位LED7LED7LED0LED0上。上。 ORG 1000HDISPSER:MOV R5, #08H ; 显示显示8

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com