欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

單片機(jī)死活不進(jìn)中斷 求分析原因

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:558225 發(fā)表于 2020-1-21 10:37 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
/*****************************************
*函數(shù)名:delay_us(u16 i)
**作用*:較高精度的延時(shí),延時(shí)范圍1~65536us
**傳入?yún)?shù):i,無(wú)符號(hào)十六位
**傳出參數(shù):無(wú)
*****************************************/
void delay_us(u16 i)//定時(shí)范圍1~65536us
{

  AUXR &= 0x7F;  //定時(shí)器時(shí)鐘12T模式
TMOD &= 0xF0;  //設(shè)置定時(shí)器模式
TMOD |= 0x01;  //設(shè)置定時(shí)器模式
TL0 = (65536-i)&0x00ff;  //設(shè)置定時(shí)初值
TH0 = (65536-i)>>8;  //設(shè)置定時(shí)初值
TF0 = 0;  //清除TF0標(biāo)志
a=1;
  EA = 1;
  ET0 = 1;                        //使能定時(shí)器0中斷
TR0 = 1;                        //定時(shí)器0開(kāi)始計(jì)時(shí)
while(a);
}
/*****************************************
函數(shù)名: Timer0Callback()  interrupt 1
作用 :定時(shí)器T0的回調(diào)函數(shù)
傳入:無(wú)
傳出:無(wú)
*****************************************/
void Timer0Callback ()   interrupt 1 using 1
{
led=~led;
a=0;
}

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

使用道具 舉報(bào)

沙發(fā)
ID:558225 發(fā)表于 2020-1-21 10:39 | 只看該作者
單片機(jī)型號(hào)為IAP15F2K61S2
回復(fù)

使用道具 舉報(bào)

板凳
ID:378182 發(fā)表于 2020-1-21 11:55 | 只看該作者
主程序main在哪里?
回復(fù)

使用道具 舉報(bào)

地板
ID:213173 發(fā)表于 2020-1-21 15:38 | 只看該作者
19980813 發(fā)表于 2020-1-21 10:39
單片機(jī)型號(hào)為IAP15F2K61S2

IAP15F2K61S2端口模式需要初始化,程序中連main入口都沒(méi)有這么運(yùn)行?給你補(bǔ)充完整。
  1. #include <STC15F2K60S2.H>

  2. sbit led=P1^0;

  3. unsigned int a,b;

  4. void Timer0Init()                //10毫秒@11.0592MHz
  5. {
  6.         AUXR &= 0x7F;                //定時(shí)器時(shí)鐘12T模式
  7.         TMOD &= 0xF0;                //設(shè)置定時(shí)器模式
  8.         TL0 = 0x00;                        //設(shè)置定時(shí)初值
  9.         TH0 = 0xDC;                        //設(shè)置定時(shí)初值
  10.         TF0 = 0;                                //清除TF0標(biāo)志
  11.         TR0 = 1;                                //定時(shí)器0開(kāi)始計(jì)時(shí)
  12.         EA = 1;
  13.         ET0 = 1;  
  14. }

  15. void main()
  16. {
  17.         P0M0 = 0x00;
  18.         P0M1 = 0x00;
  19.         P1M0 = 0x00;
  20.         P1M1 = 0x00;
  21.         P2M0 = 0x00;
  22.         P2M1 = 0x00;
  23.         P3M0 = 0x00;
  24.         P3M1 = 0x00;
  25.         P4M0 = 0x00;
  26.         P4M1 = 0x00;
  27.         P5M0 = 0x00;
  28.         P5M1 = 0x00;
  29.         P6M0 = 0x00;
  30.         P6M1 = 0x00;
  31.         P7M0 = 0x00;
  32.         P7M1 = 0x00;
  33.         Timer0Init();
  34.         b=50;//延時(shí)時(shí)間=b*10ms
  35.         while(1);
  36. }

  37. void Timer0Callback() interrupt 1 using 1
  38. {
  39.         a++;
  40.         if(a>=b)
  41.         {
  42.                 a=0;
  43.                 led=~led;//閃爍頻率1Hz
  44.         }
  45. }
復(fù)制代碼

回復(fù)

使用道具 舉報(bào)

5#
ID:93224 發(fā)表于 2020-1-21 16:59 | 只看該作者
你在哪里調(diào)用的delay_us函數(shù)
回復(fù)

使用道具 舉報(bào)

6#
ID:93224 發(fā)表于 2020-1-21 17:00 | 只看該作者
你這個(gè)中斷函數(shù)寫的有問(wèn)題,你這個(gè)只能進(jìn)一次中斷,沒(méi)有在終端里面對(duì)定時(shí)器賦初值,具體可以咨詢我1014461948@1qq.com
回復(fù)

使用道具 舉報(bào)

7#
ID:195446 發(fā)表于 2020-1-21 17:42 | 只看該作者
延時(shí)函數(shù)里a=1;while(a);執(zhí)行到這里就死在這了。
回復(fù)

使用道具 舉報(bào)

8#
ID:394148 發(fā)表于 2020-1-21 20:24 | 只看該作者
建議可以直接在STC那個(gè)燒寫軟件中,直接復(fù)制中斷或者定時(shí)器程序,我有有時(shí)候就是寄存器稍微配置弄錯(cuò)了,或者明明想開(kāi)中斷0,但是敲的是中斷1的,或者對(duì)照著數(shù)據(jù)手冊(cè),好好看一看,應(yīng)該是那個(gè)寄存器弄錯(cuò)了,我有時(shí)候調(diào)了一天,就是有的位應(yīng)該寫1但是給的0
回復(fù)

使用道具 舉報(bào)

9#
ID:558225 發(fā)表于 2020-1-21 20:59 來(lái)自觸屏版 | 只看該作者
有主程序   主程序調(diào)用初始化函數(shù)
回復(fù)

使用道具 舉報(bào)

10#
ID:558225 發(fā)表于 2020-1-21 21:00 來(lái)自觸屏版 | 只看該作者
znz43a 發(fā)表于 2020-1-21 11:55
主程序main在哪里?

主程序在另一個(gè)頁(yè)面里   主程序調(diào)用初始化函數(shù)
回復(fù)

使用道具 舉報(bào)

11#
ID:558225 發(fā)表于 2020-1-21 21:04 來(lái)自觸屏版 | 只看該作者
有沒(méi)有可能是while里的標(biāo)志識(shí)別不了
回復(fù)

使用道具 舉報(bào)

12#
ID:558225 發(fā)表于 2020-1-21 23:08 | 只看該作者
調(diào)試發(fā)現(xiàn)在while 里出不來(lái)但是為什么呢
難道while的優(yōu)先級(jí)還沒(méi)中斷高?
但是不應(yīng)該呀
回復(fù)

使用道具 舉報(bào)

13#
ID:558225 發(fā)表于 2020-1-21 23:56 來(lái)自觸屏版 | 只看該作者
mffhxa 發(fā)表于 2020-1-21 17:42
延時(shí)函數(shù)里a=1;while(a);執(zhí)行到這里就死在這了。

調(diào)試發(fā)現(xiàn)就是死在這里了,但是為什么
回復(fù)

使用道具 舉報(bào)

14#
ID:326783 發(fā)表于 2020-1-22 14:27 | 只看該作者
你開(kāi)總中斷了么?
回復(fù)

使用道具 舉報(bào)

15#
ID:207421 發(fā)表于 2020-1-22 15:53 | 只看該作者
1. 16位要在中斷里面重賦值
2. 你這函數(shù)弄不了
3. IO模式也沒(méi)設(shè)置
4. 重寫吧
回復(fù)

使用道具 舉報(bào)

16#
ID:235200 發(fā)表于 2020-1-22 18:20 | 只看該作者
請(qǐng)別人看程序,有些需要完整的程序,如中斷初始化設(shè)置,中斷程序的寫法,上面程序好象在delay_us中設(shè)置了定時(shí)計(jì)數(shù)器,主程序是否調(diào)用它,是否有另外的初始化程序,不得而知
回復(fù)

使用道具 舉報(bào)

17#
ID:558225 發(fā)表于 2020-1-23 14:12 | 只看該作者
找到原因了,分頁(yè)里有個(gè)相同的回調(diào)函數(shù)被調(diào)用了,編譯器沒(méi)提示
回復(fù)

使用道具 舉報(bào)

18#
無(wú)效樓層,該帖已經(jīng)被刪除

本版積分規(guī)則

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

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

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