1、 课 题 设 计 论 文课题名称: 简易秒表的制作 班级: P14 电气 2 班 姓名: 潘娟 康盼红 学号: 201403170131 201403170130 指导教师: 李红艳 2015 年 12 月 28 日一、设计任务与设计要求1、设计任务用 8051 单片机设计 4 位 LED 数码管显示“分值” 和“秒值”。2、设计要求用 8051 单片机,采用动态扫描的方式,用 4 位 LED 数码管显示秒值,晶振 采用 6 赫兹。具体要求如下:a.从右向左显示秒值的个位、十位,分值的各位和十位,个位能向十位进位。b.上电后首先显示 00.00,表示从 00.00 秒开始计时,当时间显示到 5
2、9.59 时,4 位显示都清零从头开始。c.以三个独立式按键实现复位、启动、停止。 二、设计方案 本设计分为时钟电路、复位电路、显示电路和单片机四大部分,这些模块中单片机占主控地位。时钟电路常用的有内部时钟方式和外部时钟方式,但因为本设计中只需要一片单片机,所以采用内部时钟方式。复位电路中的“复位”按钮是按键手动复位,它有电平和脉冲两,种方式,本设计选择了按键电平复位电路,显示电路所用的数码管有共阴和共阳之分,不管使用何种数码管,P0 口作为 I/O 使用时都是需要上拉电阻才能驱动数码管。另外,因为单片机的 4 个并行 I/O 口的输出电流一般是 1mA,短路电流为 4mA 左右,而数码管的最
3、少驱动电流也需要 10mA,因而不管在使用共阴数码管时,单片机输出口也必须使用上拉电阻提高输出电流,才能驱动数码管。为了使电路简单化,本设计选用共阳数码管。使用动态显示方式是将所有显示位的段码线的相应段并联在一起,由一个 8 位 I/O 口控制,而各位的共阴或共阴极分别由相应的 I/O 线控制,形成各位的分时选通。根据硬件设计,由单片机的 p2 口控制位码输出,p0 口控制段码输出。动态显示程序中,在单片机内部 RAM 中设置待显示数据缓冲区,由查表程序完成显示译码,将缓冲区内待显示数据转换成相应的段码,再将段码通过 8051 的 p0 口输出:位码数据由累加器循环左移指令产生,再通过 p2
4、口输出。整体程序主要分为 3 部分:主程序、显示子程序、和定时器中断程序。主程序主要是初始化部分和不断调用动态显示子程序部分。 动态显示子程序完成4 位 LED 的轮流位扫描,它被主程序不断调用,以保证稳定可靠的显示。显示时间的刷新由定时器中断产生,定时器每秒 50ms 中断一次,当中断 20 次后(即 1s 后),对时间单元(秒计数单元、分计数单元)进行更新,然后通过拆字子程序将时间单元里面的十六进制数拆开为两个 BCD 码,并送到显示缓冲区。返回主程序后显示缓冲区的待显示数据被刷新一次,数码管相应的显示数值也就随之发生变化。通过键盘扫描方式取得 KE0、KE1、KE2 的键值,用键盘的中断
5、处理程序实现秒表的启动、停止、复位。三、主要硬件电路设计1、单元电路设计(1)时钟电路注:/单元电路设计中的网络标号的数字即为单片机的管脚/时钟电路如图所示,时钟电路的晶振频率越高,系统的时钟频率越高,单片机的运行速度也就越快。晶振频率根据设计需要设为 6MHz,又根据谐振性质,电路中的电容 C1、 C2 选择为 30pF 左右。该电容的的大小会影响振荡器频率的高低、振荡器的稳定性和起振的快速性。(2)复位电路 复位电路如图所示,单片机复位条件是,必须使 RSTVPD 或 RST 引脚 9 加上持续 2 个机器周期的高电平。在本次设计中时钟频率为 6MHz,每个机器周期为 2us,则需要 4u
6、s 以上时间的高电平,在 RST 引脚出现高电平后的第二个机器周期执行复位。(a)为上电复位电路,它是利用电容充电来实现的。在接电瞬间,RST 端的电位与VCC 相同,随着充电电流的减少,RST 的电位逐渐下降。只要保证 RST 为高电平的时间大于两个机器周期,便能正常复位。 (b)为按键复位电路,该电路除了具有上电复位功能外,若要复位只需按图中的 RESET 键,此时电源 VCC 经电阻 R1、R2分压,在 RST 端产生一个复位高电平。(3)显示电路4 位 LED 显示的位码由单片机的 P2 口输出,段码由 P0 口输出,P2 口线与 LED之间接有 500 欧母限流电阻;LED 为共阳极
7、数码管,显示方式为动态显示方式;3个按键可以采用独立式键盘,其中两个按键分别连接到外部中断 INT0、INT1,第 3个按键连接到定时器 1 的 T1 端口,以中断方式实现键盘的扫描。动态显示程序中,在单片机内部 RAM 中设置待显示数据缓冲区,由查表程序完成显示译码,将缓冲区内待显示数据转换成相应的段码,再将段码痛过 8051 的 P0 口输出;位码数据由累加器循环左移指令产生,再通过 P2 口输出。XTAL218XTAL119ALE3031PSN29RST9P0./AD0390.1/138P0.2/AD2370.3/336P0.4/AD4350.5/534P0.6/AD630.7/732P
8、1.011.2P1.231.34P1.451.56P1.671.78P3.0/RXD103.1/T1P3.2/INT0123./IT113P3.4/T014P3.7/RD173.6/W163.5/T115P2.7/A1528P2.0/A8212.1/92P2./A10232.3/124P2.4/A12252.5/13262.6/1427C115nC215n C315nR1510RX1CRYSTAL R3510R4510510R6510 R710kKE01KE22、电路元件介绍 51 单片机的引脚图 8051 微控制器属于 MCS-51 系列,自 1980 年开始由 inter 公司设计以来,由
9、于其完善的指令集,在嵌入系统中占有很大的市场。其资源包括 8K 的程序存储器,1K 的数据存储器,两个 16bit 的计数控制器和四组八位的通用 IO 口。CPU 结构: 8051 内部 CPU 是一个字长为二进制 8 位的中央处理单元,也就是他对数据的处理是按字节为单位进行的。8051 内部 CPU 也是由运算器、控制器和专用寄存器组三部分电路组成。存储器:标准 8501 单片机在物理上有 4 个存储空间:片内程序存储器和片外程序存储器、片内数据存储器、片外数据存储器。IO 输入、输出端口:1、 P0.0P0.7 P0 口位双向口线(在引脚的 3932 号端子)。 2 、P1.0P1.7 P
10、1 口 8 位双向口线(在引脚的 18 号端子)。 3 、P2.0P2.7 P2 口 8 位双向口线(在引脚的 2128 号端子)。 4、 P3.0P3.7 P3 口 8 位双向口线(在引脚的 1017 号端子)其中单片机的 P3 口有第二功能:8051 单片机 P0、P1、P2 、P3 口介绍:P0 口:P0 口是一个 8 位漏极开路的双向 I/O 口。作为输出口,每位能驱动 8个 TTL 逻 辑电平。对 P0 端口写“1”时,引脚用作高阻抗输入端用。在访问外部数据存储器或程序存储器时,P0 口被分时转换地址(低 8 位)和数据总线复用,在访问期间激活内部上拉电阻。P1 口:P1 口是一个具
11、有内部上拉电阻的 8 位双向 I/O 口,P1 输出缓冲器能驱动 4 个 TTL 逻辑电平。对 P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。P2 口:P2 是一个带有内部上拉电阻的 8 位双向 I/O 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对端口 P2 写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。P3 口:P3 口是一组带有内部上拉电阻的 8 位双向 I/O 口
12、。P3 口输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对 P3 口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的 P3 口将用上拉电阻输出电流。RST复位端:当振荡器工作时,RST 引脚出现两个机器周期以上高电平将是单片机复位。数码管数码管由 8 个发光二极管构成数码管又分为共阴极和共阳极二种结构。共阳极数码管的 8 个发光二极管的阴极连接在一起,通常接高电平,其他管脚接段驱动电源输出端。当某段驱动电源的输出端为低电平时,该端所连接的字段导通并点亮。 共阴极数码管的 8 个发光二极管的阴极连在一起,通常接低电平,其他管脚接段驱动电源输出端当某段驱动电
13、路的输出端为高电平时,该端所连接的字段导通并点亮。元件清单元件名称 数量 备注 元件名称 数量 备注数码管 4 块 80c51 1 块按钮 3 个 电容 2 个 33pF电阻 2 个 电容 1 个 100uF晶振 1 个 6MHz四、 主要软件电路设计1、资源分配表 名称 地址分配 用途 初始化值MSEC 20H 定时器 50ms 计数单元 14HSECOND 21H 秒计数单元 00HMIN 22H 分计数单元 00H30H35H 显示缓冲区30H:秒的个位 31H 秒的十位32H:分的个位 33H 分的十位00H40H 以上 堆栈区2、程序流程图开始定时器中断初始化秒单元初始化显示缓冲区初
14、始化子程序入口保护现场显示初始化查表取字型码段码送 p0口位码送 p2口延时显示位码右移显示缓冲区下一位四位显示完?保护现场返回启动定时器调用显示子程序主程序流程图显示子程序流程图1s 到吗?调用拆字子程序60 分到吗?恢复现场调用拆字子程序调用拆字子程序置定时器初始值保护现场中断入口调用拆字子程序60s 到吗?秒清 0调用拆字子程序分单元加 1调用拆字子程序分单元清 0返回置 50ms 计数初始值秒加 1定时器中断子程序源程序设计如下: MSEC EQU 20HSECOND EQU 21HMIN EQU 22HORG 0000HAJMP MAINORG 0003HAJMP KE1ORG 00
15、0BHAJMP CONTORG 0013HAJMP KE0ORG 001BH AJMP KE2MAIN: MOV TMOD, #61HMOV TH0, #9EHMOV TL0, #58HMOV TH1, #0FFHMOV TL1, #0FFHMOV SECOND, #00H MOV MIN, #00H MOV MSEC, #14HMOV SP, #3FHMOV 30H, #00H MOV 31H, #00H MOV 32H, #00H MOV 33H, #00H MOV IE, #8FHSETB TR1START: LCALL DISPSJMP START DISP: MOV R0, #30H
16、MOV R7, #00HMOV R2, #04HMOV R3, #08HMOV A, R0MOV P2, #0FFHDISP1: MOV DPTR, #TABMOVC A, A+DPTRMOV P0, AMOV A, R3MOV P2, ADJNZ R7, $DJNZ R7, $RR AMOV R3, AINC R0MOV A, R0DJNZ R2, DISP1RETTAB: DB 0C0H, 0F9H, 0A4H, 0B0H, 99HDB 92H, 82H, 0F8H, 80H, 90HCONT: PUSH ACCMOV TH0, #9EHMOV TL0, #58HDJNZ MSEC, RN
17、MOV MSEC, #14H INC SECONDMOV A, SECONDMOV R1, #31HLCALL BINBCDMOV A, SECONDCJNE A, #60, RNMOV A, #00HMOV SECOND, AMOV R1, #31HLCALL BINBCDMOV A, MINCJNE A, #60, RNMOV A, #00HMOV MIN, AMOV R1, #33HLCALL BINBCDRN: POP ACCRETIBINBCD:MOV B, #10HDIV ABMOV R1, ADEC R1MOV A, BMOV R1, AKE0: SETB TR0RETIKE1:
18、 CLR TR0RETIKE2: MOV SEC, #00HMOV 30H, #00HMOV 31H, #00H MOV 32H, #00HMOV 33H #00H RETIEND 五、 设计总结首先,通过这次应用系统设计,在很大程度上提高了自己的独立思考能力和单片机的专业知识,也深刻了解写一篇应用系统的步骤和格式,有过这样的一次训练,相信在接下来的日子我们都会了,而且会做得更好。写完这篇设计报告,我思考了很多关于单片机的设计问题。首先是一个能够实际用于生产的设计的完成,单片机设计也是需要团队合作的,一个大的,完美的系统不太可能由一个人独力完成。然后单片机设计成本控制是一个非常重要的部分,单片机的特点之一是价格便宜。还有功耗控制,功耗控制好第一是省电,第二是能提高稳定性,因为电流大的会发热,发热高会引起诸多问题。单片机在我们的生活中已经无处不在,家用电器基本上都是有单片机做控制电路的。比如全自动洗衣机,遥控器等等。电脑上的每一个部件也是一个单片机。在这里举例这么多单片机是为了说明单片机市场大。作为新时代的大学生,我们不可以学了技术不知道怎么转化为实际产品,要学以致用才行。