新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 單片機(jī)匯編程序設(shè)計之時間片

        單片機(jī)匯編程序設(shè)計之時間片

        作者: 時間:2013-05-08 來源:網(wǎng)絡(luò) 收藏

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

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

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

        ;出口 r_sys_slice

        ;

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

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

        timer0_isev:

        push

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

        mov a,#256-50 ;定時初值初值

        mov time,a

        inc r_sys_slice

        pop

        reti

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

        ; 系統(tǒng)

        ;入口 r_sys_slice

        ;出口 r_led_cyc_cnt、r_sw_cyc_cnt

        ;

        ; 確定時間基準(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

        ;出口 ...

        ;

        ; 每個led亮500ms

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

        flash_led:

        if(r_led_cyc_cnt>=50){

        r_led_cyc_cnt=0;

        ;light next led

        }

        ret

        end

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

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

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


        上一頁 1 2 下一頁

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 新邵县| 芷江| 金川县| 合川市| 邯郸县| 峨眉山市| 霍州市| 汤原县| 上栗县| 平度市| 巴彦淖尔市| 洪江市| 黑河市| 花莲市| 濮阳县| 梅河口市| 巩留县| 商河县| 宜君县| 呼和浩特市| 新竹县| 七台河市| 青神县| 长治市| 高青县| 定远县| 全椒县| 松阳县| 天等县| 米易县| 雅安市| 谷城县| 宜章县| 利津县| 辽中县| 黄龙县| 福清市| 凤台县| 乌什县| 民县| 托克托县|