找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5710|回復(fù): 32
收起左側(cè)

AT89C51單片機可以有另個主程序嗎?

  [復(fù)制鏈接]
ID:336971 發(fā)表于 2018-5-29 10:40 | 顯示全部樓層 |閱讀模式
在網(wǎng)上找了兩個比較復(fù)雜的程序,更改難度很大 ,但是設(shè)計的要求要一起使用,但是使用的時間段上是可以分開的。可以設(shè)置某個時間段運行主程序A,哪個時間段運行主程序B嗎?
回復(fù)

使用道具 舉報

ID:213173 發(fā)表于 2018-5-29 12:00 | 顯示全部樓層
主程序main()只能是唯一的,除了中斷程序其他程序都是在main()內(nèi)運行,如果兩個互不關(guān)聯(lián)的程序功能完全可以在主程序中分時調(diào)度運行。不過這種方法對初學(xué)者同樣具有難度。
回復(fù)

使用道具 舉報

ID:340519 發(fā)表于 2018-5-29 13:23 | 顯示全部樓層
如果是條件觸發(fā)的話可以采用的中斷方式
回復(fù)

使用道具 舉報

ID:340849 發(fā)表于 2018-5-29 20:01 | 顯示全部樓層
main函數(shù)只能有一個
回復(fù)

使用道具 舉報

ID:331575 發(fā)表于 2018-5-29 22:51 | 顯示全部樓層
可以,你要是用定時器中斷可以達到你的目的,前提你需要算好A程序什么時間運算,B程序什么時間運算,希望可以給你點思路
回復(fù)

使用道具 舉報

ID:123289 發(fā)表于 2018-5-29 22:56 | 顯示全部樓層
用定時器做一個時間中斷,中斷服務(wù)程序中將標(biāo)記位變量B求反后退出。
主程序中:
當(dāng)B=1時執(zhí)行你的1號程序。
當(dāng)B=0時執(zhí)行你的2號程序。
回復(fù)

使用道具 舉報

ID:111634 發(fā)表于 2018-5-30 06:32 | 顯示全部樓層
c51中,主程序main()只能是唯一的。但可分條件運行2個不同的主體函數(shù),此時,該2個主體函數(shù)都不是主函數(shù)(名稱而已)。
回復(fù)

使用道具 舉報

ID:341070 發(fā)表于 2018-5-30 07:17 | 顯示全部樓層
運用搶占中斷優(yōu)先級啊。
回復(fù)

使用道具 舉報

ID:341279 發(fā)表于 2018-5-30 12:08 | 顯示全部樓層
怕是不行吧?
回復(fù)

使用道具 舉報

ID:186734 發(fā)表于 2018-5-30 16:20 | 顯示全部樓層
焊兩個單片機一起用得了
回復(fù)

使用道具 舉報

ID:341584 發(fā)表于 2018-5-30 18:15 | 顯示全部樓層
主程序肯定是只能有一個
回復(fù)

使用道具 舉報

ID:341584 發(fā)表于 2018-5-30 18:16 | 顯示全部樓層
主程序是肯定只能有一個的
回復(fù)

使用道具 舉報

ID:341626 發(fā)表于 2018-5-30 19:05 | 顯示全部樓層
只有一個程序
回復(fù)

使用道具 舉報

ID:341638 發(fā)表于 2018-5-30 19:16 | 顯示全部樓層
不可以
回復(fù)

使用道具 舉報

ID:341716 發(fā)表于 2018-5-30 20:56 | 顯示全部樓層
只能有一個主函數(shù)呦
回復(fù)

使用道具 舉報

ID:223470 發(fā)表于 2018-5-30 21:12 | 顯示全部樓層
一個工程必定是從main開始執(zhí)行的,不過你可以通過設(shè)計定時器,通過設(shè)定定時次數(shù)來確定不同的執(zhí)行時間
舉例就是
中斷服務(wù)函數(shù)
{
  if(time==100)
   {
     中斷事件;
   }
   time=0;
}else
time++;
如此。
回復(fù)

使用道具 舉報

ID:341747 發(fā)表于 2018-5-30 21:14 | 顯示全部樓層
可以的,在主程序中設(shè)置一下時間,用switch應(yīng)該可以吧
回復(fù)

使用道具 舉報

ID:341786 發(fā)表于 2018-5-30 22:02 | 顯示全部樓層
主程序main()只能是唯一的,除了中斷程序其他程序都是在main()內(nèi)運行,如果兩個互不關(guān)聯(lián)的程序功能完全可以在主程序中分時調(diào)度運行。不過這種方法對初學(xué)者同樣具有難度。
回復(fù)

使用道具 舉報

ID:243798 發(fā)表于 2018-5-30 22:17 | 顯示全部樓層
可以用定時器,中斷時在兩個循環(huán)中切換。
回復(fù)

使用道具 舉報

ID:341842 發(fā)表于 2018-5-30 23:17 | 顯示全部樓層
如果A,B程序中都同時都啟用了同個中斷或定時器,那就需要調(diào)整修改,那比較麻煩,如果其中一個程序只是用了幾個函數(shù)實現(xiàn)了功能,完全可以復(fù)制到另一個程序中,進行調(diào)用即可
回復(fù)

使用道具 舉報

ID:342037 發(fā)表于 2018-5-31 11:29 | 顯示全部樓層
定時器中斷
回復(fù)

使用道具 舉報

ID:342110 發(fā)表于 2018-5-31 13:50 | 顯示全部樓層
主程序main()只能有一個,但依據(jù)你的情況,可以將你所說的主程序設(shè)置為兩個子函數(shù)或進程,在主函數(shù)中實現(xiàn)分時調(diào)用
回復(fù)

使用道具 舉報

ID:342119 發(fā)表于 2018-5-31 13:52 | 顯示全部樓層
只有一個主循環(huán)
回復(fù)

使用道具 舉報

ID:325374 發(fā)表于 2018-5-31 14:30 | 顯示全部樓層
主程序必須是唯一的
回復(fù)

使用道具 舉報

ID:339629 發(fā)表于 2018-5-31 15:05 | 顯示全部樓層
中斷程序其他程序都是在main()內(nèi)運行
回復(fù)

使用道具 舉報

ID:278954 發(fā)表于 2018-5-31 15:59 | 顯示全部樓層
主程序main()只能有一個呀,你可以將兩個程序包含到主程序運行就可以的了
回復(fù)

使用道具 舉報

ID:278954 發(fā)表于 2018-5-31 16:00 | 顯示全部樓層
主程序main()只能是一個的呀,你可以將兩個程序合在主程序里運行的
回復(fù)

使用道具 舉報

ID:342371 發(fā)表于 2018-5-31 18:19 | 顯示全部樓層
主程序main()只能是唯一
回復(fù)

使用道具 舉報

ID:390775 發(fā)表于 2018-9-4 17:34 | 顯示全部樓層
主程序  只能有一個  你可以  在一個主程序里 添加 函數(shù) (就是把另一個程序 寫成一個函數(shù) 插入到  主程序里 )
加油
回復(fù)

使用道具 舉報

ID:393670 發(fā)表于 2018-9-4 18:40 | 顯示全部樓層

main函數(shù)只能有一個
回復(fù)

使用道具 舉報

ID:393690 發(fā)表于 2018-9-4 20:04 | 顯示全部樓層
主程序應(yīng)該只有一個吧
回復(fù)

使用道具 舉報

ID:137736 發(fā)表于 2018-9-4 20:37 | 顯示全部樓層
用定時器中斷和標(biāo)志變量進行切換
回復(fù)

使用道具 舉報

ID:375161 發(fā)表于 2018-9-4 21:58 | 顯示全部樓層
main函數(shù)基本上在哪都只能有一個。用中斷,或者可以加個條件判斷,在兩個程序之間切換。
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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