熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
|
發(fā)布時(shí)間: 2019-6-13 21:11
正文摘要:第一個(gè)問題:圖一中的“INT0”是什么干用的,還有它是哪來的,這個(gè)程序并沒有“sbit INT0=xxx”。 第二個(gè)問題:圖二為什么在中斷函數(shù)中要加上“EX=0 …… EX=1”?如果不加會(huì)怎么樣? 我想diy個(gè)手電 ... |
溝里郭嘉 發(fā)表于 2019-6-14 22:53 第一個(gè)是INT0的地址,很多里面用的是sfr,第二個(gè)是INT0所作用的引腳 |
|
1 INT0頭文件里有了,也就是庫里已經(jīng)給你寫好了; 2 中斷的開關(guān),開的時(shí)候進(jìn)中斷(滿足條件),關(guān)的時(shí)候不進(jìn)中斷(滿足條件);中斷里寫了是因?yàn)椴蛔尦绦蛟谥袛嗬锏臅r(shí)候就再一次進(jìn)中斷; 用占空比會(huì)比較好一點(diǎn);控制亮度比較得心應(yīng)手。 |
| 1 INT0頭文件里定義了,也就是庫里有了; |
aiwenxue999 發(fā)表于 2019-6-14 08:39 求教一下,我發(fā)現(xiàn)reg51.h里面,寫的是sbit INT0=0xB2,reg52.h里面,寫的是sbit INT0=P3^2,這是什么意思? |
|
樓主對(duì)C語言和51單片機(jī)的理解還不夠啊。INT0的概念純粹是C語言的知識(shí),是為了在程序中操縱P3.2管腳時(shí),使用的別稱。除了能控制管腳輸出信號(hào),還可以配合控制寄存器和控制位,做單片機(jī)的設(shè)置工作,就像樓上給的資料那樣。比如控制這個(gè)管腳是在收到下降沿信號(hào)的時(shí)候產(chǎn)生中斷,還是遇到低電平的時(shí)候產(chǎn)生中斷。 EX0是替代51單片機(jī)中的中斷控制器(寄存器地址:0xA8)中的控制外部中斷0使能的一個(gè)控制位(位地址:0xA8),用來控制當(dāng)外部中斷信號(hào)產(chǎn)生的時(shí)候,系統(tǒng)是否還響應(yīng)這個(gè)中斷。EX=0,意味著即使外部已經(jīng)產(chǎn)生了中斷信號(hào),但系統(tǒng)不響應(yīng),不會(huì)進(jìn)到中斷處理程序中去處理。 建議樓主有時(shí)間的話,多看看單片機(jī)原理的書。 |
|
典型的外部中斷0按鍵處理程序: EX0=0 <>延時(shí)30毫秒 <>等待按鍵松開 EX0=1 就是說先關(guān)了外部中斷0,等按鍵穩(wěn)定后,再等按鍵松開 以防止按鍵按下時(shí)震動(dòng)余波引起的誤觸發(fā) 你的程序沒有考慮到按鍵震動(dòng)的余波,所以會(huì)多次觸發(fā)外部中斷0。 但是這個(gè)半成品程序的外部中斷0內(nèi)容僅僅是不斷將LED設(shè)置為點(diǎn)亮的狀態(tài),即使多次觸發(fā)也不會(huì)影響,所以目前看不出來什么;如果想要在中斷函數(shù)里面準(zhǔn)確記錄按鍵按下次數(shù)的話就會(huì)出問題的。 |
|
①、INT0是在<reg51.h>中定義了的,INT0上面的一杠代表:為低電平觸發(fā)。 ②、看此鏈接:http://www.raoushi.com/bbs/dpj-140317-1.html |
|
第一個(gè)問題:圖一中的“INT0”是什么干用的,還有它是哪來的,這個(gè)程序并沒有“sbit INT0=xxx”。 答:INT0的問題需要看硬件的設(shè)計(jì)目的。sbit INT0=xxx 是有的,只是你不知道,樓上的朋友告訴你了。 第二個(gè)問題:圖二為什么在中斷函數(shù)中要加上“EX=0 …… EX=1”?如果不加會(huì)怎么樣? 答:都可以,需要根據(jù)整個(gè)系統(tǒng)的設(shè)計(jì)來決定,就目前你的水平,還不能理解這句話。慢慢來,功夫到了,你會(huì)應(yīng)用自如的。這里提兩個(gè)問題供你思考一下: 1、當(dāng)你進(jìn)入中斷服務(wù)程序后,會(huì)發(fā)生其它中斷? 2、你在執(zhí)行中斷服務(wù)程序時(shí),怕不怕被其它中斷打擾? 如果怕打擾,可以將可能打擾你的那個(gè)中斷禁止,待你處理完成后,再開放它,是不是一個(gè)方法呢? “EX=0 …… EX=1” :常用來禁止某個(gè)中斷,發(fā)生于某段程序運(yùn)行的地方。 |
|
1、INT0 在頭文件中定義了 2、就是初始化外部中斷。默認(rèn)并不觸發(fā)外部中斷。 3、實(shí)現(xiàn)變檔,最好是使用PWM驅(qū)動(dòng)。 |
Powered by 單片機(jī)教程網(wǎng)