找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

這個單片機(jī)程序的執(zhí)行的過程?請盡量說詳細(xì)些。

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:277539 發(fā)表于 2018-1-18 21:06 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#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;
}

有什么錯誤請指出來,謝謝!

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

使用道具 舉報

沙發(fā)
ID:213173 發(fā)表于 2018-1-19 08:43 | 只看該作者
你沒有說明你想達(dá)到什么目的,單從main函數(shù)內(nèi)容看你是用100秒的長延時控制兩個端口交替輸出低電平,但由于開了中斷,你想得到的延時實現(xiàn)不了。程序會死在while(!TF1);,另外u8 i;的賦值范圍只能是0~255,你按2000計算,永遠(yuǎn)也跳不出for循環(huán)。
回復(fù)

使用道具 舉報

板凳
ID:164602 發(fā)表于 2018-1-19 08:53 | 只看該作者
你的程序,我詳細(xì)看了,并且在我的板子上,還試過。
是不是程序卡在什么地方了?
錯誤在20行:for(i=0;i<2000;i++)
你的i變量,定義為U8,即最大只有255,而你用了2000,當(dāng)然就死在這里了。
我將它改為100,就好了;蛘吣惆阉x為unsigned int也行,這個我沒試,要等100多秒,時間太長。
回復(fù)

使用道具 舉報

地板
ID:46065 發(fā)表于 2018-1-19 11:23 | 只看該作者
P1=0xfe, P1=0x7f;交替運行,每次中斷后P1=0xf7;
看不出程序干什么用的!
回復(fù)

使用道具 舉報

5#
ID:123289 發(fā)表于 2018-1-19 12:18 | 只看該作者
無錯!打100分,鼓勵你一下。
錯誤是相對于標(biāo)準(zhǔn)才有的,無標(biāo)準(zhǔn)就無所謂錯誤了。
回復(fù)

使用道具 舉報

6#
ID:7485 發(fā)表于 2018-1-19 20:09 | 只看該作者
不知道你的程序的功能。但就程序而言,重裝初值后TF1必須清零。
                TH1=(65536-50000)/256;
                TL1=(65536-50000)%256;
                TF1=0;
                TR1=1;
                while(!TF1);
回復(fù)

使用道具 舉報

7#
ID:277882 發(fā)表于 2018-1-19 21:59 | 只看該作者
那位老鐵,重裝初值以后好像不用置零吧,他不是機(jī)器自動就置零的嘛?另外,你這個!TF1真的有毒,TF1置1的時候不是就應(yīng)該進(jìn)入中斷程序了嗎?等從中斷程序出來TF1又是零了。我看啊,你要是想隔一秒的話,不如把程序直接寫在中斷程序里面,或者寫一個標(biāo)志位也可以的嘛,檢測標(biāo)志位,等程序運行過了再清除也挺好。

評分

參與人數(shù) 1黑幣 +60 收起 理由
admin + 60 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

8#
ID:277539 發(fā)表于 2018-1-19 23:13 | 只看該作者
問題已解決,謝謝大家!
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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