欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
單片機程序無法進入中斷是什么問題?
[打印本頁]
作者:
a超人
時間:
2018-11-7 07:54
標題:
單片機程序無法進入中斷是什么問題?
#include<reg52.h>
sfr P3M0=0XB2;
sfr P3M1=0XB1;
sbit P_out=P3^6;
unsigned int cnt=0;
unsigned char flag1s=0;
void main()
{
//unsigned char sec=0;
EA=1;
TMOD=0X01; //定時1ms
TH0=0XFC;
TL0=0X67;
ET0=1;
TR0=1;
while(1)
{
if(flag1s==1)
{
flag1s=0;
P_out=~P_out; //繼電器動作
}
}
}
void interrupttime0() interrupt 1 // 中斷函數
{
TH0=0XFC;
TL0=0X67;
cnt++;
if(cnt>=1000)
{
cnt=0;
flag1s=1;
}
}
復制代碼
作者:
a超人
時間:
2018-11-7 09:49
是這個芯片 中斷無法進去
4.png
(75.36 KB, 下載次數: 33)
下載附件
2018-11-7 09:49 上傳
作者:
cuihaodianzi
時間:
2018-11-7 12:38
用這個試一下
#include <reg52.h>
sfr P3M0=0XB2;
sfr P3M1=0XB1;
sfr AUXR = 0x8E;
sbit P_out=P3^6;
unsigned int cnt=0;
unsigned char flag1s=0;
void main()
{
//unsigned char sec=0;
EA=1;
AUXR &= 0x7F;
TMOD &= 0xF0;
TMOD |= 0x01;
TH0 = 0xB8;
TL0 = 0x00;
TF0 = 0;
TR0 = 1;
while(1)
{
if(flag1s==1)
{
flag1s=0;
P_out=~P_out; //繼電器動作
P0=0;
}
}
}
void interrupttime0() interrupt 1 // 中斷函數
{
TH0 = 0xB8;
TL0 = 0x00;
cnt++;
if(cnt>=1000)
{
cnt=0;
flag1s=1;
}
}
作者:
飛云居士
時間:
2018-11-7 13:22
少開了管總中斷的控制位EA=1
作者:
a超人
時間:
2018-11-7 13:23
cuihaodianzi 發表于 2018-11-7 12:38
用這個試一下
#include
問題已經 解決了 謝謝你
作者:
飛云居士
時間:
2018-11-7 13:23
main()程序里,少個 EA= 1的語句。
void main()
{
TMOD = 0x01; //set timer0 as mode1 (16-bit)
TL0 = T1MS; //initial timer0 low byte
TH0 = T1MS >> 8; //initial timer0 high byte
TR0 = 1; //timer0 start running
ET0 = 1; //enable timer0 interrupt
EA = 1; //open global interrupt switch
count = 0; //initial counter
while (1); //loop
}
作者:
a超人
時間:
2018-11-7 13:24
cuihaodianzi 發表于 2018-11-7 12:38
用這個試一下
#include
是我自己馬虎 少寫了一段代碼
作者:
xuyaqi
時間:
2018-11-7 13:36
你怎么知道不能進入中斷,我試可以呀。
作者:
ahshmj
時間:
2018-11-7 14:17
程序都正常,按你的晶振,輸出繼電器應該是0.5秒閉合0.5秒斷開(這么快繼電器受不了的,你也沒法用繼電器控制其他設備啊!)。
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1