第四章MCS-51系列单片机的扩展要点解析.ppt
文本预览下载声明
例:请编出把8155定时器用作200分频器的初始化程序。 解:设8155有关寄存器端口地址为: 20H 命令寄存器 24H 定时器低字节 25H 定时器高字节 相应初始化程序为: ORG 0A00H MOV R0,#25H ;定时器高字节地址送R0 MOV A,#40H ;定时器高字节送A(0100 0000连续方波) MOVX @R0,A ;装入定时器高字节 DEC R0 ;R0指向定时器低字节端口 MOV A,#0C8H ;定时器低字节送A MOVX @R0,A ;装入定时器低字节 MOV R0,#20H ;命令寄存器地址送R0 MOV A,#0C0H ;命令字送A MOVX @R0,A ;装入命令字,启动定时器工作 MCS-51执行上述程序后,定时器开始计数,回零时一方面自动把定时器长度初值装入定时器和启动它计数,另一方面在T/OUT线上输出一个连续方波,由于定时器长度字初值为C8H,故T/OUT线上频率和T/IN线上输入频率相比被进行200分频了。 若把T/OUT和单片机的INT1相连,则单片机在中断服务程序中可进行软件计时。 5、用8155的扩展 RESET RD WR ALE P2.0 RESET RD WR ALE IO/M P0.7~P0.0 AD7~AD0 8051 8155 PA7~PA0 PB7~PB0 PC7~PC0 定时器输入 定时器输出 用8155的扩展电路 CE 对上图列出其RAM与I/O接口的地址如下: 片外RAM 自0000H-00FFH C/S寄存器 01F8H A口寄存器 01F9H B口寄存器 01FAH C口寄存器 01FBH 定时器低字节寄存器 01FCH 定时器高字节寄存器 01FDH 6、扩展电路的连接举例 (1)接口电路非常简单,基本上是相同信号对接。 8031 8155 RESET RD WR ALE P2.0 P2.7 P0.0 P0.1 P0.2 P.03 P0.4 P0.5 P0.6 P0.7 RESET RD WR ALE IO/M CE AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 口A PA0~PA7 口B PB0~PB7 PC0~PC5 口C 设8155与单片机连接电路如上图,现要求其A口为基本输入方式,B口为基本输出方式,定时器为方波发生器,对8031输入脉冲进行24分频,编制初始化程序段。 解:首先分析各端口地址 命令状态口地址为7F00H A口地址为7F01H B口地址为7F02H C口地址为7F03H 定时器低8位地址7F04H 定时器高6位地址7F05H 8155的控制字为0C2H: PA PB PC1 PC2 IEA IEB TM1 TM2 1 1 0 0 0 0 1 0 24分频即计数初值为24(000000 0011000B=18H)加上定时计数控制01(连续方波),则送往定时计数器的时间常数及定时控制字应为 00011000B=4018H MOV DPTR,#7F00H MOV A,,#0C2H MOVX @DPTR,A MOV DPTR,#7F05H MOV A,,#40H MOVX @DPTR,A MOV DPTR,#7F04H MOV A,#18H MOV DPTR,A 根据上图的电路,把8155的PB口设置成输入方式,PA口设置成输出方式,并把PB口输入的数据与8031 P1口输入的数据相“异或”,结果从PA口输出。试写出满足此要求的程序。 TM2 TM1 IEB IEA PC2 PC1 PB PA 0 0 0 0 0 0 0 1 即控制字为01H,(注:此处PC2 PC1取1 1也可以) 依上图电路,8155的六个端口地址分配如下 P2.7……………P2.0 P0.7……………… P0.0 I/O端口 0 X X X X X X 1 X X X X X 0 0 0 命令/状态口 0 X X X X X X 1 X X X X X 0 0 1 A口 0 X X X X X X 1 X X X X
显示全部