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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4446|回復: 0
打印 上一主題 下一主題
收起左側

單片機74LS164串入并出移位寄學習--時鐘顯示匯編程序

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

;====================================================================*
;51單片機入門程序18
;  工程名稱:  串入并出移位寄學習--時鐘顯示程序                    *
;  功能描述:   時鐘顯示程序                                       *
;  (并行輸出串行移位寄存器74LS164擴展輸出口學習)                     *
;  硬件連接:針對配合AT89S51精簡開發板(第三版本)使用               *
;  編寫日期:2009.7.4
;  編寫者:    藍柳柳                                                 *
;                                         
;====================================================================*
SDA         BIT    P0.2     ; 定義數據線引腳定義
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            ;跳轉到主程序
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  ;調用顯示程序
        ACALL    Delay_1s ;延時約一秒鐘
NEXT:
        INC      LED0     ;LED0中的數值加一
        MOV      A,LED0
        CJNE     A,#10,NEXT0   ;判斷LED0中的數值是否為10,如果不是則跳到NEXT0
        MOV      LED0,#00H     ;如果是則向下執行,將LED0中的內容清零
        INC      LED1         ;LED1中的數值加一
        MOV      A,LED1
        CJNE     A,#6,NEXT0 ;判斷LED1中的數值是否為6,如果不是則跳到NEXT0
        MOV      LED1,#00H  ;如果是則向下執行,將LED1中的內容清零

        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
; 功能描述: 將運算的數值都移位到數碼管中顯示
;===================================================
DISPLAY:
        MOV     DPTR,#TABLE
        MOV     A,LED0
        MOVC    A,@A+DPTR ;根據LED0中的數值取表中相應的數去顯示
        ACALL   SHIFT
        MOV     A,LED1
        MOVC    A,@A+DPTR ;根據LED1中的數值取表中相應的數去顯示
        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位數據依次移進74LS164芯片中
;===================================================
SHIFT:      PUSH  A              ; 進棧暫存A值
            MOV     R0,#8        ; 循環8次
            CLR     C            ;清進位標志
            CLR     SCL          ;時鐘線,先鉗位為0
LP2:        RLC     A
            MOV     SDA,C        ;向數據線送數據
            NOP
            NOP
            SETB    SCL          ;拉高時鐘線
            NOP
            NOP
            CLR     SCL          ;拉低時鐘線
            NOP
            NOP
            DJNZ    R0,LP2
            POP   A              ; 出棧恢復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        ;子程序返回指令,子程序的設計一般都是因為主程序要調用它,
               ;調用完是要返回到主程序繼續運行下一個語句的     
         END

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

使用道具 舉報

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

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 99pao成人国产永久免费视频 | 国产精品欧美日韩 | 99热免费在线 | 成人毛片网站 | a级免费观看视频 | 国产欧美一区二区三区久久 | 国产一区二区久久 | 高清一区二区三区 | 亚洲精品黄色 | 亚洲男女激情 | 亚洲在线免费观看 | 午夜爽爽男女免费观看hd | 午夜影院在线免费观看视频 | 国产精品一区二区av | 中文字幕在线播放不卡 | 不卡在线视频 | 羞羞色影院 | 99re66在线观看精品热 | 亚洲视频免费观看 | 99精品欧美一区二区三区 | 欧美激情精品久久久久久变态 | 美美女高清毛片视频免费观看 | 国产高清精品网站 | 成人国产午夜在线观看 | 欧美日韩在线一区 | 亚洲欧美激情精品一区二区 | 欧美日韩电影一区二区 | 日干夜干 | 天天射天天干 | 最新中文字幕 | 18av在线播放 | 欧美日本在线观看 | 国产成人精品999在线观看 | 精品久久久久久红码专区 | 日韩欧美专区 | 国产精品久久久久久久久久久久久 | 男人天堂社区 | 91麻豆精品国产91久久久更新资源速度超快 | 久久久夜 | 综合二区 | 在线免费观看黄色 |