独闷闷网

 找回密码
 立即注册
搜索
查看: 532|回复: 0
收起左侧

[原创] 两个不同组的低4位IO口如何合并成8位并口,可以输出一个字节或读取一个字节?已解答。

[复制链接]
发表于 2015-9-12 08:23:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
学生-江门:
请问stm32如何控制一个数码管,用pa0.0-3个pc0.0-3?因为有些芯片不齐8个io。

★坚鸿-深圳:
我给你一个51单片机的参考例子,P2.0到P2.3是高4位  P1.0到P1.3是低4位。

  1. #include "REG52.H"

  2. //输出一个字节8位 P2.0到P2.3是高4位 P1.0到P1.3是低4位
  3. void bus_out(unsigned char u8BusData); //拆分合并的并口输出一个字节8位数据

  4. //P2.0到P2.3是高4位 P1.0到P1.3是低4位
  5. unsigned char get_bus(void); //读取IO总线

  6. unsigned char Gu8Test;
  7. void main()
  8. {
  9. bus_out(0x55); //并口输出0x55数据.
  10. Gu8Test=get_bus(); //读取IO总线

  11. while(1);
  12. }


  13. //输出一个字节8位 P2.0到P2.3是高4位 P1.0到P1.3是低4位
  14. void bus_out(unsigned char u8BusData) //拆分合并的并口输出一个字节8位数据
  15. {
  16. P2=(P2&0xf0)|(u8BusData>>4); //P2.0到P2.3是输出高4位
  17. P1=(P1&0xf0)|(u8BusData&0x0f); //P1.0到P1.3是输出低4位
  18. }



  19. //P2.0到P2.3是高4位 P1.0到P1.3是低4位
  20. unsigned char get_bus(void) //读取IO总线
  21. {
  22. unsigned char u8GetData;

  23. u8GetData=P2&0x0f;
  24. u8GetData=(u8GetData<<4)|(P1&0x0f);
  25. return u8GetData;
  26. }
复制代码

乐于分享,勇于质疑!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|独闷闷网 ( 粤ICP备12007667号-2 )

GMT+8, 2018-11-18 08:07 , Processed in 0.098517 second(s), 18 queries .

快速回复 返回顶部 返回列表