搜档网
当前位置:搜档网 › 课程设计修改版

课程设计修改版


摘要
本设计的成品是在单片机最小系统的基础上增加显示电路和控制电路来完成数字 式秒表的硬件电路的。 电子秒表电路主要由 AT89S52 单片机最小系统电路、 七段数码管 动态显示电路和控制电路组成,它能实现八位数码显示和多次计时,能通过控制电路能 控制时间的暂停和开始,能够最少十次计时,查询计时时间。 关键字: 关键字:AT89S52 数码管 最小系统
Abstract The design of the finished product is based on the SCM system to increase the minimum display circuit and control circuit to complete the digital watches of the hardware circuit. Stopwatch circuit mainly by the minimum system AT89S52 microcontroller circuit, seven segment LED display circuit and control the dynamic circuit, it can achieve eight digital display and multiple time, through the control circuit to control the suspension and the beginning of time, to at least ten Second time, the query time. Keywords: Keywords AT89S52 digital minimum system


……1 1 总体设计方案简介…… …… …… ……1 设计课题任务…… 1.1 设计课题任务…… …… …… …… …… 1.2 系统分析 …… …… …… 1 …… …… 1.3 系统方案 …… …… …… 1 1.3.1 1.3.1 方案设计 …… …… …… …… 1
1.3.2 …… ……2 1.3.2 方案论证 …… …… ……2 系统硬件设计 …… …… …… ……3 2 系统硬件设计 …… …… …… ……3 控制芯片的介绍…… …… ……3 2.1 控制芯片的介绍…… …… ……3 2.2 单片机最小系统 ..4 …… …… …… ..4 ……4 ……4 ……
振荡电路―― ――让单片机活起来的心脏 2.2.1 振荡电路――让单片机活起来的心脏
复位电路―― ――恢复初始状态值 …… ..4 2.2.2 复位电路――恢复初始状态值 …… …… ..4 2.2.3 程序下载接入电路 …… …… …… 4
…… ……5 2.3 电源电路设计 …… …… ……5 …… …… ……6 2.4 显示电路设计 …… …… ……6 控制电路设计…… …… 2.5 控制电路设计…… …… ……6 总体电路设计…… …… ……7 2.6 总体电路设计…… …… ……7 …… ……7 2.7 元件清单 …… …… ……7 系统软件设计 …… 3 系统软件设计 …… …… …… 8 程序设计思路…… 3.1 程序设计思路…… …… …… 8 流程图…… 3.2 流程图…… …… …… 9 源程序…… ……11 3.3 源程序…… …… ……11 仿真结果…… ……18 3.4 仿真结果…… …… ……18 ……19 4 课程设计体会 …… …… ……19 …… …… 致谢…… ……20 …… …… ……21 附录 1…… …… ……21 …… …… ……22 附录 2…… …… ……22 参考文献…… 参考文献…… 23 文献……
第 III 页
1 总体设计方案简介
1.1 设计课题任


设计一个具有特定功能的数字式秒表。 该数字式秒表上电或按键复位后能自动显示 系统提示符“P.” ,进入准备工作状态。该数字式秒表应具有开始、暂停、连续、清零和 停止功能
1.2 系统分析
设计的电路主要是能多次记时和查询时间,记时的多少通过显示电路显示出来,每 一次计时可以通过控制电路查询出来。设计框图如图一所示;
1.3 1.3 系统方案
1.3.1 方案设计 1.3.1 方案一:利用分分离门电路和集成块电路设计数显定时器;可分为五个功能模块: 秒脉冲发生器、计数器、译码显示电路、时序控制电路。秒脉冲发生器:555 振荡器振 荡周期 T=0.693(R5+2R6)C=0.72, 频率 f=1.39Hz; 计数器和控制电路是系统的主要部分, 计数器是用可加(减)的计数方法,它是十进制计数的方式,选用 74LS192,计时器完 成计时功能;控制电路具有直接控制计数器的启动计数、暂停/连续计数、查询所计数、 译码显示电路显示等功能。设计框图如二所示;
方案二:利用 AT89S52 单片机设计数显定时器和定时器。此方案采用 AT98S52 单
第 1 页
湖南工学院《单片机应用技术》课程设计报告
片机系统来实现。单片机软件编程灵活、自由度大,可用软件编程实现各种控制算法和 逻辑控制。单片即系统可用数码管显示秒表的值,能用键盘输入暂停,并可实现报捷。 本方案选用了 AT98S52 芯片(内部含有 8KB 的 EEPROM) ,不需要外扩展存储器,可 使系统整体结构更为简单。设计框图如图三所示;
1.3 1.3.2 方案论证 方案一是电子式,时间走的很准时,也能达到报警的功能实现,显示时间是现代式 的数码管显示,但要做好是有很大的难度的,线非常之多,元件分散、多,容易把线接 错;我采用了方案二以 AT98S52 芯片为中心控制系统,可实现显示、键盘控制、报警等 功能,大大提高了系统的智能化,也使得系统所测结果精度大大提高。故经过对三种方 案的比较本设计及制作采用了。
第 2 页
湖南工学院《单片机应用技术》课程设计报告
2 硬件设计
2.1 控制芯片的介绍 控制芯片的介绍
AT89S52(与 AT89S51 相同)单片机的外型如图四所示。 单片机可分为通用型和专用型, 种类繁多。 这里我们主要介绍 AT89S52 单片机是属 于典型代表的 MCS-51 系列单片机, 它是一种能处理 8 位数据的通用型单片机。 Atmel 以 公司生产的具有 CMOS 工艺、低功耗、高性能的 AT89S52 为例,介绍单片机的工作原 理、控制程序的编写及开发应用。AT89S52 是一个高性能 CMOS 8 位单片机,芯片内集 成了通用 8 位中央处理器, 片内含 8k Bytes 的可反复擦写 1000 次的 F

lash 只读程序存储 器(ROM), 支持 ISP(In-system programmable)功能。 AT89S52 内部有 128 bytes 的随机存 取数据存储器(RAM) 5 个中断优先级 2 层中断嵌套中断,2 个 16 位可编程定时计数 , 器,2 个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。兼容标准 MCS-51 指令系统及 80C51 引脚结构。
图四
图五 AT89S52 引脚图
AT89S52 有 40 个引脚,32 个外部双向输入/输出(I/O)口。该芯片还具有 PDIP40、 TQFP44 和 PLCC44 三种封装形式,以适应不同产品的需求。外型和封装形式如图四所 示。从外观上看单片机就是一块集成电路,它与在模拟电路和数字电路中学习过的集成 电路电路最主要的区别是:普通集成电路电路的引脚功能基本上固定的,而单片机的一 些引脚的功能是可以通过编程进行控制,一些引脚既可作输入又可作输出。 单片机广泛用于工业控制、智能仪器仪表、计算机设备及网络、通信领域、家用电 器、医用设备、军用设备等各个方面。对于单片机这样的集成电路,要设计让它完成一
第 3 页
湖南工学院《单片机应用技术》课程设计报告
个特定的工作任务,除完成设计相关的硬件电路外,还要设计相应的控制软件,才能使 整个电路按照设计要求自动地进行工作。 所以, 电子电路学习到单片机这个知识层次时, 除要学习相关硬件知识,还学习相关软件设计知识,才能对单片机进行控制和应用。单 片机的开发和应用,是利用硬件和软件的结合来实现的。由于单片机的功能强大,充分 理解各引脚功能,灵活编写控制程序去控制引脚功能,完成各种需要的设计。
2.2 单片机最小系统
振荡电路―― ――让单片机活起来的心脏 2.2.1 振荡电路――让单片机活起来的心脏 AT89S52 是内部具有振荡电路的单片机, 只需在 18 脚和 19 脚之间接上石英晶体 (如 图六中所示) ,给单片机加上工作所需直流电源,振荡器就开始振荡起来。振荡电路就 为单片机工作提供了所需要的时钟脉冲信号,使单片机的内部电路,单片机的内部程序 (若有)开始工作起来。振荡电路不工作,整个单片机电路都不能正常工作。AT89S52 常外接 6MHz、 MHz 的石英晶体, 12 图中接入的是 12MHz 的石英晶体, 最高可接 24MHz 石英晶体。 18 脚和 19 脚分别对地接了一个 20P 的电容,目的是防止单片机自激。 如果从 18 脚输入外部时钟脉冲,则 19 脚接地。 复位电路――恢复初始状态值 2.2.2 复位电路――恢复初始状态值 复位电路就是在 RST 端 脚) (9 外接的一个电路, 目的是当单片机上电开始工作时, 内部电路从初始状态开始工作, 或者在工作中要想人为的让单片

机重新从初始状态开始 工作。 在时钟工作的情况下, 只要 AT89S52 的复位引脚高电平保持两个机器周期以上的 时间,AT89S52 便能完成系统重置的各项动作,使得内部特殊功能寄存器之内容均被设 成已知状态,并且从地址 0000H 处开始读入程序代码而执行程序。 具体电路如图六所示, C1 和 R2 构成上电自动复位电路, 实现手动开关复位。 由 S17 2.2.3 程序下载接入电路 图六中有一个下载线接口 J13,J13 的 1 脚接 5 伏电源,2、3、4 脚接单片机的 P1 口 的 P1.5、P1.6、P1.7 三个引脚,5 脚接复位引脚,6 脚接地。在计算机中编写好的程序 通过数据下载线连接到单片机实验电路插接口(J13) ,实现从计算机将程序下载到单片 机的程序存储器中,完成单片机的程序写入工作。
第 4 页
湖南工学院《单片机应用技术》课程设计报告
VCC J13
下下 下数 数
VCC
1 2 3 4 5 6 CON6
P1. 5 P1. 6 P1. 7
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 ReSet
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
P10/T P11/T P12 P13 P14 P15 P16 P17 RESET RXD TXD INT0 INT1 T0 T1 WR RD X1 X2 GND
U1 AT89S51
P00 P01 P02 P03 P04 P05 P06 P07 P20 P21 P22 P23 P24 P25 P26 P27 VCC EA/VP ALE/P PSEN
39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 40 31
D00 D01 D02 D03 D04 D05 D06 D07 P20 P21 P22 P23 P24 P25 P26 P27
复数 复复
S17
C1 4.7u ReSet
P30 P31 P32 P33 P34 P35 P36 P37
晶 晶
R2
10K
X1 19 11.0592MHz C6 20p X2 18 20 C7 20p
VCC
30 ALE 29
图六
单片机最小系统
由于 AT89S51 不仅象 89C51 支持程序的并行写入,而且支持 ISP 在线可编程的串 行写入,利用下载线将计算机将原程序编译后进行串行写入到 AT89S51,速度快、稳定 性好,同不时需要 VPP 烧写高压,只要 4~5V 供电即可完成写入。所以,本书主要介 绍用串行写入方式将程序到单片机。
电源电路设计 2.3 电源电路设计
电源电路如图 1-10 所示。通过 J15 电源插座接入大于 6~9 伏的直流电压,经 7805 稳压后给整个电路提供 5 伏直流电压。R11和 D10 为电源指示电路,通电后 D10 亮。 为了有效消除干扰,接入了几只 0.01μF 的电容器(电路图中没有) 。
J15 2 1
电 数 电 数
D9 1 Vin
U4
7805 GND Vout 3 R11 1K C9 100uF
VCC C10 104
C8 220uF
2
D10 LED
图七
第 5 页
湖南工学院《单片机应用技术》课程设计报告
2.4 显示电路设计
实验电路设计了一组数码管显示电路, 电路如图八所示。 八只数码管可以单只驱动, 也可动态驱动显示八位数码管。通过插接口 J6 接数码管七段显示段码输入端,通过插 接口 J10 接每位数码管的驱动信号。 单板机在输出七段显示码

到 J6 的同时, 提供哪一位 数码显示的控制信号也输到 J10 的某一脚上,二者共同作用实现数码管的显示。
1 2 3 4 5 6 7 8 9 1 1 R1 排 1 02 排
共共 数数 数
VCC
J6 1 2 3 4 5 6 7 8 5 3 g 6 cm o3 h Q8 R10 1K
数 数 数 数 数 数 数
1 0
1 1
7
2
5
3
7
b
d
g
h
b
2
d
a
c
e
a
c
e 8
f
1 0 cm o2 f
4
1
4
cm o0
cm o1
cm o2
cm o3
cm o0
1 2
1 2
9
8
6
Q1
Q2
Q3
Q4
Q5
Q6
9
cm o1
1
Q7
R3 1K
R4 1K
R5 1K
R6 1K
R7 1K
R8 1K
R9 1K
8
7
6
5
4
3
2
数 数 数 数 数 数 数 数 数
图八
2.5 控制电路设计
控制电路主要由五个独立的按键组成,我们可以用按键来控制计时的开始、暂停、 清零和查询。所有按键的一端接地,另一端与单片机的 P2 口的几个引脚相连。具体电 路如下图九所示。
图九
第 6 页
1
J10
湖南工学院《单片机应用技术》课程设计报告
2.6 总体电路设计 2.6 总体电路设计
将上面的各个单元电路连在一起组成的实验电路,其如图十所示。
图十
2.7 2.7 元件清单
元件名 AT89S52 八段数码管 NPN 三极管 10K 电阻 无极性电容(30PF) 电解电容 排针 7805 整流二极管 发光二极管 1K 排阻 按键 12M 晶振 电源插座 下载线
第 7 页
数量 1 2 8 9 2 3 1 1 1 1 1 8 1 1 1
湖南工学院《单片机应用技术》课程设计报告
3 软件设计
程序设计思路 3.1 程序设计思路
在硬件的基础上,可以通过软件完成数字式秒表的设计。我先用了矩阵键盘上的任 意三个独立按键作为控制键。用一个键去控制计时的开始;用一个键控制暂停;用一个 键作计计时的清零按键。用按键扫描的方法判断按键是否按下。用动态显示的方法扫描 秒表的计数,显示所计下的数。用中断方法来进行计时加 1,每 10ms 中断一次进行重 新赋值并加 1,当 10ms 单元达到 10,就令该单元赋 0,并让 100ms 单元加 1,以此类 推。
第 8 页
湖南工学院《单片机应用技术》课程设计报告
3.2 3.2 流程图
1、 主程序流程图 程序开始 R1=R1+1 程序初始化 开各中断 R1=?#0ah hhhh ? R1=#00H 2、 加一子程序流程图
P1.0=?1
关定时器 0,1 调用显示子程序
R2=R2+1
R2=?#0ah
P1.0=?0
R2=#00H
开定时器 0,1
30H=R1 31H=R2
3、 INT0 中断子程序 INT0 入口地址
开定时器 0
中断返回
第 9 页
湖南工学院《单片机应用技术》课程设计报告
4、数码显示流程图 P2=#FEH 置数码管个数 R0=3

0H 置首地址
5、 定时器 T0 子程序
定时器 T0 入口地址
R6=#08H 置数码管个数 A=@R0 A=@A+DPTR
置初值
R3-1=?0 A 循环左 移 P3.3 清零 P3.0=C P3.1 置位 R6-1=?0
调用加一子程序
调用数码显示子程序 R3=#20H 重置循环次数
R0=R0-1 中断返回 R7-1=?0
返回
第 10 页
湖南工学院《单片机应用技术》课程设计报告
3.3 3.3 源程序
;**************************************************************************************************** ;课题名称:数字式秒表 ;**************************************************************************************************** ;30H-37H 显示缓冲区 30H 十毫秒位 31H 百毫秒位,32H 横杠,33H 秒位 从右到左显示
;**************************************************************************************************** ORG 0000H AJMP START ORG 000BH LJMP T0_INT ;定时中断 0 10ms 中断一次
ORG 0030H START:MOV SP,#60H SETB ET0 SETB EA MOV TMOD,#01H MOV TH0,#0D8H MOV TL0,#0F0H AA: MOV @R0,#00H INC R0 CJNE R0,#38H,AA MOV P2,#00H MOV P0,#0CH ACALL DL ;AJMP LOOP ;**************************************************************************************************** ;下面实现按键功能,P1.0 启动,P1.1 暂停,P1.2 清零 FIRST:ACALL KEY S0: JNB ACC.0,S1 ACALL DIR LJMP KEY1 ;启动键 ;输出 P. ;10MS 12MHZ ;显示缓冲区初始化 ;允许定时中断 0
S1:
JNB ACC.1,S2 CLR TR0
;暂停键 ;暂停定时
第 11 页
湖南工学院《单片机应用技术》课程设计报告
ACALL DIR SETB P3.1 AJMP FIRST ;蜂鸣器停止响
S2:
JNB ACC.2,FIRST MOV R0,#30H
;清零键
AA1: MOV @R0,#00H INC R0 CJNE R0,#38H,AA1
;显示缓冲区清零
MOV 32H,#10111111B;横杠 MOV 35H,#10111111B;横杠 ACALL DIR SETB P3.1 AJMP FIRST ;蜂鸣器停止响
;**************************************************************************************************** ;键处理子程序 KS: MOV A,P1 CPL A ANL A,#07H RET KEY: ACALL KS JNZ AGAIN MOV A,20H AJMP EXTI AGAIN:MOV 20H,A ACALL DIR ACALL KS JNZ LKP MOV A,20H AJMP EXTI ;第二次判断无键闭合,则转向,暂时保留不写 ;两次判断有键闭合,则转向按键键值判断 ;延时八毫秒 ;无键闭合则转向 ,暂时保留不写 ;有键闭合则转向再次判断 ;屏蔽高五位
LKP:PUSH ACC 第 12 页
湖南工学院《单片机应用技术》课程设计报告
LK: ACALL DIR ACALL KS JNZ LK POP ACC EXTI:RET
;**************************************************************************************************** ;启动键,启动定时子程序 KEY1: SETB TR0 LOOP: ACALL DIR
AJMP FIRST
;**************************************************************************************************** ;中断服务程序 T0_INT:
MOV TH0,#0D8H MOV TL0,#0F0H MOV A,40H
INC 30H MOV A,30H CJNE A,#0AH,ADD_END ;判断是否到 10
CPL P3.1

MOV 30H,#00H INC 31H MOV A,31H CJNE A,#0AH,ADD_END ;判断是否到 10 第 13 页
湖南工学院《单片机应用技术》课程设计报告
CPL P3.2 MOV 31H,#00H INC 33H MOV A,33H CJNE A,#0AH,ADD_END ;判断是否到 10
MOV 33H,#00H INC 34H MOV A,34H CJNE A,#0AH,ADD_END MOV 34H,#00H INC 36H CJNE A,#0AH,ADD_END INC 37H CJNE A,#0AH,ADD_END ADD_END:RETI ;****************************************************************************************************; 数码管显示程序 DIR: MOV P2,#11111110B ;位控制 MOV DPTR,#TAB MOV R0,#30H N1: MOV A,@R0 MOVC A,@A+DPTR MOV P0,A ACALL DL ;判断是否到 10 ;判断是否到 10 ;判断是否到 10
N2:
INC R0 MOV A,P2 RL A MOV P2,A MOV A,@R0 MOVC A,@A+DPTR MOV P0,A ACALL DL 第 14 页
湖南工学院《单片机应用技术》课程设计报告
N3:
INC R0 MOV A,P2 RL A MOV P2,A MOV A,@R0 MOV P0,#10111111B ACALL DL
; 横杠线
N4:
INC R0 MOV A,P2 RL A MOV P2,A MOV A,@R0 MOVC A,@A+DPTR MOV P0,A ACALL DL
N5:
INC R0 MOV A,P2 RL A MOV P2,A MOV A,@R0 MOVC A,@A+DPTR MOV P0,A ACALL DL
N6:
INC R0 MOV A,P2 RL A MOV P2,A MOV A,@R0 MOV P0,#10111111B ACALL DL
; 横杠线
N7:
INC R0 MOV A,P2 第 15 页
湖南工学院《单片机应用技术》课程设计报告
RL A MOV P2,A MOV A,@R0 MOVC A,@A+DPTR MOV P0,A ACALL DL N8: INC R0 MOV A,P2 RL A MOV P2,A MOV A,@R0 MOVC A,@A+DPTR MOV P0,A ACALL DL DIR_END: RET
;**************************************************************************************************** ;延时一毫秒函数 DL: MOV R7, R6, R6, DL2 DL1 #02H #0FFH
DL1: MOV DL2: DJNZ
DJNZ R7, RET
;**************************************************************************************************** ;段码表 TAB: DB 0C0H DB 0F9H DB 0A4H DB 0B0H DB 99H DB 92H DB 82H 第 16 页 ;共阳
湖南工学院《单片机应用技术》课程设计报告
DB 0F8H DB 80H DB 90H DB 88H DB 83H DB 0C6H DB 0A1H DB 86H DB 8EH DB 0FFH END ;灭 ;A(10) ;B(11)
第 17 页
湖南工学院《单片机应用技术》课程设计报告
3.4 3.4 仿真结果
图十一 秒表运行图
图十二 秒表清零图
第 18 页
湖南工学院《单片机应用技术》课程设计报告
4 课程设计体会
在这次课程设计中收获很多,学会了查找相关资料,分析数据,提高了自己的分析 判断能力,得到了许多经验,资料的获得是前人不懈努力的结果。同时,仍有很多课题 需要去努力去完善。 通过这次做课程设计发现自己的看法有点太片面。 课程设计不仅是对前面所学知识 的一种检验,而且也是对自己能力的一种提高。通过这次课程设计使我明白了自己原来 知识还比较欠缺。自己要学习的东西还太多,以前老是觉得自己什么东西都会,什么东 西都懂,有点眼高手低。通过这次毕业设计,我才明白学习是一个长期

积累的过程,在 以后的工作、生活中都应该不断的学习,努力提高自己知识和综合素质。 总之,不管学会的还是学不会的的确觉得困难比较多,真是万事开头难,不知道如 何入手。最后终于做完了有种如释重负的感觉。此外,还得出一个结论:知识必须通过 应用才能实现其价值!有些东西以为学会了,但真正到用的时候才发现是两回事,所以 我认为只有到真正会用的时候才是真的学会了。
第 19 页
湖南工学院《单片机应用技术》课程设计报告


通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远 远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为 社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问 题, ,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对 以前所学过的知识理解得不够深刻,掌握得不够牢固。 这次课程设计终于顺利完成了,在设计中遇到了很多专业知识问题,最后翻阅各种 书籍,终于迎刃而解。同时,在吴乐老师的身上我们学也到很多实用的知识,在次我们 表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢! 此次课程设计,学到了很多课内学不到的东西,比如独立思考解决问题,出现差错 的随机应变,和与人合作共同提高,都受益非浅,今后的制作应该更轻松,自己也都能 扛的起并高质量的完成项目。 在此,感谢于吴乐老师的细心指导,也同样谢谢其他各组同学的无私帮助!
第 20 页
湖南工学院《单片机应用技术》课程设计报告
附录 1
单片机最小系统开发板原理图
第 21 页
湖南工学院《单片机应用技术》课程设计报告
附录 2
元件清单
元件名 AT89S52 八段数码管 NPN 三极管 10K 电阻 无极性电容(30PF) 电解电容 排针 7805 整流二极管 发光二极管 1K 排阻 按键 12M 晶振 电源插座 下载线 数量 1 2 8 9 2 3 1 1 1 1 1 8 1 1 1
第 22 页
湖南工学院《单片机应用技术》课程设计报告
参考文献
[1]李广弟 朱越秀 冷祖祁 单片机基础(第三版) 北京:北京航空航天大学出版社,2007. [2]胡宴如.高频电子线路.北京:高等教育出版社.2007. [3]杨志忠.数字电子技术.北京:高等教育出版社.2007. [4]胡宴如.模拟电子技术.北京:高等教育出版社.2007. [5]谢自美 罗杰.电子线路设计·实验·测试.北京:电子工业出版社.2007.
第 23 页

1

相关主题