标题: 8421定时器程序案例汇编语言 [打印本页]

作者: xiaos    时间: 2015-4-10 18:31
标题: 8421定时器程序案例汇编语言
  这是一个非常经典的8421定时案例

;两段8421码,用作计时,P1.3输出,P1.0清零,P1.1启动,P1.2为每秒闪烁一次。
;程序代码如下:

                  ORG 0003H        ;

                  LCALL FUWEI;
                  ORG 000BH;


FUWEI:      MOV P1,#0FFH     ;
                  MOV P2,#0FFH     ;

;************读两位8421码并合并**********


                CLR P2.5         ;准备读十位
                CLR A            ;累加器清零
                MOV A,P2         ;读取数据
                CPL A            ;A内容取反
                ANL A,#0FH       ;屏蔽高四位
                MOV B,#0AH       ;把0A送入B
                MUL AB           ;把数据变为十位
                MOV 21H,A        ;保存数据
                SETB P2.5        ;

                CLR P2.4         ;准备读个位
                CLR A            ;累加器清零
                MOV A,P2         ;读取数据
                CPL A              ;A内容取反
                ANL A,#0FH       ;屏蔽高四位
                ADD A,21H        ;合并十位和个位
                SETB P2.4        ;
                 CJNE A,#0,BAOCHUN  ;
                 AJMP FUWEI      ;

BAOCHUN:  MOV 22H,A         ;保存BCD码

                 
                 
;*************启动按键S1******************

S1:       JNB P1.1,QIDONG     ;
              JNB P1.0,FUWEI    ;清零键按下转复位
              AJMP FUWEI;

;**********启动及输出程序*****************

QIDONG:  JNB P1.1,QIDONG       ;
               CLR P1.3         ;启动输出
               LCALL YANSHI     ;转延时
BCD:        CPL P1.2         ;
               DJNZ 22H,YANSHI  ;
               AJMP FUWEI        ;

;************延时1秒子程序***************

YANSHI:  MOV R0,#20       ;
              MOV TMOD,#10H    ;设定为定时方式1
              MOV TH1,#3CH     ;装入定时初值高位
              MOV TL1,#0B0H    ;装入定时初值低位,定时时间为50ms.
              SETB TR1         ;
LP1:     JNB P1.0,FUWEI   ;
             JBC TF1,LP2      ;50ms时间到就转
              SJMP LP1         ;50ms时间没到继续等待
LP2:       MOV TH1,#3CH     ;重装初值
               MOV TL1,#0B0H    ;重装初值
                     DJNZ R0,LP1      ;把R0内容减1不等于0转
                   AJMP BCD         ;
                   END.







欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1