程序已经贴出来,怎样改,才能在串口助手上每1.5S发送一次,0到50的数据,希望大侠指教,朋友帮忙,小弟在此谢过了。。
/*预处理命令*/
#include //包含单片机寄存器的头文件
#define uchar unsigned char
#define uint unsigned int
uchar num,a,num1;
uint i;
uchar code table[50]={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x10,0x11,0x12,0x13,0x14,0X15,0X16,0x17,0X18,0x19,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,
0x38,0x39,0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x50};
/*
********************************************************************************
** 函数名称 : main(void)
** 函数功能 : 主函数
********************************************************************************
*/
void timer_2(void)
{
TMOD=0x21;
TH0 =(65536-50000)/256;
TL0 =(65536-50000)%256;
TR0=1;
ET0=1;
EA=1;
}
void main()
{
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
TR1=1;
REN=1; //串口初始化
SM0=0;
SM1=1;
EA=1; //开启总中断
ES=1;
while(1)
{
if(num==1) //判断是否有串口数据的传送
{
// ET0=1;
// ES=0;
if(num1==30)
{
for(i=0;i<50;i++)
{
ES=0;
num=0;
SBUF=table[i]; //发送数据a到SBUF,即将单片机的数据发送到计算机
while(!TI);
TI=0;
ES=1;
TR0=0;
}
}
}
}
}
void timer_1() interrupt 2
{
TR0=1;
TH0 =(65536-50000)/256;
TL0 =(65536-50000)%256;
num1++;
if(num1==30)
{
num1=0;
}
}
void ser() interrupt 4
{
RI=0;
P2=SBUF; //接收数据SBUF,即将计算机的数据接收。
a=SBUF;
num=1;
}
0
|
|
|
|