各位大侠,单片机程序开始运行,系统处于正计数状态。当开关SW1被从上往下按时,系统从正计数切换至倒计数
程序开始运行,系统处于正计数状态。当开关SW1被从上往下按时,系统从正计数切换至倒计数;下次再被从上往下按时,又从倒计数切换至正计数。每次从上往下按,都在正计数和倒计数之...
程序开始运行,系统处于正计数状态。当开关SW1被从上往下按时,系统从正计数切换至倒计数;下次再被从上往下按时,又从倒计数切换至正计数。每次从上往下按,都在正计数和倒计数之间轮流切换。用中断方式识别开关SW1是否被从上往下按。
设z=座号+20,正计数循环显示0,1,2,…,z-1,z;倒计数循环显示z,z-1,z-2,…,1,0;正计数与倒计数均采用十进制。每个数字停顿1秒钟,关于1秒钟的时间控制,必须用定时器/计数器加中断实现。(例:张三是5号,计数范围是0,1,2,…,24,25)
要求切换计数方式后,系统从当前值开始正计数或倒计数,如正计数至7时,开关SW1被从上往下按,则从7开始倒计数;倒计数至17时,开关SW1被从上往下按,则从17开始正计数 展开
设z=座号+20,正计数循环显示0,1,2,…,z-1,z;倒计数循环显示z,z-1,z-2,…,1,0;正计数与倒计数均采用十进制。每个数字停顿1秒钟,关于1秒钟的时间控制,必须用定时器/计数器加中断实现。(例:张三是5号,计数范围是0,1,2,…,24,25)
要求切换计数方式后,系统从当前值开始正计数或倒计数,如正计数至7时,开关SW1被从上往下按,则从7开始倒计数;倒计数至17时,开关SW1被从上往下按,则从17开始正计数 展开
1个回答
展开全部
ORG 00H
AJMP MAIN
ORG 03H
AJMP EX0INT
ORG 0BH
AJMP T0INT
ORG 30H
MAIN:
MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
MOV DPTR,#TAB
MOV R0,#20
SETB EA
SETB ET0
SETB TR0
SETB EX0
SETB IT0
ACALL DISP
AJMP $-2
EX0INT:
CPL F0
RETI
T0INT:
MOV TH0,#3CH
MOV TL0,#0B0H
DJNZ R0,RTI
MOV R0,#20
JB F0,DEC0
INC 30H
MOV A,30H
CJNE A,#100,RTI
MOV 30H,#0
AJMP RTI
DEC0:
DEC 30H
MOV A,30H
CJNE A,#0,RTI
MOV 30H,#99
RTI:
RETI
DISP:
MOV A,30H
MOV B,#10
DIV AB
MOVC A,@A+DPTR
MOV P0,A
CLR P2.0
ACALL D1MS
SETB P2.0
MOV A,B
MOVC A,@A+DPTR
MOV P0,A
CLR P2.1
ACALL D1MS
SETB P2.1
RET
D1MS:
MOV R7,#25
MOV R6,#20
DJNZ R6,$
DJNZ R7,$-4
RET
TAB:
DB 03FH;0
DB 006H;1
DB 05BH;2
DB 04FH;3
DB 066H;4
DB 06DH;5
DB 07DH;6
DB 007H;7
DB 07FH;8
DB 06FH;9
END
AJMP MAIN
ORG 03H
AJMP EX0INT
ORG 0BH
AJMP T0INT
ORG 30H
MAIN:
MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
MOV DPTR,#TAB
MOV R0,#20
SETB EA
SETB ET0
SETB TR0
SETB EX0
SETB IT0
ACALL DISP
AJMP $-2
EX0INT:
CPL F0
RETI
T0INT:
MOV TH0,#3CH
MOV TL0,#0B0H
DJNZ R0,RTI
MOV R0,#20
JB F0,DEC0
INC 30H
MOV A,30H
CJNE A,#100,RTI
MOV 30H,#0
AJMP RTI
DEC0:
DEC 30H
MOV A,30H
CJNE A,#0,RTI
MOV 30H,#99
RTI:
RETI
DISP:
MOV A,30H
MOV B,#10
DIV AB
MOVC A,@A+DPTR
MOV P0,A
CLR P2.0
ACALL D1MS
SETB P2.0
MOV A,B
MOVC A,@A+DPTR
MOV P0,A
CLR P2.1
ACALL D1MS
SETB P2.1
RET
D1MS:
MOV R7,#25
MOV R6,#20
DJNZ R6,$
DJNZ R7,$-4
RET
TAB:
DB 03FH;0
DB 006H;1
DB 05BH;2
DB 04FH;3
DB 066H;4
DB 06DH;5
DB 07DH;6
DB 007H;7
DB 07FH;8
DB 06FH;9
END
追问
谢谢楼主,感激不尽!
由于没有电路图,只好口述一下咯!P3.3接一个RS触发器,数码管为7SEG-MPX2-CA-BLUE
段选接口为p0,位选借口为p1.0,1.1
我是二十一号
(8) 定时器/计数器的选择采用T1
跪求C程序
追答
“我是二十一号”
就是说计数范围是0~41?
正计到Z时,是不是停止在Z,反之到0 是不是停止在0?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询