找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3036|回复: 0
打印 上一主题 下一主题
收起左侧

8421定时器程序案例汇编语言

[复制链接]
跳转到指定楼层
楼主
ID:75926 发表于 2015-4-10 18:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  这是一个非常经典的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.


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表