![]() |
就是對蜂鳴器鳴叫時間進行定時,時間為=中斷時間*100*50*3 |
如果con_t1 大于等于 100*50*3(即15000)那就跳進下面的大括號里執(zhí)行里面的代碼。 |
是來看評論的![]() |
huangsantian 發(fā)表于 2023-10-22 18:51 這個中斷一次應該是0.2ms,5000次是1秒,所以3秒后,關(guān)閉中斷,停止蜂鳴。 |
1樓正解吧,這樣寫應該是為了方便修改間隔時長,因為和重載參數(shù)一起,容易在各參數(shù)調(diào)整后理解間隔時長的修改方向。 |
如果con_t1的值達到15000,則將con_t1和TR1的值重置為零。 |
上面回答的人就沒有一個有能力看看編譯出來的代碼是什么樣子的,單片機是不會計算“計算100*50*3等于15000”的,這個運算過程在編譯過程中已經(jīng)算完了,單片機只能見到15000這個數(shù)字,什么100、50、3都不是單片機要考慮的問題。 |
乘法優(yōu)先級高,先計算100*50*3等于15000,然后拿con_t1比較,執(zhí)行后邊語句 |
理解這個句塊,先要把con_t1當成計數(shù)用,就是計算定時器工作的次數(shù),但是超過限定值后,后面的程序段開始工作,先是清零con_t1,而后清零TR1這個寄存器,而這個寄存器卻是定時器1的開關(guān),當TR1=0時,定時器1停止工作。 |
這個con_t1變量是來計算蜂鳴器響的次數(shù),當超過限定值后,定時器停止工作。 |
乘法符號優(yōu)先級較高,先算100*50*3等于15000,然后用con_t1跟15000比較,cont_t1大于等于15000時執(zhí)行花括號內(nèi)的語句 |
乘法符號優(yōu)先級高,先算100*50*3等于15000,然后拿con_t1去比較,con_t1大于等于15000時執(zhí)行花括號里的語句 |
大于或等于符號,乘法符號,條件語句判斷。 |
條件cont_1大于等于15000后cont_1清零, tr1清零. |
如果cont_1大于等于15000執(zhí)行后面語句 |
這個函數(shù)是為了實現(xiàn)蜂鳴器響三秒 |
Powered by 單片機教程網(wǎng)