#include<reg52.h>
。。。。。
char Display_0[]={0xEE,0xB1,0x00,0x00,0x00,0xFF,0xFC,0xFF,0xFF};
void init()
{
SCON=0x51; //串口模式1,8bit数据
TMOD=0x21; //定时器0,1,工作方式1
TH0=(65536-45872)/256;
TL0=(65536-45872)%256; //定时器赋值
TH1=0xFD;
TL1=0xFD;
EA=1; //开总中断
ET0=1; //开定时器1中断
ES=1; //开串口中断
PS=1;
flag=0;
num=0;
TR0=1; //开定时器1
}
void delay_ms(unsigned int xms) //延时,xms
{
unsigned int i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void uart_send(char *p, int length) //发送指令
{
int i;
for(i=0;i<length;i++,p++)
{
SBUF=*p; //发送字符
while(!TI); //等待发送结束
TI=0; //软件清零
}
}
void main()
{
init();
delay_ms(2000);
while(1)
{
if(flag==1)
{
flag=0;
if(P0^2==0)
{
uart_send(Display_0,9);
delay_ms(100);
}
if(P0^3==0)
{
P1=0xFE;
}
}
}
void timer0() interrupt 1 //定时中断
{
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
num++;
if(num==2) //100ms
{
num=0;
flag=1;
}
}
void serial (void) interrupt 4 using 1
{
if(RI) //检测中断标志
{
RI = 0; //清除中断标志
tmd =SBUF;
}
}
不知道为什么,执行uart_send(Display_0,9);后,就什么功能都没有了,如果把这句删除,就一切正常,恳请大家帮我解决一下,谢谢。
此帖出自
小平头技术问答
一周热门 更多>