欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
這個單片機程序的執(zhí)行的過程?請盡量說詳細些。
[打印本頁]
作者:
51stm
時間:
2018-1-18 21:06
標題:
這個單片機程序的執(zhí)行的過程?請盡量說詳細些。
#include <reg52.h>
typedef unsigned char u8;
void delay_1s();
void main()
{
EA=1;
ET1=1;
TMOD=0x10;
while(1)
{
P1=0xfe;
delay_1s();
P1=0x7f;
delay_1s();
}
}
void delay_1s()
{
u8 i;
for(i=0;i<2000;i++)
{
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
TR1=1;
while(!TF1);
}
}
void int_0()interrupt 3
{
P1=0xf7;
}
有什么錯誤請指出來,謝謝!
作者:
wulin
時間:
2018-1-19 08:43
你沒有說明你想達到什么目的,單從main函數內容看你是用100秒的長延時控制兩個端口交替輸出低電平,但由于開了中斷,你想得到的延時實現不了。程序會死在while(!TF1);,另外u8 i;的賦值范圍只能是0~255,你按2000計算,永遠也跳不出for循環(huán)。
作者:
HC6800-ES-V2.0
時間:
2018-1-19 08:53
你的程序,我詳細看了,并且在我的板子上,還試過。
是不是程序卡在什么地方了?
錯誤在20行:for(i=0;i<2000;i++)
你的i變量,定義為U8,即最大只有255,而你用了2000,當然就死在這里了。
我將它改為100,就好了。或者你把它定義為unsigned int也行,這個我沒試,要等100多秒,時間太長。
作者:
wxxl
時間:
2018-1-19 11:23
P1=0xfe, P1=0x7f;交替運行,每次中斷后P1=0xf7;
看不出程序干什么用的!
作者:
yzwzfyz
時間:
2018-1-19 12:18
無錯!打100分,鼓勵你一下。
錯誤是相對于標準才有的,無標準就無所謂錯誤了。
作者:
ahshmj
時間:
2018-1-19 20:09
不知道你的程序的功能。但就程序而言,重裝初值后TF1必須清零。
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
TF1=0;
TR1=1;
while(!TF1);
作者:
聽說不能用真名
時間:
2018-1-19 21:59
那位老鐵,重裝初值以后好像不用置零吧,他不是機器自動就置零的嘛?另外,你這個!TF1真的有毒,TF1置1的時候不是就應該進入中斷程序了嗎?等從中斷程序出來TF1又是零了。我看啊,你要是想隔一秒的話,不如把程序直接寫在中斷程序里面,或者寫一個標志位也可以的嘛,檢測標志位,等程序運行過了再清除也挺好。
作者:
51stm
時間:
2018-1-19 23:13
問題已解決,謝謝大家!
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1