定时器中断与查询
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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];
}
}