我的天,好吧我是做驱动的硬件不是很了解,看了下你的电路,你把164理解错了吧,居然将数据线接到串口的接收端,我也不知道这样行不行,一般的接法是将数据线直接接IO口,因为是串行的一个字节8位,所以一位一位的传递
假如我们接164的串行口位P1^0;
sbit sda=P1^0;
void Wirte_OneByte(unsigned char data)
{
unsigned char i;
for(i=0;i<8;i++)
{
if(data&0x80) //从高位传递
sda=1;
else
sda=0;
data=data<<1;
}
}这个要根据164的时序写。。。然后将164的8个输出接到数码管,数码管位选也接单片机,方便控制,串口是用来跟电脑通信的端口跟芯片上说的串行口不是一个意思。。
我也是新手,说一下我对你这个程序的疑问题,
1.T2MOD没有设置,
2.用了串口功能,用SBUF写数据了,应当需要波特率发生器吧
3.T2 要么做计时器要么做波特率发生器,你这里T2即做为波特率发生器又做为计时器,我不懂它们会如何正常工作
如果都正确的话那就是你的软件上面可能那里有问题了。你这个是protuse吧! 以实际效果为主。你是浙江接keil连接的?
程序坏掉了吧?