当前位置:文档之家› 单片机实现电子计时跑表的设计实验报告

单片机实现电子计时跑表的设计实验报告

单片机实现电子计时跑表的设计报告
一、设计要求: 1、 能显示分、秒、1/100 秒,显示器用七段数码管(也可选
LCD) 2、 具有清零、计时、冻结功能,功能转换用一位非锁紧按
键开关。 3、 CPU 选用 89C51/MSP430,定时器芯片自选,也可用 CPU
内部的定时器。 4、 先写设计报告(要有仿真结果) 5、 编程语言可用 51 汇编/51C。 6、 焊接、调试、做出实物(也可制作 PCB) 7、 调试,误差分析,并补充到设计报告中。 二、方案设计:
D
1 0 1 1 1 1 0 5EH
A1H
E
1 1 1 1 0 0 1 79H
86H
F
1 1 1 0 0 0 1 71H
8EH
(4) 单片机的选择
根据初步设计方案的分析,设计这样一个简单的应用系 统,可以选择带有 EPROM 的单片机,应用程序直接存储 在片内,不用在外部扩展程序存储器,电路可以简化。 本系统选用 AT89C51 单片机。该芯片的功能与 MCS-51 系列单片机完全兼容。
INIT: CLR 00H MOV P3,#0FFH MOV P2,#00H MOV P0,#3FH MOV TMOD,#01H MOV TH0,#0D8H MOV TL0,#0F0H SETB EA SETB ET0 SETB TR0 MOV DPTR,#TAB MOV 30H,#00H MOV 31H,#00H MOV 32H,#00H MOV 33H,#00H MOV 34H,#00H MOV 35H,#00H RET ;/////////////显示子程序
仿真图:

秒位增 1
增到 60?

分位增 1
增到 100?

数码管清零
中断返回
否 否
程序:
ORG 0000H LJMP MAIN ORG 0BH LJMP SERVE ORG 0100H MAIN: LCALL INIT GO: LCALL DIS JNB 00H,GO1 SETB TR0 AJMP GO GO1: CLR TR0 AJMP GO ;//////////初始化子程序
MOV P0,A LCALL D100UM
MOV MOV MOV MOVC MOV LCALL
A,#0FDH P2,A A,31H A,@A+DPTR P0,A D100UM
MOV MOV MOV MOVC ADD MOV LCALL
A,#0FBH P2,A A,32H A,@A+DPTR A,#80H P0,A D100UM
下图为 MCS51 的管脚图。共有 40 个管脚,P 口 32 个输入 输出管脚本次设计用了 16 个。
主流程图如下所示:
开始
初始化(数码管置零)

键是否摁下

计时

键是否摁下

计时暂停


键是否摁下
计时中断子程序流程图:
开始
保护现场

P3_5 是否为 1?

1/100s 增 1
增到 100?

方案框图:
按键输入
时钟电路
单片机
LED 显示器段 码驱动电路
4 位 LED 显示 器电路
复位电路
(1) 开关电路: 电子跑表的启动/复位/清零功能由软件来实现,一键控制。
(2) 驱动电路:
LED 显示器的显示控制方式分为静态显示和动态显示两种, 若选择静态显示,则 LED 驱动器的选择较为简单,只要驱动器 的驱动能力与显示器的电流相匹配即可,而且一般只需考虑段 的驱动;动态显示则不同,由于一位数据的显示是由段和位选 信号共同配合完成的,因此,要同时考虑段和位的驱动能力, 而且段驱动能力决定位的驱动能力。 (3) 6 位 LED 显示器:
INC MOV CJNE MOV
30H A,30H A,#10,EXIT 30H,#00H
INC MOV CJNE MOV
31H A,31H A,#10,EXIT 31H,#00H
INC MOV CJNE MOV
32H A,32H A,#10,EXIT 32H,#00H
INC MOV CJNE MOV
字型与字段关系如下表:
显示 g
f edcba
字型码
字符
共阴极
共阳极
0
0 1 1 1 1 1 1 3FH
C0H
1
0 0 0 0 1 1 0 06H
H
A4H
3
1 0 0 1 1 1 1 4FH
B0H
4
1 1 0 0 1 1 0 66H
99H
5
1 1 0 1 1 0 1 6DH
MOV MOV MOV MOVC MOV LCALL
A,#0F7H P2,A A,33H A,@A+DPTR P0,A D100UM
MOV MOV MOV MOVC ADD MOV LCALL
A,#0EFH P2,A A,34H A,@A+DPTR A,#80H P0,A D100UM
MOV A,#0DFH MOV P2,A MOV A,35H MOVC A,@A+DPTR MOV P0,A LCALL D100UM RET WAIT: LCALL D5MS JNB P3.5,WAIT0 LJMP DIS0 WAIT0: CPL 00H
92H
6
1 1 1 1 1 0 1 7DH
82H
7
0 0 0 0 1 1 1 07H
F8H
8
1 1 1 1 1 1 1 7FH
80H
9
1 1 0 1 1 1 1 6FH
90H
A
1 1 1 0 1 1 1 77H
88H
B
1 1 1 1 1 0 0 7CH
83H
C
0 1 1 1 0 0 1 39H
C6H
DIS: JNB P3.5,WAIT JNB P3.1,L1 LJMP DIS0 L1: LCALL D5MS JNB P3.1,L2 LJMP DIS0 L2: JNB P3.1,L2 JNB 00H,L3 DIS0: MOV A,#0FEH MOV P2,A MOV A,30H MOVC A,@A+DPTR
JNB LJMP L3: MOV MOV MOV MOV MOV LJMP
P3.5,$ DIS0 MOV 30H,#00H 31H,#00H 32H,#00H 33H,#00H 34H,#00H 35H,#00H DIS0
;//////////中断服务程序 SERVE: CLR TR0 CLR TF0 MOV TH0,#0D8H MOV TL0,#0F0H
相关主题