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