第3章MCS-51单片机的内部资源及应用 主要内容: MCS-51单片机内部各器件的具体结构、组成原理、 工作方式的设置及典型应用,为读者后续学习单片机应用 系统设计、充分利用单片机内部资源解决工程实际问题奠 定基础。重点在于各器件工作方式的设置及灵活应用,难 点在于中断系统和定时器计数器的应用
第3章 MCS-51单片机的内部资源及应用 主要内容: MCS-51单片机内部各器件的具体结构、组成原理、 工作方式的设置及典型应用,为读者后续学习单片机应用 系统设计、充分利用单片机内部资源解决工程实际问题奠 定基础。重点在于各器件工作方式的设置及灵活应用,难 点在于中断系统和定时器/计数器的应用
3.1MS-51单片机的并行I/0口 3.1.1MCS-51内部并行I/0口 80514个8位并行O口,分别命名为PO,P1,P2和P3口 1.P0口 P0口为双向三态输入输出口,PO口既可作为地址数据 总线口,又可作为通用IO口,可驱动8个T输入。在访问 外部存储器时,PO口作地址/ 数据总线复用口,是一个真 地址数据控制 正的双向口,并分时送出地你 T 址的低8位和送出(或接收) 相应存储单元的数据。作通 内部总线。+[DQ 写 P Q 用IO口时,PO口只是一个准 MUX 双向口,需要在外部引脚处 读引脚 外接上拉电阻。P0口的位结 ←构如右图所示
3.1.1 MCS-51内部并行I/O口 8051有4个8位并行I/O口,分别命名为P0, P1, P2和P3口。 1.P0口 P0口为双向三态输入/输出口, P0口既可作为地址/数据 总线口,又可作为通用I/O口,可驱动8个TTL输入。在访问 3.1 MCS-51单片机的并行I/O口 外部存储器时,P0口作地址/ 数据总线复用口,是一个真 正的双向口,并分时送出地 址的低8位和送出(或接收) 相应存储单元的数据。作通 用I/O口时,P0口只是一个准 双向口,需要在外部引脚处 外接上拉电阻。 P0口的位结 构如右图所示
2.P2口 地址/数据控制 P口常用做外部存储器的高8位地址读镀存 上拉电阻 口。当不用做地址口时,P2口也可作为 P2.N 通用O口,这时它也是一个准双向O内部总线+D 口。不必外接上拉电阻就可以驱动任何 写 CP Q MUX MOS驱动电路,且只能驱动4个T输 入。P2口的位结构如右图所示 读引脚 3.P1口 读锁存器o P1口常用做通用O口,它也是 上拉电阻 个标准的准双向O口,不必外接上拉内总线D可 PI.A 电阻就可以驱动任何MOS驱动电路, 写 CP可 且只能驱动4个T∏输入。P1口的位结 沟如右图所示。 读引脚
2.P2口 P2口常用做外部存储器的高8位地址 口。当不用做地址口时,P2口也可作为 通用I/O口,这时它也是一个准双向I/O 口。不必外接上拉电阻就可以驱动任何 MOS驱动电路,且只能驱动4个TTL输 入。P2口的位结构如右图所示。 3.P1口 P1口常用做通用I/O口,它也是一 个标准的准双向I/O口,不必外接上拉 电阻就可以驱动任何MOS驱动电路, 且只能驱动4个TTL输入。P1口的位结 构如右图所示
4.P3口 P3口是一个双功能口 第二输出功能 第一功能与P1口一样可用做 读锁存器 通用I/O口,也是一个准双向 I/O口,能驱动4个TI输入。 内部总线+「DQ 写 CH 另外还具有第二功能。P3口 工作在第二功能时各管脚定 义如下表所示。P3口的位结 读引脚 第二输入功能 构图如右图乐示。 引 功能 引 P30 申行输入口〔R) P34 足时器/计数器0的外邻入口〔T0) p3.1 申行输出口(TxD) p3.5. 定时播/计数器1的外邻入口〔T1 p3.2 外中断0〔IT) p3.6 外数据存储恐马选通〔WR) P3.3. 外中断1〔INm) P37. 外邻数据存储器选通〔F)
4.P3口 P3口是一个双功能口, 第一功能与P1口一样可用做 通用I/O口,也是一个准双向 I/O口,能驱动4个TTL输入。 另外还具有第二功能。P3口 工作在第二功能时各管脚定 义如下表所示。 P3口的位结 构图如右图所示
3.1.2MCS-51内部并行I/0口的应用 MCS-51/0端口的操作方式: (1)输出数据方式:CPU通过一条数据传送指令就可以把输 出数据写入P0~P3的端口锁存器,然后通过输出驱动器送 到端口引脚线。例如,下面的指令均可在P0口输出数据。 MOV PO.A anl PO#data ORL PO.A (2)读端口数据方式:CPU读入的这个数据并非端口引脚线 上的数据。读端口数据可以直接读端口。例如,下面的指 令均可以从P1口输入数据,这是锁存器上的数据 MOVAPI MOV 20H PI MOV RO. PI MOV aRO, Pl
3.1.2 MCS-51内部并行I/O口的应用 MCS-51I/O端口的操作方式: (1)输出数据方式:CPU通过一条数据传送指令就可以把输 出数据写入P0~P3的端口锁存器,然后通过输出驱动器送 到端口引脚线。例如,下面的指令均可在P0口输出数据。 MOV P0, A ANL P0, #data ORL P0, A (2)读端口数据方式: CPU读入的这个数据并非端口引脚线 上的数据。读端口数据可以直接读端口。例如,下面的指 令均可以从P1口输入数据,这是锁存器上的数据。 MOV A, P1 MOV 20H, P1 MOV R0, P1 MOV @R0, P1
(3)读端口引脚方式:读端口引脚方式可以从端口引脚上读入 信息。在这种方式下,CPU首先必须使欲读端口引脚所对应的 锁存器置1,然后才能读端口引脚。因此,用户在读引脚时必 须先置位锁存器后读,连续使用两条指令。例如,下面的程 序可以读P1引脚上的信号。 MOVP1,#0FFH置位P1引脚的锁存器 MOVAPI 读P1引脚上的信号送累加器A 注意:写引脚时是直接向端口输出要写的数据, 读引脚时就要区分是读端口的引脚信号还是读锁存器信 号 读端口信号是必须先向端口写“1”然后再读,这就是单 片机口信号的双向的含义。切记!(见106)
(3)读端口引脚方式:读端口引脚方式可以从端口引脚上读入 信息。在这种方式下,CPU首先必须使欲读端口引脚所对应的 锁存器置1,然后才能读端口引脚。因此,用户在读引脚时必 须先置位锁存器后读,连续使用两条指令。例如,下面的程 序可以读P1引脚上的信号。 MOV P1, #0FFH ; 置位P1引脚的锁存器 MOV A, P1 ; 读P1引脚上的信号送累加器A 注意:写引脚时是直接向端口输出要写的数据, 读引脚时就要区分是读端口的引脚信号还是读锁存器信 号。 读端口信号是必须先向端口写“1” ,然后再读,这就是单 片机口信号的准双向的含义。切记!(见P106)
1.I/0口直接用于输入/输出 在ⅣO口直接用做输入输岀时,CPU既可以把它们看做数据口,也可以看 做状态口,这是由用户决定的。 [例题1要求设计跑马灯 硬件电路设计: 1.设计单片机最小系统 2设计带按键的复位电路 3使用一个P口连接八个led发光二极管 4软件设计 n4148 78L05 vCC 各引脚功能如下: UT cc:接正电源; Vs:接地; 220 电源指示及稳压电路
在I/O口直接用做输入/输出时,CPU既可以把它们看做数据口,也可以看 做状态口,这是由用户决定的。 [例题1]要求设计跑马灯。 硬件电路设计: 1.设计单片机最小系统 2.设计带按键的复位电路 3.使用一个P口连接八个led发光二极管 4.软件设计 各引脚功能如下: VCC:接正电源; Vss:接地; 1.I/O口直接用于输入/输出
平平平平 uCC EArp P10 p11 p12 p03 P13 R3 P15 p06 IK P16 po? vCC RESET P20 TI p22 TO 24 P23 RD P24 p2了 TXD 30F INTO INTI 11.05923
程序设计: 实验一:单片机最小系统及流水灯程序 org ooh ;源程序起始地址 Jmp maIn 跳转到MAIN org 0050h ;主程序开始地址 main:mova,#11;立即数送入A loop: mov pl, a ;数据送P1口 rr a 右循环一下 Icall delay ;延时子程序 aJmp loop ;重复循环 dlay:movr3,#250;延时子程序 d1 mov r4. #235 d2 nop nop mop djnz r4, d2 djnz r3, dI ret end
程序设计: ;实验一:单片机最小系统及流水灯程序 org 00h ;源程序起始地址 jmp main ;跳转到MAIN org 0050h ;主程序开始地址 main: mov a,#11111110B ;立即数送入A loop: mov p1,a ;数据送P1口 rr a ;右循环一下 lcall delay ;延时子程序 ajmp loop ;重复循环 delay: mov r3,#250 ;延时子程序 d1: mov r4,#235 d2: nop nop nop djnz r4,d2 djnz r3,d1 ret end
2.I/0口扩展外部锁存器 为了输出数据并保持这个输出状态,MCS-51单片机常常需要使ⅣO 口通过外部锁存器和输出设备相连。如下图所示为8051通过74LS273与输 岀设备连接的接口图。8051通过下面的指令输出数据至数码管: MOV DPTR#7FFH;DPR指向74S273端口,地址为7FFH) MOVX@DPIR,A;输出数据到数码管上 74ls273 P00 2569 CC P01 D2 P02 36 478 bcd P03 P04 13 D5 23456 P05 P06 P07 4781 D6 Q6 f d D7 16 g D8 8 200X8 WRK16 P10 ICLK C CLR VCC P11 P12 P13 P14 P15 2345678 74l!04/ P16 P17
2.I/O口扩展外部锁存器 为了输出数据并保持这个输出状态,MCS-51单片机常常需要使I/O 口通过外部锁存器和输出设备相连。如下图所示为8051通过74LS273与输 出设备连接的接口图。8051通过下面的指令输出数据至数码管: MOV DPTR, #7FFFH ; DPTR指向74LS273端口,地址为7FFFH) MOVX @DPTR ,A ; 输出数据到数码管上