久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

匯編電子鐘的設計

作者:余號敏   來源:本站原創   點擊數:  更新時間:2010年08月25日   【字體:

寫在前面: ­

    前天晚上斷網之后閑來無事忽然心血來潮想起和誰說過以我現在的水平做個時鐘沒有什么問題,就準備將它實現了。借用老師的學習板子,一直搞到凌晨2點做出了一個24小時的計數器顯示,因為沒有學過按鍵的使用方法,昨天實驗課下課后問了老師,她給出了查詢方式。昨晚搞了下,可以置數,但是不能實現0~60范圍加,只能0~99加。今天上午在老師的指導下,終于可以了,總算沒有食言啊。呵呵,下面貼出程序了。

 先來個效果圖:


        mini_second     equ     30h      ;設置0.05秒、秒、分、時的地址 ­

        second  equ     31h ­

        minute  equ     32h ­

        clock   equ     33h ­

        k1      equ     p3.2             ;設置按鍵地址,為外部中斷口int0和int1 ­

        k2      equ     p3.3 ­

­

        org     0000h ­

        ljmp    start ­

        org     000bh ­

        ljmp    t0_x                      ;使用中斷計時 ­

        org     0050h ­

start:  mov     mini_second,#00h          ;清零 ­

        mov     second,#00h ­

        mov     minute,#00h ­

        mov     clock,#00h ­

        mov     tmod,#01h                 ;置工作方式1,開定時器 ­

        mov     th0,#3ch ­

        mov     tl0,#0b0h ­

        setb    ea ­

        setb    et0 ­

        setb    tr0 ­

start1: lcall   show_led                 ;主程序跳轉程序顯示 ­

        lcall   key_d                    ;置數程序 ­

        ljmp    start1                   ;一直循環顯示 ­

t0_x: ­

        push    acc                      ;保護現場 ­

        push    psw ­

        mov     th0,#3ch                 ;置初值,這個不是很準確, ­

        mov     tl0,#0b4h                ;估計一分鐘慢個2~3秒 ­

        inc     mini_second ­

        mov     a,mini_second ­

        cjne    a,#20,ret0                ;20次為1秒,沒有20次均跳出中斷重新跳 ­

        mov     mini_second, #00h         ­

        mov     a,second ­

        add     a,#01h ­

        da      a ­

        mov     second,a ­

        cjne    a,#60h,ret0               ;1秒后出循環,每秒后秒清零,跳到分計時加1 ­

        mov     second,#00h ­

        mov     a,minute ­

        add     a,#01h                    ;分同秒 ­

        da      a ­

        mov     minute,a ­

        cjne    a,#60h,ret0 ­

        mov     minute,#00h ­

        mov     a,clock ­

        add     a,#01h ­

        da      a ­

        mov     clock,a ­

        cjne    a,#24h,ret0 ­

        mov     clock,#00h ­

ret0:   pop     psw                       ;結束保護,跳出 ­

        pop     acc ­

        reti ­

        nop ­

        nop ­

        nop ­

;======================================顯示子程序 ­

show_led: ­

           mov        a,second             ;個位秒顯示 ­

           anl        a,#0fh ­

           mov        40h,a ­

           clr        p1.5                 ;片選數碼管 ­

           clr        p1.6 ­

           setb       p1.7 ­

           mov        a,40h ­

           lcall      led_x ­

           lcall      delay ­

           mov        a,second          ;十位秒顯示 ­

           anl        a,#0f0h ­

           swap       a ­

           mov        41h,a ­

           setb       p1.5 ­

           clr        p1.6 ­

           setb       p1.7 ­

           mov        a,41h ­

           lcall      led_x ­

           lcall      delay ­

­

           mov        a,minute            ;個位分顯示 ­

           anl        a,#0fh ­

           mov        42h,a ­

           setb       p1.5 ­

           setb       p1.6 ­

           setb       p1.7 ­

           mov        a,42h ­

           lcall      led_x ­

           lcall      delay ­

           mov        a,minute             ;十位分顯示 ­

           anl        a,#0f0h ­

           swap       a ­

           mov        43h,a ­

           clr        p1.5 ­

           clr        p1.6 ­

           clr        p1.7 ­

           mov        a,43h ­

           lcall      led_x           ­

           lcall      delay ­

­

           mov        a,clock                  ;個位時顯示 ­

           anl        a,#0fh ­

           mov        44h,a ­

           clr        p1.5 ­

           setb       p1.6 ­

           clr        p1.7 ­

           mov        a,44h ­

           lcall      led_x ­

           lcall      delay ­

           mov        a,clock                  ;十位時顯示 ­

           anl        a,#0f0h ­

           swap       a ­

           mov        45h,a ­

           setb       p1.5 ­

           setb       p1.6 ­

           clr        p1.7 ­

           mov        a,45h ­

           lcall      led_x ­

           lcall      delay ­

           ret ­

­

led_x:     mov        dptr,#led_data           ­

           movc        a,@a+dptr ­

           mov         p0,a ­

           ret ­

;====================================延遲子程序 ­

delay:     mov        r7,#10 ­

de1:       mov        r6,#100             ;延時1ms多一點,因為晶振為11.0592MHZ ­

           djnz       r6,$ ­

           djnz       r7,de1 ­

           ret ­

;===================================數碼管的段選碼 ­

led_data:       db      0c0h,0f9h,0a4h,0b0h,099h,92h,82h,0f8h,80h,90h ­

;=====================================置數子程序 ­

key_d:  jnb     k1,key1 ­

        jnb     k2,key2 ­

        ret ­

key1:   mov     a,minute                ;查詢方式 ————>          分位置數 ­

        clr     c                       ;清零進位,防止干擾da和cjne指令的操作 ­

        inc     a                       ;累加器自加一  ,此為加法置數 ­

        da      a                       ;十進制處理 ­

        cjne    a, #60h, k_01           ;判斷是否為60,為60清零,跳出     ­

        mov     a,#00h ­

k_01:   mov     minute,a ­

        jnb     k1,$ ­

        ret ­

­

key2:  mov     a,clock                  ;時位 置數同上 ­

       clr     c ­

       inc     a ­

       da      a ­

       cjne    a, #24h,k_11 ­

       mov     a,#00h ­

k_11:  mov     clock,a ­

       jnb     k2,$ ­

       ret ­

  本程序如有雷同,純屬不可能 ­
    完整版的程序請從這里下載:http://www.zg4o1577.cn/ziliao/file/dzzd.rar 

   我的不夠成熟或稱之為幼稚的匯編編程,鄭文老師的獨特學習板子(顯示數碼管是p0口,片選竟然是用p1口3個I/O口接138,——!這個獨特焊接方式讓我程序寫得這么長),鄭子含老師對我置數程序的修改,才出來的程序,雖然不是什么成功,至少是一個開始,我會繼續瘋下去的。這個時鐘的弊端挺多的,比如置數的時候,會有閃屏現象,程序我會再改進的。 ­

­

­

后記:對于院系電子設計競賽我的失敗我得向我的組員道歉,雖然我知道那些所謂成功的幾組也比我們好不到哪里去(看過答辯了),但是我會繼續我們的課題,加油吧 ­

­

編譯工具:wave6000 ­

燒制工具:stc-isp(話說國產的stc公司要統一全球51市場,呵呵) ­、RS232串口

­

請大家多多指教,謝謝^ ^­

關閉窗口

相關文章

主站蜘蛛池模板: 97日韩精品 | 亚洲一卡二卡 | 国产精品久久久久久久久久久久冷 | 在线看日韩 | 永久www成人看片 | 日本小电影在线 | 日韩精品一区二区三区中文字幕 | 亚洲一区二区三区视频免费观看 | 亚洲精品三级 | 久久久久亚洲 | 欧美一级在线 | 99精品热视频 | 狠狠做六月爱婷婷综合aⅴ 国产精品视频网 | 亚洲一区二区电影在线观看 | 中文字幕国产 | 日本成人久久 | 欧美一级黄色片在线观看 | 国产激情在线 | www日韩欧美 | 性高朝久久久久久久3小时 av一区二区三区四区 | 午夜免费视频 | 亚洲高清网 | 欧洲一区在线观看 | 久久久久久久久久久高潮一区二区 | 在线视频亚洲 | 国产精品久久久久久久粉嫩 | 精品视频在线一区 | 激情五月婷婷综合 | 国产高清一区二区 | 成人免费一区二区三区牛牛 | 在线欧美一区二区 | 久婷婷| 欧美成年黄网站色视频 | 99精品视频在线观看免费播放 | 亚洲成人午夜在线 | 日韩中出| 日韩视频在线一区 | 黄色片网站在线观看 | 久久成人精品 | 日韩亚洲一区二区 | 国产日韩在线观看一区 |