找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2069|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

如何在單片機外部中斷0函數(shù)中使用定時器,求修改所給程序。

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:404619 發(fā)表于 2018-10-20 21:37 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
//目前程序的問題,第一個延時可以成功,但是外部中斷0中就無法使用延時程序(精確延時)了。

單片機源程序如下:
  1. #include<reg51.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. //uchar led1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  5. uchar x[]={0xff,0xfd};
  6. uchar y[]={0xaa,0x55};
  7. uchar z[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
  8. uint tt,m,a,temp;
  9. delay(uint z)
  10. {
  11.         tt=0;      
  12.         TH0=(65536-18432)/256;
  13.         TL0=(65536-18432)%256;
  14.         EA=1;
  15.         ET0=1;
  16.         TMOD=0X01;//選擇定時器0中斷方式
  17.         TR0=1;//啟動定時器0;
  18.         while(1)//進入循環(huán),同時開始定時,50ms后,tt=20
  19.         {
  20.         if(tt==z)//1s后進入if語句
  21.                 {
  22.                 return 0;
  23.                 }   
  24.         }
  25. }
  26. void main()
  27. {
  28.         EA=1;
  29.         EX0=1;
  30.         EX1=1;
  31.         IT0=0;//水平
  32.         IT1=1;//跳沿
  33.         PX0=0;
  34.         PX1=1;//設(shè)置優(yōu)先級
  35.         while(1)
  36.         {
  37.                 for(m=0;m<10;m++)
  38.                 {
  39.                 P1=x[m%2];
  40.                  delay(50);
  41.                 a=1;
  42.                 delay(100);
  43.                 a=2;
  44.                 }      
  45.         }      
  46. }
  47. void xyz() interrupt 1
  48. {
  49.         TH0=(65536-18432)/256;
  50.         TL0=(65536-18432)%256;
  51.         tt++;
  52. }
  53. void zero() interrupt 2
  54. {
  55.                 for(m=1;m<10;m++)
  56.                 {
  57.                 temp=P1;
  58.                 P1=y[m%2];
  59.                  delay(50);
  60.                 a=1;
  61.                 P1=temp;
  62.                 }      
  63. }
復(fù)制代碼



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:404619 發(fā)表于 2018-10-21 17:02 | 只看該作者
沒人回答嗎?
回復(fù)

使用道具 舉報

板凳
ID:404619 發(fā)表于 2018-10-21 17:03 | 只看該作者
尷尬了
回復(fù)

使用道具 舉報

地板
ID:89515 發(fā)表于 2018-10-22 09:24 | 只看該作者
如果是延時不準的話,將延時用的定時器優(yōu)先級設(shè)置為最高,其他中斷都比他低就可以了
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表