Chinaunix首页 | 论坛 | 博客
  • 博客访问: 188456
  • 博文数量: 54
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2018
  • 用 户 组: 普通用户
  • 注册时间: 2013-03-31 23:14
文章存档

2014年(2)

2013年(52)

分类: 嵌入式

2013-05-06 19:11:36

     定时器。 
ORG 0000H ;定时效果基本一致(时间10分钟总长相等)
 AJMP  START
 ORG 000BH
 LJMP TIME
 ORG  0030H
START:MOV TMOD,#01H
 MOV TH0,#3CH
 MOV TL0,#0B0H
 MOV IP,#02H
 MOV IE,#82H
 SETB TR0
 MOV H,#23
 MOV M,#59
 MOV S,#58 ;R2未用
 MOV R6,#0                    ;中断20次的变量
MAIN: MOV R4,#0 ;主程序
 MOV B,#10                    ;实现g【0-7】的赋值
 MOV A,H    ;管0-1
 DIV AB
 MOV TIME0,A
 MOV TIME1,B
 MOV TIME2,#10
 MOV B,#10                    ;管3-4
 MOV A,M    
 DIV AB
 MOV TIME3,A
 MOV TIME4,B
 MOV TIME5,#10
 MOV B,#10                    ;管6-7
 MOV A,S    
 DIV AB
 MOV TIME6,A
 MOV TIME7,B
 MOV R5,TIME0        ;八管显示程序段
 LCALL OUTPUT
 MOV R5,TIME1
 LCALL OUTPUT
 MOV R5,TIME2
 LCALL OUTPUT
   MOV R5,TIME3
 LCALL OUTPUT
 MOV R5,TIME4
 LCALL OUTPUT
 MOV R5,TIME5
 LCALL OUTPUT
 MOV R5,TIME6
 LCALL OUTPUT
 MOV R5,TIME7
 LCALL OUTPUT  
 LJMP MAIN  
OUTPUT:SETB P3.4   ;显示程序,L0=1
 MOV A,R5   ;已经改变通过给R5喂值实现调用效果
 MOV DPTR,#DM   ;关键问题dm[g[i]]中i的变化控制
 MOVC A,@A+DPTR
 MOV P1,A
 CLR P3.4                     ;L0=0
 SETB P3.5                    ;L1=1
 MOV A,R4
 MOV DPTR,#WM
 MOVC A,@A+DPTR
 MOV P1,A
 CLR P3.5 ;P3.5=0
LCALL DELAY
      MOV P1,#00H
 INC R4
 RET
TIME: MOV TH0,#3CH ;中断程序
 MOV TL0,#0B0H
 INC R6
 CJNE R6,#20,OUT   ;J=60
 MOV R6,#0
 INC S                         ;S++
 MOV A,S
 CJNE A,#60,OUT ;S=60
 MOV S,#0
 INC M
 MOV A,M
 CJNE A,#60,OUT   ;M
 MOV M,#0
 INC H   ;H
 MOV A,H
 CJNE A,#24,OUT
 MOV H,#0
OUT:  RETI   
DM:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40H
WM:DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH
H EQU 30H
M EQU 31H
S EQU 32H
TIME0 EQU 33H
TIME1 EQU 34H
TIME2 EQU 35H
TIME3 EQU 36H
TIME4 EQU 37H
TIME5 EQU 38H
TIME6 EQU 39H
TIME7 EQU 40H
DELAY:MOV R0,#10
DL1:  MOV R1,#50
DL2:  NOP
 DJNZ R1,DL2
 DJNZ R0,DL1
 RET
 END

c和汇编:
.zip
阅读(1112) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~