独闷闷网

标题: 两个不同组的低4位IO口如何合并成8位并口,可以输出一个字节或读取一个字节?已解答。 [打印本页]

作者: jianhong_wu    时间: 2015-9-12 08:23
标题: 两个不同组的低4位IO口如何合并成8位并口,可以输出一个字节或读取一个字节?已解答。
学生-江门:
请问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. }
复制代码






欢迎光临 独闷闷网 (http://www.dumenmen.com/) Powered by Discuz! X3.2