最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

微机原理电子秒表课程设计

来源:动视网 责编:小OO 时间:2025-09-28 06:26:09
文档

微机原理电子秒表课程设计

电子秒表设计报告设计要求:用C51,外接晶振,复位电路,二个数码管,二个按键,做一个电子秒表,具体要求为用按键起停电子表,可用按键设计倒计时时间(如10S,20S,60S),并启动倒计时功能。能用按键选择以上两功能之一。实现原理:利用12M晶振的一个机器周期为1微秒,通过循环产生1秒时间延迟,扫描单片机中所存放的时间的值(可正记时,也可倒计时),并通过输出显示在数码管上。电路图:p0.0—p0.7对应了两个接数码管的A,B,C,D,E,F,G和小数点位,p2.6接显示个位数的数码管的3、8
推荐度:
导读电子秒表设计报告设计要求:用C51,外接晶振,复位电路,二个数码管,二个按键,做一个电子秒表,具体要求为用按键起停电子表,可用按键设计倒计时时间(如10S,20S,60S),并启动倒计时功能。能用按键选择以上两功能之一。实现原理:利用12M晶振的一个机器周期为1微秒,通过循环产生1秒时间延迟,扫描单片机中所存放的时间的值(可正记时,也可倒计时),并通过输出显示在数码管上。电路图:p0.0—p0.7对应了两个接数码管的A,B,C,D,E,F,G和小数点位,p2.6接显示个位数的数码管的3、8
电子秒表设计报告

设计要求:

    用C51,外接晶振,复位电路,二个数码管,二个按键,做一个电子秒表,具体要求为用按键起停电子表,可用按键设计倒计时时间(如10S,20S,60S),并启动倒计时功能。能用按键选择以上两功能之一。

实现原理:

利用12M晶振的一个机器周期为1微秒,通过循环产生1秒时间延迟,扫描单片机中所存放的时间的值(可正记时,也可倒计时),并通过输出显示在数码管上。

电路图:

p0.0—p0.7对应了两个接数码管的A,B,C,D,E,F,G和小数点位,p2.6接显示个位数的数码管的3、8引角,p2.7则接十位数的。p3.6、p3.7分别接按键。

流程框图:

程序代码:

a_bit equ 20h ;数码管个位数存放内存位置

b_bit equ 21h ;数码管十位数存放内存位置

temp  equ 22h ;计数器数值存放内存位置

;开机初始化

      MOV P3,#0FFH;对P3口初始化,设置为高电平,用于按键输入

      MOV P0,#0FFH;使显示时间数码管熄灭

;等待按键输入

;根据按键的输入判断执行什么功能

;按键1按下则执行功能1

START:JB P3.6,$;循环判断开始按钮K1是否按下?

      ACALL DELAY10;延时10毫秒触点消抖

      JB P3.6,START1;如果是干扰就返回

      JNB P3.6,$;等待按键松开

      ljmp gn1      

;

按键2按下则执行功能2

start1: jb p3.7,$;循环判断开始按钮K2是否按下?  

        ACALL DELAY10;延时10毫秒触点消抖

        JB P3.7,START;如果是干扰就返回

        jnb p3.7,$

        ljmp gn2

;数码管显示秒表时间的程序

gn1:    ;先初始化

        MOV P3,#0FFH;对P3口初始化,设置为高电平,用于按键输入

        MOV P0,#0FFH;使显示时间数码管熄灭

        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

        mov dptr,#numtab ;指定查表启始地址

        mov r0,#4 

dpl1:   mov r1,#250 ;

dplop1:  mov a,a_bit ;取个位数

        MOVC A,@A+DPTR ;查个位数的7段代码

        mov p0,a ;送出个位的7段代码

         mov p0,a ;送出个位的7段代码

        clr p2.7 ;开个位显示

        ACALL   DELY1;显示1毫秒

        setb p2.7;关闭个位显示,防止鬼影

        mov a,b_bit ;取十位数

        MOVC A,@A+DPTR ;查十位数的7段代码

        mov p0,a ;送出十位的7段代码

        clr p2.6 ;开十位显示

        ACALL DELY1;显示1毫秒

        setb p2.6;关闭十位显示,防止鬼影

        ;插入一段判断定时过程中是否有按键输入的程序段

C1:     JB P3.6,B1

        ACALL DELAY10;延时10毫秒消抖

        JB P3.6,C1

        JNB P3.6,$;等待按键松开

        

zt1:    MOV P3,#0FFH;对P3口初始化,设置为高电平,用于按键输入

        jb p3.6,$;循环判断开始按钮K1是否按下?

        ACALL DELAY10;延时10毫秒触点消抖

        JB P3.6,zt1;如果是干扰就返回

        JNB P3.6,$;等待按键松开

              

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 ;指定查表启始地址

        mov r0,#4 

dpl2:   mov r1,#250 ;

dplop2:  mov a,a_bit ;取个位数

        MOVC A,@A+DPTR ;查个位数的7段代码

        mov p0,a ;送出个位的7段代码

         mov p0,a ;送出个位的7段代码

        clr p2.7 ;开个位显示

        ACALL   DELY1;显示1毫秒

        setb p2.7;关闭个位显示,防止鬼影

        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,$;等待按键松开

              

B2:     JB P3.7,loop2

ACALL DELAY10;延时10毫秒消抖

JB P3.7,B1

JNB P3.7,$;等待按键松开

AJMP OVER

loop2:   djnz r3,TIME2 ;2毫秒循环执行250次,时间约0.5秒

djnz r2,js2      ;循环执行2次,时间为1 秒钟

dec TEMP;满一秒钟对时间加1

MOV A,TEMP

JNZ goon2;判断TEMP的数值是否为0?不为0循环 

acall over

ret

        

;结束定时

OVER:  AJMP START;退到开机初始化状态

;1毫秒延时子程序

DELY1:  MOV R4,#2

D1:MOV R5,#248

DJNZ R5,$

DJNZ R4,D1

RET

;10毫秒延时子程序

DELAY10: MOV R4,#20

D2:MOV R5,#248

DJNZ R5,$

DJNZ R4,D2

RET

;实验板上的两位一体的数码管0~9各数字的显示代码

numtab: DB 30H,0FCH,0A2H,0A4H,06CH,25H,21H,0BCH,20H,24H

end

文档

微机原理电子秒表课程设计

电子秒表设计报告设计要求:用C51,外接晶振,复位电路,二个数码管,二个按键,做一个电子秒表,具体要求为用按键起停电子表,可用按键设计倒计时时间(如10S,20S,60S),并启动倒计时功能。能用按键选择以上两功能之一。实现原理:利用12M晶振的一个机器周期为1微秒,通过循环产生1秒时间延迟,扫描单片机中所存放的时间的值(可正记时,也可倒计时),并通过输出显示在数码管上。电路图:p0.0—p0.7对应了两个接数码管的A,B,C,D,E,F,G和小数点位,p2.6接显示个位数的数码管的3、8
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top