本帖最后由 烈焰123 于 2016-5-7 21:09 编辑
谁能看看为什么protues
仿真结果中virtual terminal显示的数字和数据SZ[10]={0XA0,0X0B,0X39,0X0A,0X36,0X80,0X00,0X00,0X00,0X00};中的不一样啊。
程序如下:
#include<reg51.h>
#define tiMEth 250 //9600Hz,11.0592MHz
#define uint unsigned int
#define uchar unsigned char
unsigned char code SZ[10]={0XA0,0X0B,0X39,0X0A,0X36,0X80,0X00,0X00,0X00,0X00};
sbit DATA=P3^1; //向液晶输出串行数据
sbit p=PSW^0; /* p位定义为PSW 寄存器的第0位,即奇偶校验位*/
void Delay10ms(unsigned int c); //误差 0us
void csh();
void Delay200ms (void) /* 延时大约200ms函数*/
{ unsigned char m,n;
for(m=0;m<250;m++);
for(n=0;n<250;n++);
}
void csh(void)
{
PCON=0x00; //波特率不加倍
TMOD=0x20;
TCON=0x40;
SCON=0xC0;//方式1只发送,不接收*D0
TH1=0XFD; //计数器初始值设置,
TL1=0XFD;
TR1=1; //打开计数器
}
void main()
{
unsigned char i;
csh();
while(1) /*循环*/
{
for(i=0;i<10;i++) /*发送10次码*/
{
send(SZ); /*发送数据*/
Delay200ms (); /*每隔500ms发送一次数据*/
}
}
}
for(i=0; i<10; i++)
{
SBUF =SZ; //将要发送的数据放入到发送寄存器
while(TI==0); //等待发送数据完成
TI=0; //清除发送完成标志位
}
Delay10ms(50); //延时一下再发
while(1);
}
}
-
一周热门 更多>