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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4544|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

單片機74LS164串入并出移位寄學(xué)習(xí)--時鐘顯示匯編程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:71407 發(fā)表于 2014-12-31 14:45 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 wudawei 于 2014-12-31 14:46 編輯

;====================================================================*
;51單片機入門程序18
;  工程名稱:  串入并出移位寄學(xué)習(xí)--時鐘顯示程序                    *
;  功能描述:   時鐘顯示程序                                       *
;  (并行輸出串行移位寄存器74LS164擴展輸出口學(xué)習(xí))                     *
;  硬件連接:針對配合AT89S51精簡開發(fā)板(第三版本)使用               *
;  編寫日期:2009.7.4
;  編寫者:    藍(lán)柳柳                                                 *
;                                         
;====================================================================*
SDA         BIT    P0.2     ; 定義數(shù)據(jù)線引腳定義
SCL         BIT    P0.3     ; 定義時鐘線引腳定義
LED0    EQU     30H   ;定義顯示碼存儲空間
LED1    EQU     31H
LED2    EQU     32H
LED3    EQU     33H
LED4    EQU     34H
LED5    EQU     35H
LED6    EQU     36H
LED7    EQU     37H
;---------------------------------------
ORG         0000H           ;主程序入口
AJMP        MAIN            ;跳轉(zhuǎn)到主程序
ORG         0100H           ;主程序在ROM中存放位置
;===============主程序=====================
MAIN:   MOV  LED0,#00H    ;對定義的顯示碼存儲空間付初值
        MOV  LED1,#00H
        MOV  LED2,#0FFH
        MOV  LED3,#00H
        MOV  LED4,#00H
        MOV  LED5,#0FFH
        MOV  LED6,#00H
        MOV  LED7,#00H
        ACALL    DISPLAY  ;調(diào)用顯示程序
        ACALL    Delay_1s ;延時約一秒鐘
NEXT:
        INC      LED0     ;LED0中的數(shù)值加一
        MOV      A,LED0
        CJNE     A,#10,NEXT0   ;判斷LED0中的數(shù)值是否為10,如果不是則跳到NEXT0
        MOV      LED0,#00H     ;如果是則向下執(zhí)行,將LED0中的內(nèi)容清零
        INC      LED1         ;LED1中的數(shù)值加一
        MOV      A,LED1
        CJNE     A,#6,NEXT0 ;判斷LED1中的數(shù)值是否為6,如果不是則跳到NEXT0
        MOV      LED1,#00H  ;如果是則向下執(zhí)行,將LED1中的內(nèi)容清零

        INC      LED3
        MOV      A,LED3
        CJNE     A,#10,NEXT0
        MOV      LED3,#00H
        INC      LED4
        MOV      A,LED4
        CJNE     A,#6,NEXT0
        MOV      LED4,#00H
        INC      LED6
        MOV      A,LED6
        CJNE     A,#10,NEXT0
        MOV      LED6,#00H
        INC      LED7
        MOV      A,LED7
        CJNE     A,#6,NEXT0
        MOV      LED7,#00H

        AJMP     MAIN
        RET
NEXT0:  ACALL    DISPLAY
        ACALL    Delay_1s
        AJMP     NEXT
        RET
;===================================================
; 子程序名: DISPLAY
; 功能描述: 將運算的數(shù)值都移位到數(shù)碼管中顯示
;===================================================
DISPLAY:
        MOV     DPTR,#TABLE
        MOV     A,LED0
        MOVC    A,@A+DPTR ;根據(jù)LED0中的數(shù)值取表中相應(yīng)的數(shù)去顯示
        ACALL   SHIFT
        MOV     A,LED1
        MOVC    A,@A+DPTR ;根據(jù)LED1中的數(shù)值取表中相應(yīng)的數(shù)去顯示
        ACALL   SHIFT
        MOV     A,LED2
        MOVC    A,@A+DPTR
        ACALL   SHIFT
        MOV     A,LED3
        MOVC    A,@A+DPTR
        ACALL   SHIFT
        MOV     A,LED4
        MOVC    A,@A+DPTR
        ACALL   SHIFT
        MOV     A,LED5
        MOVC    A,@A+DPTR
        ACALL   SHIFT
        MOV     A,LED6
        MOVC    A,@A+DPTR
        ACALL   SHIFT
        MOV     A,LED7
        MOVC    A,@A+DPTR
        ACALL   SHIFT
        RET
;---------顯示代碼表---------
TABLE: DB    11H,0D7H,32H,92H,0D4H,98H,18H,0D3H,10H,90H   ;0,1,2,3,4,5,6,7,8,9,
       DB    50H,1CH,39H,16H,38H,78H, 0FFH,0FEH,0EFH      ;10,11,12,13,14,15,滅,-
;===================================================
; 子程序名: SHIFT
; 功能描述: 移位程序,將8位數(shù)據(jù)依次移進74LS164芯片中
;===================================================
SHIFT:      PUSH  A              ; 進棧暫存A值
            MOV     R0,#8        ; 循環(huán)8次
            CLR     C            ;清進位標(biāo)志
            CLR     SCL          ;時鐘線,先鉗位為0
LP2:        RLC     A
            MOV     SDA,C        ;向數(shù)據(jù)線送數(shù)據(jù)
            NOP
            NOP
            SETB    SCL          ;拉高時鐘線
            NOP
            NOP
            CLR     SCL          ;拉低時鐘線
            NOP
            NOP
            DJNZ    R0,LP2
            POP   A              ; 出棧恢復(fù)A值
            RET
;===================================================
; 子程序名: Delay_1s
; 功能描述: 延時約一秒鐘
;===================================================
Delay_1s:   
            
         MOV   R1,#10
      D: MOV   R2,#200
      T: MOV   R3,#248
         DJNZ  R3,$
         DJNZ  R2,T
         DJNZ  R1,D
         RET        ;子程序返回指令,子程序的設(shè)計一般都是因為主程序要調(diào)用它,
               ;調(diào)用完是要返回到主程序繼續(xù)運行下一個語句的     
         END

     
;補充說明:
;1.用外部中斷0來編寫程序時,硬件連接一定要考慮到單片機的第12引腳
;2.外部中斷0和定時器/計數(shù)器0的中斷入口地址分別是:0003H和000BH
;在應(yīng)用到這兩個內(nèi)容時要在程序開始時標(biāo)出
   
             希望各位的指導(dǎo)與賜教!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩

相關(guān)帖子

回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕第九页 | 国产精品毛片一区二区在线看 | 自拍视频在线观看 | 中文字幕在线视频精品 | 亚洲毛片 | 色资源站 | 亚洲一区在线播放 | 天天操夜夜骑 | 国产盗摄视频 | 日韩一区二区三区视频在线播放 | 日韩性生活网 | 亚洲精品免费看 | 日本国产高清 | 九九福利 | 国产在线精品一区二区三区 | 国产精品久久午夜夜伦鲁鲁 | 久久久91精品国产一区二区三区 | 五月精品视频 | 欧洲成人免费视频 | 日韩电影免费在线观看中文字幕 | 成人精品一区二区三区中文字幕 | 国产东北一级毛片 | 天天操夜夜骑 | 伊人伊人伊人 | 99在线精品视频 | 99色综合 | 精品在线一区 | 欧美aⅴ | 九色在线 | 成人深夜福利 | 国产精品久久久久久久久久不蜜臀 | 国产激情一区二区三区 | 国产视频一区二区三区四区五区 | 久久久999精品 | 中文字幕在线观看一区二区 | 亚洲人成在线观看 | 亚洲一区二区三 | 中文在线播放 | 久在线视频 | 久久国产精品99久久久大便 | 日韩中文字幕视频 |