定时器中断与查询

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

定时器查询
#include "design.h"


void initial();

void pulse8()
{ unsigned char i;
for(i=8;i>0;i--)
{
CLK=1;
CLK=0;
}
}

void main()
{
unsigned char j,k,temp;
unsigned int i=6666;
long l;

initial();
TMOD=0X21;
TH0=(65536-100*1000/2)/256;
TL0=(65536-100*1000/2)%256;
TR0=1;


k=0;

while(1)
{

XBYTE[DISP_area+0]=DIGITTAB[k];
XBYTE[DISP_area+1]=DIGITTAB[k];
XBYTE[DISP_area+2]=DIGITTAB[k];
XBYTE[DISP_area+3]=DIGITTAB[k];

for (j=0; j<4; j++)
{
temp=XBYTE[DISP_area+j];
pulse8();
}
ST=1; ST=0;

for (l=0; l<30000; l++);
{
while (!TF0) ;
TF0=0;
TH0=(65536-100*1000/2)/256;
TL0=(65536-100*1000/2)%256;
}

k++; if (k>9) k=0;
}

}
中断
#include "design.h"

unsigned char kn;
unsigned int ln;

void initial();

void pulse8()
{ unsigned char i;
for(i=8;i>0;i--)
{
CLK=1;
CLK=0;
}
}
void TO_servise() interrupt 1
{ unsigned char j,temp;

TH0=(65536-100*1000/2)/256;
TL0=(65536-100*1000/2)%256;

ln++;
if(ln<30000)
return ;

ln=0;
XBYTE[DISP_area+0]=DIGITTAB[kn];
XBYTE[DISP_area+1]=DIGITTAB[kn];
XBYTE[DISP_area+2]=DIGITTAB[kn];
XBYTE[DISP_area+3]=DIGITTAB[kn];

for (j=0; j<4; j++)
{
temp=XBYTE[DISP_area+j];
pulse8();
}
ST=1; ST=0;



kn++; if (kn>9) kn=0;
}

void main()
{

initial();

TMOD=0x21;
TH0=(65536-100*1000/2)/256;
TL0=(65536-100*1000/2)%256;
TR0=1;
ET0=1; IE=0x02;
EA=1; IE=0x82;



while (1);
}
通讯查询
#include "design.h"



void initial();

void pulse8()
{ unsigned char i;
for(i=8;i>0;i--)
{
CLK=1;
CLK=0;
}
}


void main()

{
unsigned char j,k,temp;

unsigned int i=dispdata;
long l;




SCON=0x50;
TMOD=0X21;
PCON=0x80;
//TH1=TL1=256-fosc/192/baud_rate;
TH1=TL1=(uchar)((float)256-(float)Fosc*1000000/((float)192*9600));
TR1=1;

for(l=0;l<10000;l++);
RI=0 ;


while(1)
{


for (j=0; j<4; j++)
{
temp=XBYTE[DISP_area+j];
pulse8();
}
ST=1; ST=0;



while(!RI);RI=0;
k=SBUF;
XBYTE[DISP_area+0]=DIGITTAB[k];
while(!RI);RI=0;
k=SBUF;
XBYTE[DISP_area+1]=DIGITTAB[k];
while(!RI);RI=0;
k=SBUF;
XBYTE[DISP_area+2]=DIGITTAB[k];
while(!RI);RI=0;
k=SBUF;
XBYTE[DISP_area+3]=DIGITTAB[k];
}
}
中断
#include "design.h"

unsigned char accp;

void initial();

void pulse8()
{ unsigned char i;
for(i=8;i>0;i--)
{
CLK=1;
CLK=0;
}
}

void UART_service() interrupt 4
{
if(RI)
{
RI=0;
accp=SBUF;

SBUF=9-accp;
}
else
{
TI=0;
}
}

void main()

{
unsigned char j,k,temp;
long l;



SCON=0x50;
TMOD=0X21;
PCON=0x80;
//TH1=TL1=256-fosc/192/baud_rate;
TH1=TL1=(uchar)((float)256-(float)Fosc*1000000/((float)

192*9600));
TR1=1;
ES=1; EA=1;

for(l=0;l<10000;l++);
RI=0 ;


while(1)
{


for (j=0; j<4; j++)
{
temp=XBYTE[DISP_area+j];
pulse8();
}
ST=1; ST=0;


k=accp;

XBYTE[DISP_area+0]=DIGITTAB[k];
XBYTE[DISP_area+1]=DIGITTAB[k];
XBYTE[DISP_area+2]=DIGITTAB[k];
XBYTE[DISP_area+3]=DIGITTAB[k];
}
}

相关文档
最新文档