欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
如何在單片機外部中斷0函數中使用定時器,求修改所給程序。
[打印本頁]
作者:
wubaqian
時間:
2018-10-20 21:37
標題:
如何在單片機外部中斷0函數中使用定時器,求修改所給程序。
//目前程序的問題,第一個延時可以成功,但是外部中斷0中就無法使用延時程序(精確延時)了。
單片機源程序如下:
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
//uchar led1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar x[]={0xff,0xfd};
uchar y[]={0xaa,0x55};
uchar z[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
uint tt,m,a,temp;
delay(uint z)
{
tt=0;
TH0=(65536-18432)/256;
TL0=(65536-18432)%256;
EA=1;
ET0=1;
TMOD=0X01;//選擇定時器0中斷方式
TR0=1;//啟動定時器0;
while(1)//進入循環,同時開始定時,50ms后,tt=20
{
if(tt==z)//1s后進入if語句
{
return 0;
}
}
}
void main()
{
EA=1;
EX0=1;
EX1=1;
IT0=0;//水平
IT1=1;//跳沿
PX0=0;
PX1=1;//設置優先級
while(1)
{
for(m=0;m<10;m++)
{
P1=x[m%2];
delay(50);
a=1;
delay(100);
a=2;
}
}
}
void xyz() interrupt 1
{
TH0=(65536-18432)/256;
TL0=(65536-18432)%256;
tt++;
}
void zero() interrupt 2
{
for(m=1;m<10;m++)
{
temp=P1;
P1=y[m%2];
delay(50);
a=1;
P1=temp;
}
}
復制代碼
作者:
wubaqian
時間:
2018-10-21 17:02
沒人回答嗎?
作者:
wubaqian
時間:
2018-10-21 17:03
尷尬了
作者:
mengzhixinheng
時間:
2018-10-22 09:24
如果是延時不準的話,將延時用的定時器優先級設置為最高,其他中斷都比他低就可以了
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1