51单片机I/O口的扩展问题:使用 锁存器74LS273连接后还是只有8个端口,为什么说是扩展呢?
展开全部
用8255扩展之后就是PA,PB,PC了,怎么还会只有8个端口呢?
用8255扩展51单片机 I/O口的程序,需要结合电路图才能确定,不同的连线,PA,PB,PC的地址是不同的,不过我也忘记怎么写程序了= =!
8255中的A0.A1,CS非,与单片机的连线决定了,8255中,PA,PB,PC的各端口地址。单片机中P0,是低8位地址线,P2,是高8位地址线。
例如 CS非连接P2.7 A0,A1通过锁存器连接到单片机中的P0.0,P0.1的话。那么PA口地址就是 7FFCH。
因为 CS非要低电平,8255才工作,因为 要选择PA口,则A0=0,A1=0。
这样,CS,A0,A1对应单片机中的 P2.7,P0.0,P0.1就是低电平。
所以单片机中低8位地址加上高8位地址用2进制表示就是 0111111111111100,
对应的16进制就是 7FFCH
同理,PB口对应的就是 7FFDH
PC口对应的就是 7FFEH
还有个控制端。对应的就是 7FFFH
如果你要用8255的扩展口的话,就要先打通控制端,看你要用什么工作方式了。
有个工作方式控制字的,可以让你选择使用啥工作方式。但是不管怎样,都要先打通控制端 ,用汇编来写就是 MOV DPTR,#7FFFH
然后就是选择工作方式了,比方说用 A口——方式0输入,B口——方式0输出,C口高半字节——输入,C口低半字节——输出,则她的工作方式控制字就为 10011000B,就是 98H。
程序就是 MOV DPTR,#7FFFH 这个就是 打通控制端
MOV A,#98H 选择方式控制字
MOVX @DPTR,A 把控制字弄到8255的控制口去
这些在单片机的书中都有,多看看吧。写的这么详细了,给我最佳吧。呵呵
用8255扩展51单片机 I/O口的程序,需要结合电路图才能确定,不同的连线,PA,PB,PC的地址是不同的,不过我也忘记怎么写程序了= =!
8255中的A0.A1,CS非,与单片机的连线决定了,8255中,PA,PB,PC的各端口地址。单片机中P0,是低8位地址线,P2,是高8位地址线。
例如 CS非连接P2.7 A0,A1通过锁存器连接到单片机中的P0.0,P0.1的话。那么PA口地址就是 7FFCH。
因为 CS非要低电平,8255才工作,因为 要选择PA口,则A0=0,A1=0。
这样,CS,A0,A1对应单片机中的 P2.7,P0.0,P0.1就是低电平。
所以单片机中低8位地址加上高8位地址用2进制表示就是 0111111111111100,
对应的16进制就是 7FFCH
同理,PB口对应的就是 7FFDH
PC口对应的就是 7FFEH
还有个控制端。对应的就是 7FFFH
如果你要用8255的扩展口的话,就要先打通控制端,看你要用什么工作方式了。
有个工作方式控制字的,可以让你选择使用啥工作方式。但是不管怎样,都要先打通控制端 ,用汇编来写就是 MOV DPTR,#7FFFH
然后就是选择工作方式了,比方说用 A口——方式0输入,B口——方式0输出,C口高半字节——输入,C口低半字节——输出,则她的工作方式控制字就为 10011000B,就是 98H。
程序就是 MOV DPTR,#7FFFH 这个就是 打通控制端
MOV A,#98H 选择方式控制字
MOVX @DPTR,A 把控制字弄到8255的控制口去
这些在单片机的书中都有,多看看吧。写的这么详细了,给我最佳吧。呵呵
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询