找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机-多任务编程 汇编语言编程

[复制链接]
跳转到指定楼层
楼主
ID:75926 发表于 2015-4-4 02:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

;================================================================
LedPort               Equ           P2
SegPort               Equ           P0
Timer1                Equ           0FB23H
Sec400Chg             Bit           30H
Sec10Chg              Bit           31H
SecChg                Bit           32H
MinChg                Bit           33H
Sec400                Data          34H
Sec10                 Data          35H
Second                Data          36H
Temp                  Data          37H
Relieve               Data          38H
Temp1                 Data          39H
;================================================================
                      Org           0000H
                      Ajmp          Main
;================================================================
InitSysT:             Mov           Relieve,#50
           Mov           TMod,#00100000B
                      Mov           TL1,#Low(Timer1)
                      Mov           TH1,#High(Timer1)
                      Setb          EA
                      Setb          ET1
                      Setb          TR1
                     
                      Mov           Sec400,#40
                      Mov           Sec10,#10
                      Mov           Second,#60
                      Clr           Sec400Chg
                      Clr           Sec10Chg
                      Clr           SecChg
                      Clr           MinChg
                      Ret
;================================================================
                      Org           001BH
                      Mov           TL1,#Low(Timer1)
                      Mov           TH1,#High(TImer1)
                      AJmp          CTC1Entry
                     
CTC1Entry:            Setb          Sec400Chg
                      Djnz          Sec400,T1IntOut
                      Mov           Sec400,#40
                     
                      Setb          Sec10Chg
                      Inc           Sec10HEX
                      Djnz          Sec10,T1IntOut
                      Mov           Sec10,#10
                     
                      Setb          SecChg
                      Djnz          Second,T1IntOut
                      Mov           Second,#60
                      Setb          MinChg
                     
T1IntOut:             RetI            
;================================================================
Delay:                Mov           R6,#40
Delay1:               Mov           R7,#0
Delay2:               Djnz          R7,Delay2
                      Djnz          R6,Delay1
                      Ret
;================================================================  
SegDisplay:           Mov           Dptr,#Table
SegLoop:              
                      Movc          A,@A+Dptr
                      Mov           SegPort,A
                      Ret
;----------------------------------------------------------------
Table:                DB            11000000B
                      DB            11111001B
                      DB            10100100B
                      DB            10110000B
                      DB            10011001B
                      DB            10010010B
                      DB            10000010B
                      DB            11011000B
                      DB            10000000B
                      DB            10010000B
;================================================================
Main:                 MOv           Temp1,#11111110B
                      Mov           Temp,#0
                      Acall         InitSysT
                     
MainLoop0:            Jbc           Sec400Chg,DoSec400
MainLoop1:            Jbc           Sec10Chg,DoSec10
MainLoop2:            Jbc           SecChg,DoSecond
MainLoop3:            Jbc           MinChg,DoMinute
                      Ajmp          MainLoop0
DoSec400:
                      Sjmp          MainLoop1
DoSec10:
                      Mov           A,Temp
                      Acall         SegDisplay
                      Djnz          Relieve,L3
                      Mov           Relieve,#50
                      Inc           Temp
                      Mov           A,Temp
                      Cjne          A,#9,MainLoop2
                      Mov           Temp,#0                     
L3:                   Sjmp          MainLoop2
DoSecond:                           
                      Mov           LedPort,Temp1
                      Mov           A,Temp1
                      Rl            A
                      Mov           Temp1,A
                      Sjmp          MainLoop3
DoMinute:
                      Sjmp          MainLoop0                     
;================================================================
                      End


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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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