日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]曾在某個(gè)論壇上看過這樣一句話——給每個(gè)模塊都分配一個(gè)時(shí)間,這樣才能寫好匯編。當(dāng)時(shí)覺著有些道理,卻不能很深地體會(huì)。記得剛學(xué)單片機(jī)匯編的時(shí)候,印象最深的莫過于循環(huán)點(diǎn)亮一排led.。先點(diǎn)亮一個(gè)、延時(shí)、

曾在某個(gè)論壇上看過這樣一句話——給每個(gè)模塊都分配一個(gè)時(shí)間,這樣才能寫好匯編。

當(dāng)時(shí)覺著有些道理,卻不能很深地體會(huì)。

記得剛學(xué)單片機(jī)匯編的時(shí)候,印象最深的莫過于循環(huán)點(diǎn)亮一排led.。先點(diǎn)亮一個(gè)、延時(shí)、計(jì)數(shù)值不為零則移位(寄存器)點(diǎn)亮下一個(gè)......十分類似于c中的

while(n--){

//...led=1;

delay_ms(500);

}

請注意‘延時(shí)’,在這段時(shí)間內(nèi)單片機(jī)不可以做其它事。如果此時(shí)要檢測一個(gè)按鍵是否按下,按鍵會(huì)顯得十分不靈活。當(dāng)然可以用中斷的方式檢測按鍵(硬件消抖),然而事實(shí)上,當(dāng)系統(tǒng)比較‘龐大’時(shí),中斷的資源是十分寶貴的,不到急需的時(shí)候最好別使用。

為了讓mcu能在led延時(shí)期間做其他事,可以使用查詢的方式判斷l(xiāng)ed是否需要切換,比如開啟一個(gè)定時(shí)器,判斷計(jì)數(shù)值是否>=規(guī)定的延時(shí)值,相等,則點(diǎn)亮下一個(gè)led;不等,則退出,讓單片機(jī)做其它事(檢測按鍵)。事實(shí)上,這樣做可以解決問題,但同時(shí)帶來一大堆麻煩:定時(shí)器的數(shù)量可能不夠用(主程序中有多處使用定時(shí)器)、需要設(shè)定一大堆標(biāo)志位....

我想,應(yīng)該這樣做。

1、點(diǎn)亮led和按鍵讀取分別定義成兩個(gè)模塊(本來就是兩個(gè)模塊:-))

2、在每個(gè)模塊的入口處定義一個(gè)計(jì)數(shù)寄存器。這個(gè)寄存器的計(jì)數(shù)方式及作用是這樣的:

(仍以點(diǎn)亮led為例) 每隔10ms,計(jì)數(shù)寄存器+1。當(dāng)計(jì)數(shù)寄存器的值>=50,計(jì)數(shù)值清零,點(diǎn)亮下一個(gè)led;計(jì)數(shù)值不為零,退出。

3、開啟一個(gè)定時(shí)器,并允許中斷,每次50us。

4、最后,定義一個(gè)時(shí)間管理 子程序。使用變量sys_slice,用于從中斷中獲取10ms的計(jì)數(shù)值。

主體思路是這樣。貌似不夠清晰(詞不達(dá)意真痛苦),所以用‘完整’的匯編代碼再敘述一遍。

1、系統(tǒng)要求:循環(huán)點(diǎn)亮led(若干)、檢測按鍵(有軟件消抖功能)

2、偽代碼

r_sys_slice equ 0x10 ;系統(tǒng)時(shí)間片

r_sw_cyc_cnt equ 0x11 ;按鍵檢測周期

r_led_cyc_cnt equ 0x12 ;led點(diǎn)亮?xí)r間

org 0

jmp sys_init

org 8 ;定時(shí)器中斷入口

jmp timer0_isev

org 0x30

sys_init:

call ...

...

main: ;主程序

call ck_sw

call flash_led

call sys_time

jmp main

;========================================================

; timer0中斷服務(wù)程序

;入口 無(timer0初始化函數(shù)未給出)

;出口 r_sys_slice

;

; 用于系統(tǒng)計(jì)時(shí),每50us,r_sys_slice+=1

;========================================================

timer0_isev:

push

bclr interrupt_flag ;清中斷標(biāo)志

mov a,#256-50 ;定時(shí)初值初值

mov time,a

inc r_sys_slice

pop

reti

;========================================================

; 系統(tǒng)時(shí)間片

;入口 r_sys_slice

;出口 r_led_cyc_cnt、r_sw_cyc_cnt

;

; 確定時(shí)間基準(zhǔn)10ms=50us*200

;========================================================

sys_time:

if(r_sys_slice>=200){

r_sys_slice=0;

r_led_cyc_cnt++;

r_sw_cyc_cnt++;

}

ret

;========================================================

; 按鍵檢測

;入口 r_sw_cyc_cnt

;出口 無

;

; 每50ms檢測一次按鍵

;========================================================

ck_sw:

if(r_sw_cyc_cnt>=5){

r_sw_cyc_cnt=0;

;check sw

;....

}

ret

;========================================================

; 循環(huán)點(diǎn)亮led

;入口 r_led_cyc_cnt

;出口 ...

;

; 每個(gè)led亮500ms

;========================================================

flash_led:

if(r_led_cyc_cnt>=50){

r_led_cyc_cnt=0;

;light next led

}

ret

end

;---------------------------------------------------------

這樣寫完后,除滿足點(diǎn)亮led的同時(shí)有效檢測按鍵,還便于擴(kuò)展其它功能。且可以認(rèn)為每個(gè)模塊都是實(shí)時(shí)運(yùn)行的。

如果,編譯環(huán)境允許,將每個(gè)模塊放在一個(gè)單獨(dú)的文件中,大大提高程序的可讀性。

擴(kuò)展閱讀:

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

中國 上海,2025年8月28日——全球領(lǐng)先的智能傳感和發(fā)射器解決方案供應(yīng)商艾邁斯歐司朗(SIX:AMS)今日宣布,其全新UV-C LED在輻射滅菌領(lǐng)域取得重大技術(shù)突破,并獲得評估認(rèn)可。

關(guān)鍵字: LED 發(fā)射器 光電半導(dǎo)體

在LED照明技術(shù)向高能效、低電磁干擾(EMI)方向演進(jìn)的過程中,電流模式控制與動(dòng)態(tài)負(fù)載調(diào)整算法的協(xié)同優(yōu)化成為突破技術(shù)瓶頸的核心路徑。本文將從控制架構(gòu)創(chuàng)新、動(dòng)態(tài)負(fù)載補(bǔ)償機(jī)制及EMI抑制策略三個(gè)維度,揭示新一代LED驅(qū)動(dòng)器的...

關(guān)鍵字: LED 動(dòng)態(tài)負(fù)載調(diào)整算法 EMI

在全球倡導(dǎo)節(jié)能減排的大背景下,家電產(chǎn)品的能耗問題日益受到關(guān)注。電視機(jī)作為家庭中使用頻率較高的電器之一,其能耗的降低對于節(jié)約能源和減少碳排放具有重要意義。LED 驅(qū)動(dòng)技術(shù)作為影響電視機(jī)能耗的關(guān)鍵因素,正不斷發(fā)展和創(chuàng)新,為實(shí)...

關(guān)鍵字: 驅(qū)動(dòng)技術(shù) 能耗 LED

LED是一種能發(fā)光的半導(dǎo)體電子元件,這種電子元件早期只能發(fā)出低光度的紅光,隨著技術(shù)的不斷進(jìn)步,現(xiàn)在已發(fā)展到能發(fā)出可見光、紅外線及紫外線的程度,光度也有了很大的提高。

關(guān)鍵字: LED

PCB設(shè)計(jì)在EMI抑制中起著關(guān)鍵作用。合理的布局布線能夠有效減少信號的電磁輻射和相互干擾。首先,應(yīng)將功率電路和控制電路進(jìn)行物理隔離,避免功率電路中的大電流、高電壓信號對控制電路造成干擾。功率器件和電感等高頻器件應(yīng)盡量靠近...

關(guān)鍵字: LED 開關(guān)電源

為確保太陽能路燈的穩(wěn)定工作,建議使用硅酮密封將太陽能路燈組件的接線固定在支架上。在連接路燈部件的線路時(shí),必須遵循正確的順序,以防止正負(fù)連接顛倒導(dǎo)致的短路問題。此外,太陽能路燈燈桿底部的接線應(yīng)采用適當(dāng)?shù)拿芊庋b置或硅膠進(jìn)行密...

關(guān)鍵字: LED 路燈

在我們家,WTW已經(jīng)運(yùn)行了14年了。它是一種非連接(不在線)的通風(fēng)機(jī),從房子外面吸收新鮮空氣,經(jīng)過過濾后空運(yùn)到房子里。新鮮的環(huán)境空氣是用從房子里大多數(shù)房間取出的空氣預(yù)熱的。再加熱的能量是通過熱交換器從流出的“臟”空氣中獲...

關(guān)鍵字: Zigbee LED 傳感器

中國 上海,2025年8月12日——全球領(lǐng)先的智能傳感和發(fā)射器解決方案供應(yīng)商艾邁斯歐司朗(SIX:AMS)今日宣布,使用新一代OSTAR? Projection Power LED為緊湊型投影系統(tǒng)乃至未來的抬頭顯示器(H...

關(guān)鍵字: 顯示器 LED 座艙

Aug. 6, 2025 ---- 根據(jù)TrendForce集邦咨詢最新調(diào)查,因國際形勢變化以及中國相關(guān)政策的推動(dòng),2025年上半年全球電視品牌出貨量達(dá)9,250萬臺(tái),年增2%。由于品牌普遍提前出貨,下半年旺季可能面臨壓...

關(guān)鍵字: LED OLED 電視

艾邁斯歐司朗新一代中功率LED為原始設(shè)備制造商(OEM)提供面向未來的超高效、長壽命及節(jié)能的解決方案——成為燈槽、線條燈與筒燈等商業(yè)照明裝置的最優(yōu)選擇。除本次新品外,艾邁斯歐司朗還推出另一系列新款LED,實(shí)現(xiàn)超高光效,完...

關(guān)鍵字: LED 發(fā)射器 嵌入式
關(guān)閉