单片机课程设计秒表定时器.docx
《单片机课程设计秒表定时器.docx》由会员分享,可在线阅读,更多相关《单片机课程设计秒表定时器.docx(16页珍藏版)》请在冰点文库上搜索。
单片机课程设计秒表定时器
单片机原理与应用课程设计说明书
题目:
秒表计时器
系部:
信息与控制工程学院
专业:
自动化
班级:
学生姓名:
学号:
指导教师:
2011年12月8日
1设计任务与要求·············································1
2设计方案···················································2
3硬件电路设计···············································7
4软件设计···················································8
5结论······················································12
参考文献····················································14
1设计任务与要求
1.1课程设计的目的
1.1.1根据单片机课程所学内容,结合其他相关课程知识,设计电子秒表,以加深对单片机知识的理解,锻炼实践动手能力,为以后的毕业设计和工作打下坚实基础;
1.1.2熟悉汇编语言或C语言的程序设计方法,熟悉51系列单片机的使用;
1.1.3掌握单片机的内部功能模块的应用,如定时器/计数器、中断、I/O口、串行口通讯等功能;
1.1.4掌握单片机应用系统的软硬件设计过程、方法及实现。
1.2课程设计的任务
设计一个单片机控制的秒表系统。
利用单片机的定时器/计数器定时和记数的原理,结合显示电路、LED数码管以及按键来设计秒表计时器。
基本要求:
用AT89C51设计一个2位LED数码显示“秒表”,显示时间为00~99秒,每秒自动加一。
当按“开始”按键,开始计数,数码管显示从00开始每秒自动加一;按“暂停”按键,系统暂停计数,数码管显示当时的计数;按“复位”按键,系统清零,数码管显示00。
1.3课程设计的要求
1.1.1利用单片机内部定时器设计一个秒表,要求能实现秒表的启动、停止和复位。
1.1.2焊接电路,编制程序,实现秒表计时器的基本功能,并完成课程设计说明书。
1.1.3课程设计期间遵守纪律,注意安全,爱护设备,合理分工,加强合作。
2设计方案
2.1设计方案介绍及工作原理说明
该实验要求进行计时并在数码管上显示时间,则可利用pretues仿真软件设计电路并仿真STC89C51。
使用STC89C51单片机作为核心控制部件,采用12M晶体振荡器及微小电容构成振荡电路;用两个四位一体共阳极或共阴极数码显示管作为显示部分,构成数字式秒表的主体结构,配合独立式键盘和复位电路完成此秒表的计时、清零、停止各项功能。
对于时钟,它有两方面的含义:
一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,是用软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大。
LED数码显示器有如下两种连接方法:
共阳极接法:
把发光二极管的阳极连在一起构成公共阳极,使用时公共阳极接+5V,每个发光二极管的阴极通过电阻与输入端相连。
共阴极接法:
把发光二极管的阴极连在一起构成公共阴极,使用时公共阴极接地。
每个发光二极管的阳极通过电阻与输入端相连。
键盘部分方案:
键盘控制采用独立式按键,每个按键的一端均接地,另一端直接和P1口相连,在按键和P1口之间通过10K电阻与+5V电源相连。
键盘通过检测输入线的电平状态就可以很容易地判断哪个键被按下了,这种方法操作速度高而且软件结构很简单,比较适合按键较少或操作速度较高的场合,这种独立式接口的应用很普遍。
显示部分方案:
显示部分采用动态显示。
数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。
通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。
动态显示是利用人眼视觉暂留特性来实现显示的。
事实上,显示器上任何时刻只有一个数码管有显示。
由于各数码管轮流显示的时间间隔短、节奏快,人的眼睛反应不过来,因此看到的是连续显示的现象。
为防止闪烁延时的时间在1ms左右,不能太长,也不能太短。
通过编写程序使用单片机的定时计数器,以及软件延时,中断资源来实现秒计时和相关控制。
2.2数字式秒表硬件系统各模块功能简要介绍
2.2.1七段数码管简介
显示控制过程:
如第一个数码管显示数字‘1’,数字‘1’对应的16进制显示码为0xf9。
1、 首先将显示码送到单片机的PA口:
PORTA=0XF9;
2、然后使能第一个数码管的位码:
单片机的PC0口置1--PORTC|=(1< 3、延时
执行上述过程将在第一个数码管上显示数字‘1’。
重复上述过程,就可以依次点亮每一个数码管
轮流点亮每个数码管的时间是及其短暂的,只有几毫秒。
如果出现闪烁现象,说明上面第三步的延时时间过长。
改变延时时间,加快扫描的频率。
2.2.2STC89C51简介
STC89C51是一种低功耗、高性能的片内含有4KB快闪可编程/擦除只读存储器(FPEROM-FlashProgrammableandEraseableReadOnlyMemory)的8位CMOS微控制器,使用高密度、非易失存储技术制造,并且与80C51引脚和指令系统完全兼容。
主要性能:
与MCS-51微控制器产品系列兼容。
片内有4KB可在线重复编程的快闪擦写存储器
存储数据保存时间为10年
宽工作电压范围:
Vcc可为2.7V到6V
全静态工作:
可从0Hz至16MHz
程序存储器具有3级加密保护
128*8位内部RAM
32条可编程I/O线
两个16位定时器/计数器
中断结构具有5个中断源和2个优先级
可编程全双工串行通道
空闲状态维持低功耗和掉电状态保存存储内容
2.2.374LS164简介
74LS164为8位移位寄存器,其主要电特性的典型值如下:
54/74164 185mW 54/74LS16480mW
当清除端(CLEAR)为低电平时,输出端(QA-QH)均为低电平。
串行数据输入端(A,B)可控制数据。
当A、B任意一个为低电平,则禁止新数据输入,在时钟端(CLOCK)脉冲上升沿作用下Q0为低电平。
当A、B有一个为高电平,则另一个就允许输入数据,并在CLOCK上升沿作用下决定Q0的状态。
引脚功能:
CLOCK:
时钟输入端
CLEAR:
同步清除输入端(低电平有效)
A,B:
串行数据输入端
QA-QH:
输出端
2.2.3MAX232简介
MAX232芯片是专门为电脑的RS-232标准串口设计的接口电路,使用+5v单电源供电。
内部结构基本可分三个部分:
第一部分是电荷泵电路。
由1、2、3、4、5、6脚和4只电容构成。
功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要。
第二部分是数据转换通道。
由7、8、9、10、11、12、13、14脚构成两个数据通道。
其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道。
8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。
TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DP9插头;DP9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。
第三部分是供电。
15脚DNG、16脚VCC(+5v)。
2.2.4MAX813L引脚及功能
引脚功能及工作原理
(1)手动复位输入端(
)
当该端输入低电平保持140ms以上,MAX813L就输出复位信号.该输入端的最小输入脉宽要求可以有效地消除开关的抖动。
与TTL/CMOS兼容。
(2)工作电源端(VCC):
接+5V电源。
(3)电源接地端(GND):
接0V参考电平。
(4)电源故障输入端(PFI)
当该端输入电压低于1.25V时,5号引脚输出端的信号由高电平变为低电平。
(5)电源故障输出端(
)
电源正常时,保持高电平,电源电压变低或掉电时,输出由高电平变为低电平。
(6)看门狗信号输入端(WDI)
程序正常运行时,必须在小于1.6s的时间间隔内向该输入端发送一个脉冲信号,以清除芯片内部的看门狗定时器。
若超过1.6s该输
入端收不到脉冲信号,则内部定时器溢出,8号引脚由高电平变为低电平。
(7)复位信号输出端(RST)
上电时,自动产生200ms的复位脉冲;手动复位端输入低电平时,该端也产生复位信号输出。
(8)看门狗信号输出端(
)正常工作时输出保持高电平,看门狗输出时,该端输出信号由高电平变为低电平。
3硬件电路设计
4软件设计
4.1数字秒表工作流程图
开始
系统初始化
数码管显示
按键判断
定时启动位取反
按键2
关闭定时器时间清零
按键1
N
Y
Y
N
电子时钟工作整体流程图
开始
T0初始化
程序处理
退出中断
定时中断
4.2STC51单片机实现数字秒表工作源程序
CLKEQUP2.5
SINEQUP2.4
S1EQUP0.0
S2EQUP0.1
S3EQUP0.2
S4EQUP2.6
S5EQUP2.7
S6EQUP0.7
SBEQUP1.0
CLR_SEQUP1.1
TIMER_ONEQU20H
ORG0000H
SJMPSTART
ORG000BH
LCALLT0_S
RETI
ORG0030H
START:
//0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,
//段码
MOV60H,#0E7H
MOV61H,#05H
MOV62H,#0E9H
MOV63H,#0ADH
MOV64H,#00FH
MOV65H,#0AEH
MOV66H,#0EEH
MOV67H,#85H
MOV68H,#0EFH
MOV69H,#0BFH
MOV6AH,#08H
//6暂存
MOV70H,#0AH
MOV71H,#0AH
MOV72H,#00H
MOV73H,#00H
MOV74H,#0AH
MOV75H,#0AH
CLRS1
CLRS2
CLRS3
CLRS4
CLRS5
CLRS6
MOV30H,#12H
CLRTIMER_ON
MOVTMOD,#01H
MOVTH1,#00H
MOVTL1,#00H
SETBET0
SETBEA
CLRTR0
MAIN:
JBCLR_S,NOT_CLR//是否按下清零键
MOV73H,#00H
MOV72H,#00H
CLRTIMER_ON
CLRTR0
NOT_CLR:
JBSB,SKIP//开始与停止,是否按下SB,是向下执行,否跳到skip
JBTIMER_ON,OFF//是否开启,为0位没有开启,向下执行开启。
否则关闭
SETBTIMER_ON
SETBTR0
SJMPSKIP
OFF:
CLRTIMER_ON
CLRTR0
SKIP:
MOVR1,#70H
CLRS1;
LCALLDIS_N
INCR1
SETBS1;
CLRS2;
LCALLDIS_N
INCR1
SETBS2;
CLRS3;
LCALLDIS_N
INCR1
SETBS3;
CLRS4;
LCALLDIS_N
INCR1
SETBS4;
CLRS5;
LCALLDIS_N
INCR1
SETBS5;
CLRS6;
LCALLDIS_N
INCR1
SETBS6;
SJMPMAIN
DIS_N:
MOVA,#0FFH//clear
LCALLPRINT_BYTE
MOVA,@R1//获取暂存器内数值
ADDA,#60H//获取码值地址
MOVR0,A
MOVA,@R0//获取码值
CPLA//根据数码管共阴共阳情况是否取反
LCALLPRINT_BYTE//senddata
LCALLDELAY
RET
//向一位寄存器写于一字节
PRINT_BYTE:
MOVR0,#08H//8个字节
RLA:
RLCA//右移1位
CLRCLK
MOVSIN,C
SETBCLK
DJNZR0,RLA
RET
DELAY:
MOVR0,#0FFH
DE1:
DJNZR0,DE1
RET
T0_S:
//T0中断程序
MOVTH1,#00H
MOVTL1,#00H
DJNZ30H,OUT_T0//定时器是否跑完设定变数,是就向下执行,没有只是各位家1
MOV30H,#12H//初始化遍数
MOVA,73H
CJNEA,#09H,INC_G//各位是否为九
MOV73H,#00H//清零个位
INC72H//十位加1
SJMPOUT_T0
INC_G:
INC73H
OUT_T0:
RET
END
5结论
本文主要从硬件方面说明设计的总体思路和设计的实现过程,预期的设计目的是:
能够实现秒表的基本功能,正常显示.在设计过程中,曾经遇到很多的障碍,设计图经过许多次的修改最后才定下来,但在调试的过程中又出现了问题;并不没有想象中的那么容易;再焊接过程中稍不注意就会出现管脚的错位,有些在硬件测试过程中才检查出来。
在设计中有好多问题都是因为理论知识不扎实,在有些管脚的置零置一上,概念的模糊,这使作者明白要把所学到的理论转化为实践需要一段努力学习的过程;在做一个设计的过程中,一定要注意理论和实践同步进行,光有理论知识还是远远不够的,要用时间去检验理论,用理论指导实践。
刚开始接到课程设计任务,认为挺简单的,然而真正开始动手制作时才知道并不是那么简单,从初期的资料收集以及原理图的绘制都受到了老师以及同学的帮助,在遇到困难时请教老师和同学都能得到耐心的解答,帮助我们少走弯路。
感谢我的老师,以及我的同学,在整个硬件电路的设计与制作过程中,他们都给了我很大的支持,是我从此次课程设计过程中获益匪浅,本人对设计过程中给予了通力合作,以及精神的支持,的老师和同学深表感谢。
如果没有他们我想我的设计不会这样顺利的完成。
由于本人水平有限,在技术指标和论文写作中可能存在一些缺陷,恳请各位老师和同学们批评指教。
参考文献
[1]吴金戎,沈庆阳,郭庭吉.8051单片机实践与应用[M].北京:
清华大学出版社,2002
[2]楼然苗,李光飞.51系列单片机设计实例[M].北京:
航空航天大学出版社,2003
[4]李鸿.单片机原理及应用[M].湖南:
湖南大学出版社,2004
[5]何立民.单片机高级教程[M].第1版.北京:
北京航空航天大学出版社,2001
[6]徐惠民、安德宁.单片微型计算机原理接口与应用[M].第1版.北京:
北京邮电大学出版社,1996
[7]肖洪兵.跟我学用单片机[M].北京:
北京航空航天大学出版社,2002.8
[8]李广第.单片机基础[M].第1版.北京:
北京航空航天大学出版社,1999
[9]赵晓安.MCS-51单片机原理及应用[M].天津:
天津大学出版社,2001.3
[10]何立民.从Cygnal80C51F看8位单片机发展之路[M].单片机与嵌入式系统应用,2002年,第5期:
P5~8
[11]夏继强.单片机实验与实践教程[M].北京:
北京航空航天大学出版社,2001
指导教师评语:
成绩:
指导教师签字:
年月日