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

QQ登錄

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

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

關(guān)于單片機(jī)中斷的理解

[復(fù)制鏈接]
ID:1037824 發(fā)表于 2022-7-5 16:42 | 顯示全部樓層 |閱讀模式
就是51單片機(jī)學(xué)也學(xué)完了但是對(duì)于中斷的了解真的就是一點(diǎn)都不好,我一直疑惑很多問(wèn)題,中斷程序是由計(jì)算機(jī)直接控制在遇到相應(yīng)的觸發(fā)點(diǎn)時(shí)就會(huì)直接進(jìn)入,但是這個(gè)觸發(fā)點(diǎn)該怎么設(shè)置呢,大多數(shù)文件里面寫的都是進(jìn)入到中斷入口地址之后就會(huì)自己執(zhí)行中斷,我很迷惑啊,就是計(jì)算機(jī)找到中斷入口地址之后,他確實(shí)進(jìn)入中斷程序,但他要怎么判斷該不該執(zhí)行這個(gè)中斷程序,什么時(shí)候執(zhí)行,這個(gè)時(shí)候就會(huì)有電平觸發(fā)和脈沖觸發(fā)等多種觸發(fā)方式,但是這個(gè)電平和脈沖到底是中斷程序之外的還是中斷程序里面的東西呢?
還有就是如果要自己要怎么設(shè)置進(jìn)入中斷(開(kāi)中斷這些我都知道哈),如果這個(gè)真的就是自己設(shè)置了,那中斷程序和子程序的區(qū)別又是什么呢?
又出現(xiàn)一個(gè)新的問(wèn)題就是如何區(qū)分外部中斷和內(nèi)部中斷,從我的角度看用到定時(shí)器的都屬于內(nèi)部中斷
然而這個(gè)好像是不對(duì)的
回復(fù)

使用道具 舉報(bào)

ID:1037824 發(fā)表于 2022-7-5 16:46 | 顯示全部樓層
我不知道該怎么敘述大家會(huì)清楚一點(diǎn)
回復(fù)

使用道具 舉報(bào)

ID:401564 發(fā)表于 2022-7-5 23:43 | 顯示全部樓層
你不理解這些,是因?yàn)槟銢](méi)有認(rèn)真看書(shū)中斷,就是字面上的意思:中斷
中斷的執(zhí)行條件:中斷條件開(kāi)啟和中斷條件達(dá)成,比如外部中斷,你要開(kāi)啟外部中斷和設(shè)定外部中斷的的觸發(fā)條件(高電平或者低電平,又或者是上升沿下降之類的)
中斷的執(zhí)行過(guò)程:
1,現(xiàn)場(chǎng)保護(hù),把一些重要信息和PC(程序計(jì)數(shù)器)保存

2,去執(zhí)行中斷程序,當(dāng)前執(zhí)行的指令停止,優(yōu)先去執(zhí)行中斷程序
3恢復(fù)現(xiàn)場(chǎng),中斷返回,把1步驟的保存的恢復(fù)
至于你的問(wèn)題,基本都是沒(méi)有認(rèn)真看書(shū)的結(jié)果
比如"但是這個(gè)觸發(fā)點(diǎn)該怎么設(shè)置呢",這不是很簡(jiǎn)單嗎?你要什么中斷的就設(shè)置什么中斷呀,條件達(dá)成了就進(jìn)入了呀
比如定時(shí)器中斷,那么,你就是要開(kāi)啟全局中斷,開(kāi)啟定時(shí)器中斷,設(shè)定定時(shí)器,開(kāi)啟定時(shí)器,定時(shí)器時(shí)間到了,就會(huì)進(jìn)入中斷了
還有"但他要怎么判斷該不該執(zhí)行這個(gè)中斷程序",根本就不存在這個(gè)問(wèn)題,中斷有中斷入口就是中斷被觸發(fā)了才會(huì)進(jìn)入這個(gè)入口的,不存在該不該執(zhí)行
"中斷程序和子程序的區(qū)別又是什么呢?",中斷就是中斷的程序,中斷被觸發(fā)了才執(zhí)行的程序,子程序是調(diào)用就執(zhí)行的程序
"又出現(xiàn)一個(gè)新的問(wèn)題就是如何區(qū)分外部中斷和內(nèi)部中斷",外部中斷指的是某個(gè)IO端口的中斷,不是說(shuō)外面來(lái)的中斷,它并不是和定時(shí)器中斷是相反關(guān)系
它的名字叫外部中斷,不是說(shuō)它就是外面來(lái)的中斷,它沒(méi)一個(gè)反義詞"內(nèi)部中斷",它名字叫外部中斷而已,明白沒(méi)

回復(fù)

使用道具 舉報(bào)

ID:205485 發(fā)表于 2022-7-6 09:30 | 顯示全部樓層
大概能理解你的意思,剛接觸中斷的時(shí)候,最大的困擾是為什么要用到它,為什么總是從主程序跳出來(lái),進(jìn)入interrupt,把interrupt里要執(zhí)行的內(nèi)容直接寫進(jìn)程序不就行了嗎。
回復(fù)

使用道具 舉報(bào)

ID:451718 發(fā)表于 2022-7-6 20:56 | 顯示全部樓層
對(duì)于單片機(jī)來(lái)說(shuō),中斷可以理解為整個(gè)系統(tǒng)的節(jié)拍。尤其是內(nèi)部中斷,可以可以理解為整個(gè)系統(tǒng)的脈搏。每隔一段時(shí)間,固定去做一些特定的事,比如可以用來(lái)計(jì)時(shí)。

如果再深入一點(diǎn)點(diǎn),如果你計(jì)時(shí)的是毫秒,那么可以把奇數(shù)毫秒值的時(shí)刻去做事件1,偶數(shù)毫秒值的時(shí)刻去做事件2,這樣,你的系統(tǒng)就可以同時(shí)模擬處理兩個(gè)線程。 當(dāng)然,你也可以用3取模,余0做一件事,余1做一件事,余2再做一件事。只要你的芯片夠快,你可以竟可能的細(xì)分下去。

開(kāi)始接觸單片機(jī)的時(shí)候,總喜歡把外部中斷來(lái)響應(yīng)按鍵,其實(shí)這是沒(méi)有必要的。也是對(duì)系統(tǒng)的理解誤區(qū)。在一個(gè)10毫秒的定時(shí)器中斷中,去判斷按鍵是否有按下,累計(jì)5次連續(xù)判斷為真,就可以認(rèn)定按鍵被按下了。然后給出返回值,這也是中斷的一種應(yīng)用。

總之,多看看例程,中斷這個(gè)概念才會(huì)慢慢的被理解。

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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