#include <reg51.h>
sbit CD4052_A = P0^0;
sbit CD4052_B = P0^1;
void init_cd4052()
{
CD4052_A=0;
CD4052_B=0;
}
unsigned char tmp;
void send_char(unsigned char txd);
main()
{
init_cd4052();
TMOD = 0x20; // 定时器1 8位自动重载
TH1 = 0xFD; // 波特率9600
TL1 = 0xFD;
SCON = 0x50; // 设定串行口工作方式
PCON &= 0xef; // 波特率不倍增
TR1 = 1; // 启动定时器1
while(1)
{
if(RI) // 是否有数据到来
{
RI = 0;
tmp = SBUF; // 暂存接收到的数据
P1 = tmp; // 数据传送到P0口
send_char(tmp); // 回传接收到的数据
}
}
}
void send_char(unsigned char txd)
// 传送一个字符
{
SBUF = txd;
while(!TI); // 等特数据传送
TI = 0; // 清除数据传送标志
}
我想用cd4052扩展串口 ,x0、y0接232口,给A、B接口赋值后,程序写不到板子里,但如果先把A、B直接接地(A、B都为0),就可以正常工作了。
该怎么用软件给A、B赋值来选择通道? |