单片机秒表设计程序实验结果(秒表的单片机程序设计)

程序设计 174
今天给各位分享单片机秒表设计程序实验结果的知识,其中也会对秒表的单片机程序设计进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、用51单片机做秒表设计

今天给各位分享单片机秒表设计程序实验结果的知识,其中也会对秒表的单片机程序设计进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

用51单片机做秒表设计

遇到懒学生了,这个不就是一个定时器加显示吗,有什么难的,自己翻翻微机原理书就可以做 了,也就四五十行汇编语言就行了,用C就更加简单,具体的方法:用定时器定时0.2ms,定时到了就给固定的一个变量加1,然后判断这个变量是不是到了500,到了就清零然后把秒的变量加1,就是1s了,(分和时也是如此,秒为60,秒清零,分加1);主程序就只管显示和按键,按键随便用中断还是查询,我建议你查询,因为程序简单,显示程序就是查个表,自己把数码显示的断码表编好就可以了,把秒的数值查表对应显示,完了就查询按键,按键累加,值为0是没按,1是按1次,2是按2次,3是按3次,同时清零,很简单的

6位数码管的MCS51单片机秒表设计实验

HD7279A.

ORG0000H

lJMPWAIT0

ORG001BH

LJMPBRT

ORG0030H

WAIT0:LCALLDISP

MOVC,P1.4

JCWAIT0

LCALLREAD

MOVA,28H

CJNEA,#01H,WAIT0

MIAOBIAO:MOV79H,#00H;1键开始

MOV7AH,#00H;2键停止

MOV7BH,#00H;再按3键清零

MOV7CH,#00H;再按1键重新开始

MOV7DH,#00H

MOV7EH,#00H

MOVTMOD,#10H

MOVTH1,#0D8H

MOV1,#0F0H

MOVIE,#88H

SETBPT1;中断优先级

SETBTR1;开启定时器T1

;*********************************************************************************************

MAIN:ACALLDISP

MOVC,P1.4

JCMAIN;等按键,按2停止

ACALLREAD

MOVA,28H

CJNEA,#02H,MAIN

CLRTR1

WAIT1:LCALLDISP

MOVC,P1.4

JCWAIT1;按3键清零

LCALLREAD

MOVA,28H

CLR28H

CJNEA,#03H,WAIT1

MOV79H,#00H

MOV7AH,#00H

MOV7BH,#00H

MOV7CH,#00H

MOV7DH,#00H

MOV7EH,#00H

WAIT2:LCALLDISP

MOVC,P1.4;第三次按1键重新开始

JCWAIT2

LCALLREAD

MOVA,28H

CLR28H

CJNEA,#01H,EXIT

LJMPMIAOBIAO

EXIT:LJMPWAIT0

;EXIT:POPPSW

;POPACC

;RET

DISP:MOVR0,#79H

MOVR1,#0C8H

MOVR2,#06H

DISP_LOOP:MOV29H,R1

ACALLSEND

MOV29H,@R0

ACALLSEND

INCR1

INCR0

DJNZR2,DISP_LOOP

RET

SEND:CLRP1.7

MOVR3,#08H

lCALLLONG

SEND_LOOP:MOVC,29H.7

MOVP1.6,C

SETBP1.5

ACALLSHORT

CLRP1.5

ACALLSHORT

MOVA,29H

RLA

MOV29H,A

DJNZR3,SEND_LOOP

CLRP1.6

RET

LONG:MOVR5,#28H

LLP:DJNZR5,LLP

SHORT:MOVR6,#08H

SLP:DJNZR6,SLP

RET

BRT:MOVTL1,#0F0H

MOVTH1,#0D8H

PUSHPSW

PUSHACC

INC79H

MOVA,79H

CJNEA,#0AH,FH

MOV79H,#00H

INC7AH

MOVA,7AH

CJNEA,#0AH,FH

MOV7AH,#00H

INC7BH

MOVA,7BH

CJNEA,#0AH,FH

MOV7BH,#00H

INC7CH

MOVA,7CH

CJNEA,#06H,FH

MOV7CH,#00H

INC7DH

MOVA,7DH

CJNEA,#0AH,FH

MOV7DH,#00H

INC7EH

MOVA,7EH

CJNEA,#06H,FH

MOV7EH,#00H

FH:POPACC

POPPSW

RETI

READ:MOV29H,#15H

ACALLSEND

LCALLRESE

RET

RESE:MOV71H,#8;=8

SETBP1.6;P1.2(DATA)

CALLLONG;

RECEIVE_LOOP:SETBP1.5;CLK

CALLSHORT;

MOVA,28H;

RLA

MOV28H,A

MOVC,P1.6;

MOV28H.0,C

CLRP1.5;CLK

CALLSHORT

DJNZ71H,RECEIVE_LOOP;8

CLRP1.6;DAT

RET

单片机秒表设计

用AT89C51设计一个2位的LED数码显示作为“秒表”,这应该是一个仿真题,可用两位一体的共阴数码管,用定时器T0定时,得到1秒计时。

单片机秒表课程设计,急求!!!!

原理图如下,

程序如下:

;=================================================

;寄存器分配定义

;=================================================

LED_BUF EQU 50H ;显示数据首址

COUNTER_INT EQU 3BH ;中断计数器

SECOND     EQU 3DH     ;秒单元

;=================================================

;常数定义

;=================================================

CN_COUNT_INT  EQU  100     ;10ms * 100 = 1S

SET_MODEL EQU 0FFH ;完全译码模式

SET_BRIGHT EQU 04H ;占空比为15/32;显示亮度;

SET_LIMIT EQU 01H ;2位显示方式;

SET_NORMAL EQU 01H ;测试模式

SET_START EQU 01H ;进入启动工作方式?

;=================================================

;管脚分配定义

;=================================================

m7219_DIN BIT P3.0

m7219_LOAD BIT P3.1

m7219_CLK BIT P3.2

KEYSTART BIT P1.0

KEYRESET BIT P1.1

;============================================

;模拟主程序

;===========================================

org 0000h

ajmp main

  ORG 000BH

  LJMP Timer0Interrupt

org 0030h

main:

mov sp,#70h

lcall Init_M7219

lcall InitTimer0

; MOV SECOND,#95H  ;TEST

Loop:

CALL disp

key_reset:

SETB KEYRESET

JB KEYRESET,key_start

; DELAY

NOP

NOP

NOP

JB KEYRESET,key_start

JNB KEYRESET,$

CLR  TR0

MOV A,#0

MOV SECOND,A

MOV led_buf,A

  MOV LED_BUF+1,A

JMP key_SCAN_END

key_start:

SETB KEYSTART

JB KEYSTART,key_SCAN_END

; DELAY

NOP

NOP

NOP

JB KEYSTART,key_SCAN_END

JNB KEYSTART,$

SETB  TR0

key_SCAN_END:

JMP loop

;===========================================

InitTimer0:;10ms一次中断

  MOV TMOD,#01H

  MOV TH0,#0D8H

  MOV TL0,#0F0H

  SETB EA

  SETB ET0

  RET

;===========================================

Timer0Interrupt:

  PUSH DPH

  PUSH DPL

  PUSH ACC

  MOV TH0,#0D8H

  MOV TL0,#0F0H

  ;========================

  INC COUNTER_INT

MOV  A,COUNTER_INT        ;10ms 计数值加1

CJNE  A,#CN_COUNT_INT,Timer0Interrupt_EXIT

MOV  COUNTER_INT,#0

MOV A,SECOND

CJNE  A,#99H,Timer0Int_sec

CLR TR0;关闭计时

JMP Timer0Interrupt_EXIT  

Timer0Int_sec:

ADD A,#01     ;秒加1

DA A

MOV  SECOND,A

SWAP A

ANL A,#0fH

MOV led_buf,A

MOV A,SECOND

ANL A,#0FH

  MOV LED_BUF+1,A

  ;========================

Timer0Interrupt_EXIT:  

  POP ACC

  POP DPL

  POP DPH

  RETI

;====================================================

; function:Init_M7219 ;初始化max719

; input: ------------

; output: ----------

; usage: a,b

;====================================================

Init_M7219:   ;初始化Max7219

MOV a,#0bh  ;设置扫描界限

MOV b,#set_limit ;设置位数

lcall w_7219

MOV a,#09h  ;设置译码模式

MOV b,#set_model ;00h非译码模式;ffh为BCD译码模式

lcall w_7219

MOV a,#0ah  ;设置亮度

MOV b,#set_bright ;15/32亮度

lcall w_7219

MOV a,#0fh  ;设置工作方式

MOV b,#set_normal ;正常工作方式

lcall w_7219

MOV a,#0ch  ;进入启动工作方式

MOV b,#set_start

lcall  w_7219

RET

;===================================================

; function:disp  ;显示子程序

; input: r0

; output: -----------

; usage: r0,r3,r4,a,b

;===================================================

disp:

MOV r0,#led_buf

MOV r4,#01h

MOV r3,#set_limit

INC r3

disp1:

MOV a,@r0

MOV b,a

MOV a,r4

lcall w_7219

INC r0

INC r4

djnz r3,disp1

RET

;===================================================

; function:w_7219 ;显示驱动程序;

; input: a  ;传送7219的地址

;        b  ;传送7219的数据

; output:-------------

; usage: a,r2

;====================================================

w_7219:

CLR M7219_clk

CLR M7219_din

CLR  M7219_load ;置load=0

lcall  sd_7219  ;传送7219的地址

MOV a,b

lcall sd_7219  ;传送数据

setb M7219_load  ;数据装载

CLR M7219_din

RET

;=================================================

; function:sd_7219  ;向7219传送数据或地址子程序

; input:    a

; output:   max7219

; usage:   a, r2

;==================================================

sd_7219:   ;向7219送地址或数据

MOV r2,#08h

c_sd:

CLR C

CLR M7219_clk

RLC a

MOV M7219_din,c ;准备数据

NOP

setb M7219_clk ;上升沿将数据传入

NOP

NOP

CLR M7219_clk

djnz r2,c_sd

RET

END

单片机秒表设计程序实验结果的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于秒表的单片机程序设计、单片机秒表设计程序实验结果的信息别忘了在本站进行查找喔。

扫码二维码