新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 单片机秒表课程设计

单片机秒表课程设计

作者: 时间:2013-03-12 来源:网络 收藏

;数码管显示秒表时间的程序
GN1: ;先初始化
S1:MOV A,#0
MOV TEMP,A
GOON1: MOV R2,#2
JS1: MOV R3,#250
TIME1: MOV A,TEMP ;将TEMP中的十六进制数转换成10进制
MOV B,#10 ;10进制/10=10进制
DIV AB
MOV B_BIT,A ;十位在A
MOV A_BIT,B ;个位在B

LCALL DPLOP1

;插入一段判断定时过程中是否有的程序段
C1: JB P3.6,B1
ACALL DELAY10;延时10毫秒消抖
JB P3.6,C1
JNB P3.6,$;等待按键松开
CPL F0
ZT1: ; MOV P3,#0FFH;对P3口初始化,设置为高电平,用于
JB P3.6,$;循环判断开始按钮K1是否按下?
ACALL DELAY10;延时10毫秒触点消抖
JB P3.6,ZT1;如果是干扰就返回
JNB P3.6,$;等待按键松开
LCALL DPLOP1

B1: JB P3.7,LOOP1
ACALL DELAY10;延时10毫秒消抖
JB P3.7,B1
JNB P3.7,$;等待按键松开
AJMP OVER

LOOP1: DJNZ R3,TIME1 ;2毫秒循环执行250次,时间约0.5秒
DJNZ R2,JS1 ;循环执行2次,时间为1 秒钟

INC TEMP;满一秒钟对时间加1
MOV A,TEMP
CLR C
SUBB A,#60
JNZ GOON1;判断TEMP的数值是否为60?不为60循环
ACALL OVER
RET


GN2: MOV A,#14H ; 设定倒计时的时间20S
MOV TEMP,A

;数码管显示倒计时时间的程序
;初始化
MOV P3,#0FFH;对P3口初始化,设置为高电平,用于
MOV P0,#14H;使显示时间为设定的倒计时时间

GOON2: MOV R2,#2
JS2: MOV R3,#250
TIME2: MOV A,TEMP ;将TEMP中的十六进制数转换成10进制
MOV B,#10 ;10进制/10=10进制
DIV AB
MOV B_BIT,A ;十位在A
MOV A_BIT,B ;个位在B

MOV DPTR,#NUMTAB ;指定查表启始地址
DPLOP2: MOV A,A_BIT ;取个位数
MOVC A,@A+DPTR ;查个位数的7段代码
MOV P0,A ;送出个位的7段代码

CLR P2.5 ;开个位显示
ACALL DELY1;显示1毫秒
SETB P2.5;关闭个位显示,防止鬼影
MOV A,B_BIT ;取十位数
MOVC A,@A+DPTR ;查十位数的7段代码
MOV P0,A ;送出十位的7段代码
CLR P2.6 ;开十位显示
ACALL DELY1;显示1毫秒
SETB P2.6;关闭十位显示,防止鬼影

;插入一段判断定时过程中是否有按键输入的程序段
C2: JB P3.6,B2
ACALL DELAY10;延时10毫秒消抖
JB P3.6,C2
JNB P3.6,$;等待按键松开

ZT2: MOV P3,#0FFH;对P3口初始化,设置为高电平,用于按键输入
JB P3.6,$;循环判断开始按钮K1是否按下?
ACALL DELAY10;延时10毫秒触点消抖
JB P3.6,ZT2;如果是干扰就返回
JNB P3.6,$;等待按键松开



评论


相关推荐

技术专区

关闭