jianhong_wu 发表于 2015-9-12 08:23:57

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

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

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

#include "REG52.H"

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

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

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

while(1);
}


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



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

u8GetData=P2&0x0f;
u8GetData=(u8GetData<<4)|(P1&0x0f);
return u8GetData;
}
页: [1]
查看完整版本: 两个不同组的低4位IO口如何合并成8位并口,可以输出一个字节或读取一个字节?已解答。