单片机C语言窜口

来源:百度知道 编辑:UC知道 时间:2024/06/20 04:46:21
单片机C语言窜口
#include "reg51.h"
#define uchar unsigned char
const uchar tab[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

void main()
{ uchar i=0;
SCON=0X00;
SBUF=tab;

i++;

while(TI==1);

TI=0;
}
我 的这个程序错在那里了,我想实现流水灯,可总是不行,那个朋友帮帮我下;能给我说下窜口的使用就更好了,能回个C窜口的流水灯很是感谢!!其他的简单窜口程序也行!!
SBUF=tab; 应该为SBUF=tab[i];

#include "reg51.h"
#define uchar unsigned char
uchar tab[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

void main()
{
uchar i;
TMOD = 0x20; //选择方式1
TH1 = 0xFD;
TL1 = 0xFD; //波特率为9600
TR1 = 1;
SCON=0X00; //模式0
while(1) //一直循环发送TAB中的数据
{
for(i=0;i<8;i++)
{
SBUF=tab[i];
while(TI==0);//等待发送完一个数据
TI=0 //软件清零发送中断标志
}
}

}

串口的使用要对串口初始化:串口的工作方式的选择,波特率的选择,是否使用中断

无中断方式的话你得加上初始化语句。
TH1 = 0X??;
TL1 = 0X??; //根据波特率来设置相应值的。
TR1 = 1;
TMOD = 0x20;
SCON = 0X00;
还有串口语句,你得在发送过程上加循环,不然发送一个它就不会继续发送了。

while(TI==0);

TI=0;