届学生毕业论文(设计) 存档编号:
江汉 大 学 文 理 学 院
Collegeof Arts & Science of Jianghan University
毕业论文(设计)
(英 文)Design andimplementation of single chip
electronicclock
学 部信息技术学部
专业电子信息工程
姓 名
学号
指导老师
5月8日
承诺书
本人毕业论文(设计)无剽窃、剽窃现象。
本人熟知学校对毕业论文(设计)剽窃、
剽窃现象按作弊处理,对已毕业学生,
学 | 校 | 将追 | 回毕业证和学 | 位证书 | 。 |
如本人毕业论文(设计)有以上违纪现象,
所造成知识产权等纠纷,一切后果由本人负担。
承诺人:__________________
5月8日
摘要
电子钟亦称数显钟(数字显示钟)。它是一个利用数字电路技术实现时、 分、
无机械传动装置等优点,给大家生活、 学习、 工作、娱乐带来极大地方便。 秒计时装置。 和传统机械钟相比,它含有走时正确、 显示直观、
在此次设计中, 电路含有显示时间基础功效,还能够实现对时间调整和定时响铃。在这次设计中, 我们以二十四小时计时方法,采取LED数码管显示时、分、 秒,
依据数码管动态显示原理来进行显示。用12MHz晶振产生振荡脉冲,定时器计数。
数字钟因其小巧,价格低廉,走时精度高,使用方便,功效多,
便于集成化而受广大消费喜爱.所以,研究数字钟及扩大其应用,有着很现实意义。
关键字:数字电子钟;单片机;数码管
Abstract
Electronicclock is also called digital clock. It is a kind of device to realizethe use of digital circuit technology, minutes, seconds. Comparedwith the old mechanical clock, it has
life, study, work, entertainment , it brings great convenience. In this design, we take 24 hour the advantages of accurate, intuitive display, no mechanical transmission device. To people's |
oftime and regular rings. Digital clock because of its small, lowprice, travel time and high precision, convenient use, multiplefunctions, easy integration and loved by the general consumer. Therefore , the digital clock and expand its application, has thevery. realistic significance.
Keywords:digital electronic ; clock chip; digital
目录
目录.........................................................III摘 要........................................................I
1.绪论.........................................................1
1.2 电子时钟现实状况和发展趋势......................................1
1.3 本设计研究关键内容和终极目标...............................1
2.采取关键技术.................................................3
2.1单片机控制技术...................................................3
2.1.1AT89C51关键功效................................................3
2.1.2AT89C51引脚特征................................................4
2.1.3结构特点..................................................................................................................5
2.2软件仿真技术.............................................................................................................7
2.2.1keil仿真.......................................................7
2.2.2protues 仿真...................................................8
3.电子时钟硬件电路设计.........................................9
3.1系统控制电路(单片机系统).......................................9
3.2秒信号产生电路..................................................10
3.3计时电路........................................................10
3.4校准电路........................................................10
3.6 功效选择电路(键盘控制)........................................123.5显示电路........................................................10
4.电子时钟软件程序设计........................................14 4.1 主程序步骤......................................................14
4.2计时程序步骤....................................................16
4.3键盘扫描程序....................................................17
4.4中止程序及延时程序...............................................17
4.5时间显示程序....................................................18
5.电子时钟电路仿真和性能测试..................................20
5.1 电子时钟电路仿真图.............................................20
5.1.1电子时钟正常走时状态电路仿真图................................20
5.1.2电子时钟定时响铃电路仿真图....................................21
5.2电子时钟性能测试分析............................................22
5.2.1系统性能测试..................................................22
5.2.2系统误差分析..................................................25
6.收获体会....................................................26
致谢.........................................................27
参考文件......................................................28
附录:电子时钟程序清单..........................................29
1绪论
1.1 选题背景和意义
伴随科技进步,电子技术取得了飞速发展。在社会各个领域,
我 | 们 | 能 | 够 | 看 | 到 | 多 | 种 | 多 | 样 | 电 | 子 | 产 | 品 | 。 |
电子技术进步使我们社会生产力发展和社会信息化程度得到了提升。
现代社会电子产品性能也更深入提升,多种产品更新换代速度越来越快。
几百年前开始,钟表就已将出现,以前摆钟和怀表能够说是钟表中经典,
它们不仅大方实用,而且制作精美。不过,近几十年来,
它们已经逐步被电子时钟所替换。电子时钟正确度高,外观小巧,功效完善,
我们只需要进行软件编写,就能够实现我们所需要功效。成本低。 单片机控制电子时钟含有时钟多种功效,而且硬件组成很精简,
很多时候全部需要我们对时间把握很严格和正确,错误信息会带来很大麻烦。
这个时候数字电子钟就给我们带来了很大方便,数字电子钟是以数码管作为显示器,
比指针式时钟有很大优势。用数码管来显示时间,我们能够简单快速读数,
而且它时间正确显示到秒。所以,电子时钟在生活中被广大消费者喜爱,
得到了广泛应用。
数字电子时钟精度是远远超出传统钟表。 在生活中,
我们享受着钟表数字化带来便利,而且不停扩展着钟表功效,
让它在更多领域得到应用。比如,时间程序自动控制、定时自动报警、 定时广播、
按时自动打铃、定时开关烘箱、 通断动力设备、 自动起闭路灯等等多种定时装置,它们全部是以钟表数字化为基础。所以,我们对数字钟进行研究而且扩大它应用,是有着很现实意义。
1.3 本设计研究关键内容和终极目标
此次设计是使用12MHZ晶振和单片机AT89C51相连接,经过软件编程方法来设计以二十四小时为一个周期同时显示小时,分钟和秒数字电子钟,并在计时过程中经过对调时键盘扫描来调整时间,和控制显示电路进行时间显示功效和定时响铃功效。整体方案图1-1所表示。
键盘输入
定时闹铃
钟
图1-1 电子时钟设计总方案图
|
单片机是一个在一块硅片上集成了多种部件微型计算机。它能够将中央处理器(CPU)、数据存放器(RAM)、程序存放器(ROM)、定时器\计数器和输入/输出(I/O)接口电路等关键计算机部件,集成在一块电路芯片上,独立实施内部程序。
2.1.1AT89C51关键功效
AT89C51是一个带4K字节闪烁可编程可擦除只读存放器(FPEROM—FalshProgrammable and Erasable Read Only Memory)低电压,高性能CMOS8位微处理器,俗称单片机。因为将多功效8位CPU和闪烁存放器组合在单个芯片中,
所以ATMELAT89C51是一个高效微控制器,
它为很多嵌入式控制系统提供了一个灵活性高且价廉方案。AT89C51引脚特征图2-1所表示。
关键特征:
·和MCS-51兼容
·4K字节可编程闪烁存放器
·寿命:1000写/擦循环
·数据保留时间:
·全静态工作:0Hz-24Hz
·128*8位内部RAM ·三级程序存放器锁定
·两个16位定时器/计数器·5个中止源·32可编程I/O线
·可编程串行通道
·低功耗闲置和掉电模式 图2-1单片机引脚图
·片内振荡器和时钟电路
2.1.2AT89C51引脚特征
(1)P0口(P0.0~P0.7)
8位、漏极开路双向I/O口。
当使用片外存放器及外扩I/O口时,P0口作为低字节地址/数据复用线。在编程时,P0口可用于接收指令代码字节;程序校验时,可输出指令字节。
P0口也可做通用I/O口使用,但需加上拉电阻。作为一般输入时,应输出锁存器配置1。P0口可驱动8个TTL负载。
(2)P1口(P1.0~P1.7)
8位、准双向I/O口,含有内部上拉电阻。
P1口是为用户准备I/O双向口。在编程和校验时,可用作输入低8位地址。用作输入时,应先将输出锁存器置1。P1口可驱动4个TTL负载。
(3)P2口(P2.0~P2.7)
8位、准双向I/O口,含有内部上拉电阻。
当使用外存放器或外扩I/O口时,P2口输出高8位地址。在编程和校验时,P2口接收高字节地址和一些控制信号。
(4)P3口(P3.0~P3.7)8位、准双向I/O口, 含有内部上拉电阻。
P3口接收一些控制信号。它可驱动4个TTL负载。P3口除了作为通常I/O口使用之外,其还含有特殊功效。 P3口作为AT89C51部分特殊功效口,以下表2-1所表示。
表2-1P3端口引脚兼用功效表
P3引脚 | 兼用功效 |
P3.0 | 串行通讯输入(RXD) |
P3.1 | 串行通讯输出(TXD) |
P3.2 | 外部中止0( INT0) |
P3.3 | 外部中止1(INT1) |
P3.4 | 定时器0输入(T0) |
P3.5 | 定时器1输入(T1) |
P3.6 | 外部数据存放器写选通WR |
P3.7 | 外部数据存放器写选通RD |
(5)RST:复位输入信号,高电平有效。在振荡器稳定工作时,在RST脚施加两个机器周期以上高电平,将器件复位。
(6)ALE/PROG:低字节锁存信号ALE。在系统扩展时,ALE下降沿将P0口输出低8位地址锁存在外接地址锁存器中,以实现低字节地址和数据分时传送。另外,ALE端连续输出正脉冲,频率为晶振频率1/6,可做外部定时脉冲使用。
(7)/PSEN:片外程序存放器读选通信号,低电平有效。在片外程序存放器取指令期间,当PSEN有效时,程序存放器内容被送至P0口;在访问外部数据存放器时,PSEN无效。
对ROM读操作限定在外部程序存放器,地址为0000H-FFFFH; 当EA接VCC时,(8)/EA/VPP:外部程序存放器访问许可信号EA。当EA信号接地时,
该引脚可接编程电压5V或12V。在编程校验时, 该引脚可接VCC。对ROM读操作从内部程序存放器开始,并可延续至外部程序存放器。在编程时,
(10)XTAL2:来自反向振荡器输出。
2.1.3结构特点
AT89C51内部关键包含:一个8位CPU,一个时钟电路,4Kbyte程序存放器,128byte数据存放器,两个16位定时/计数器,64Kbyte扩展总线控制电路,四个8-bit并行I/O端口,一个可编程串行接口,五个中止源,其中包含两个优先级嵌套中止,图2-2所表示。
图2-2单片机系统结构框图
1. CPU
2. 存放器 AT89C51单片机存放器包含数据存放器和程序存放器,CPU即中央处理器简称,是单片机关键部件,它完成多种运算和控制操作。
3. 并行I/O口 AT89C51单片机有4个双向8位并行口P0~P3,每一个口全部有一个8位锁存器,其关键特点是程序存放器和数据存放器寻址空间是相互独立,物理结构也不相同。
复位后她们初始状态全为1,每一条I/O线全部能独立地用作输入或输出。P0口为三态双向口,能带8个TTL门电路,P1、P2和P3口为准双向口,负载能力为4个TTL门电路。
4. 串行I/O口
AT89C51单片机含有一个采取通用异步工作方法全双工串行通信接口,能够同时发送和接收数据。它含有两个相互独立接收、 发送数据缓冲器,两个缓冲器共用一个地址(99H),发送缓冲器只能写入,不能读出,接收缓冲器只能读出,不能写入。
5.定时/计数器
AT89C51单片机内有两个可编程16位定时/计数器,记做T0和T1。
T0和T1含有两种工作方法:定时器工作方法和计数器工作方法。
作为定时器工作方法,每个机器周期给定时/计数器加1,因为一个机器周期包含12个震荡周期,故计数速率是震荡器1/12;作为计数器工作时,每当T0或T1外部输入信号引脚(即P3.4脚或P3.5脚)由1转0时,计数器加1。
定时/计数器T0和T1除含有两种工作方法外,还含有4钟工作模式。
模式0:13位定时器/计数器。
模式1: 16位定时器/计数器。
模式2:8位定时器/计数器,可重装初值。
模式3: 定时/计数器0分为两个8位定时/计数器定时/计数器1在此方法无意义。 和定时/计数器相关特殊功效计数器为TMOD和TCON,其相关格式如表2-
2所表示。
表2-2TMOD格式
定时/计数器1 | 定时/计数器0 | ||||||||||
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | ||||
GATE | C/ | T | | M1 | M0 | GATE | C/ | T | | M1 | M0 |
GATE=0,表示对应外部中止不起作用;GATE=1,表示对应外部中止起作用。C/=0,表示定时器工作方法;C/=1,表示计数器工作方法。
M1M0表示定时器/计数器工作模式选择。M1M0=00,选择工作模式0;M1M0=01,选择工作模式1;M1M0=10,选择工作模式2;M1M0=11,选择工作模式3。
6.中止系统
AT89C51单片机中止系统有5个中止源。
AT89C515个中止源中, 两个为外部中止 |
(P3.2脚)和 | INT1 |
(P3.3脚)输入中止请求;两个为片内定时/计数器T0、T1溢出中止请求TF0和TF1;一个为片内串行口中止请求TI(发送中止)和RI(接收中止)。这些溢出中止请求标志分别由特殊功效寄存器TCON和SCON对应位锁存。
7. 时钟电路
AT89C51芯片内部有时钟电路,但晶体振荡器和微调电容必需外接。时钟电路为单片机产生时钟脉冲序列,振荡器频率范围为1.2MHz~12MHz,经典取值为6MHz。
以上全部组成部分全部是经过总线连接起来,从而组成一个完整单片机。 8. 总线
总线结构降低了单片机连线和引脚,提升了集成度和可靠性。 系统地址信号、数据信号和控制信号全部是经过总线传送,
2.2软件仿真技术
2.2.1keil仿真
Keil企业是一家业界领先微控制器(MCU)软件开发工具独立供给商。Keil企业由两家私人企业联合运行,分别是德国慕尼黑KeilElektronik GmbH和美国德克萨斯KeilSoftware Inc。Keil企业制造和销售种类广泛开发工具,包含ANSIC编译器、宏汇编程序、 调试器、 连接器、 库管理器、
固 | 件 | 和 | 实 | 时 | 操 | 作 | 系 | 统 | 关 | 键 | ( | real-time | kernel) | 。 |
有超出10万名微控制器开发人员在使用这种得到业界认可处理方案。其Keil
C51编译器自1988年引入市场以来成为实际上行业标准,并支持超出500种8051变种 2.2.2protues 仿真
Proteus是世界上著名EDA工具(仿真软件),从原理图布图、代码调试到单片机和外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品完整设计。是现在世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一设计平台,其处理器模型支持8051、HC11、
PIC10/12/16/18/24/30/DsPIC33、 | AVR、 | ARM、 | 8086和 | MSP430等 | , |
又增加了Cortex和DSP系列处理器,并连续增加其它系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多个编译器。
Proteus仿真软件包含两个应用程序,ProteusISIS和Proteusares
包含几千个模拟和数字电路中常见Spice模型及多种动态元件,如三极管、 ProteusISIS是Proteus系统关键,拥有超出8000元件大型元件库,
同时ISIS也为用户提供了很友好作图界面,元件之间连线方便、 灵活、 高效率,剪切、 移动等操作借助鼠标可简单实现;另外, ISIS还支持层次图设计,支持WMF、 555定 时
BNP、DXF等多个图形输出格式。
3电子时钟硬件电路设计
电路是由控制部分和显示部分两大部分组成。 利用单片机程序进行控制, |
图3-1所表示。
图3-1单片机最小系统结构图
1.电源电路
GND20 接地端; VCC40 接入电源端;
2.振荡电路工作电压为5V。
时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。AT89C51单片机内部有一个用于组成振荡器高增益反相放大器。引脚XTAL1和XTAL2分别是此放大器输入端和输出端。这个放大器和作为反馈元件片外晶体谐振器一起组成一个自激振荡器。外接晶体谐振器和电容C1和C2组成并联谐振电路,接在放大器反馈回路中。
3.复位电路
在 | 振 | 荡 | 器 | 运 | 行 | 时 | , |
有两个机器周期(24个振荡周期)以上高电平出现在RET引脚时,将使单片机复位,
只 | 要 | 这 | 个 | 脚 | 保 | 持 | 高 | 电 | 平 | , | 51芯 | 片 | 便 | 循 | 环 | 复 | 位 | 。 | , |
复 | 位 | 后 | P0- | P3口 | 均 | 置 | 1引 | 脚 | 表 | 现 | 为 | 高 | 电 | 平 |
程序计数器和特殊功效寄存器SFR全部清零。当复位脚由高电平变为低电平时,芯片为ROM00H处开始运行程序。复位是由外部复位电路来实现。片内复位电路是复位引脚RST经过一个斯密特触发器和复位电路相连,斯密特触发器用来抑制噪声,它输出在每个机器周期S5P2,由复位电路采样一次。复位电路通常采取上电自动复位和按钮复位两种方法,
此电路系统采取是上电自动复位电路。复位操作不会对内部RAM有所影响。
4.EA接入状态
将自动转向访问外部存放器。 引脚EA接入高电平,表示访问内部程序存放器,当程序计数器值超出0FFFH时,
然后经过定时中止响应20次来计时1秒钟。 3.2 秒信号产生电路
3.3计时电路
计时电路是经过对秒信号累计,秒信号达成60,分加1,秒清零;分累计达成60,小时加1,分清零;小时达成24,小时清零,如此循环计时。
3.4校准电路
在这次时钟系统设计中,是经过K、kadd、ksub三个键对时、分、 秒来进行加、 减校对调整。
3.5显示电路
显示电路显示模块需要实时显示目前时间,即时、分、 秒,所以需要6个数码管,
另需两个数码管来显示横。此次设计采取动态显示方法显示时间,
时十位和个位分别显示在第一个和第二个数码管,
分十位和个位分别显示在第四个和第五个数码管,
秒十位和个位分别显示在第七个和第八个数码管,其它数码管显示横线。
此次设计是经过LED采取动态扫描方法来对时间进行显示,
其接口电路是把全部LED显示器8个笔划段a~g、dp同名端连在一起,
由P2口控制公共COM端来决定哪个数码管点亮(低电平点亮),P0口输入字形码。
经过轮番控制各个显示器COM端,使各个显示器轮番点亮。
因为每位显示器点亮时间是极为短暂,所以只要扫描速度足够快,
给人印象就是一组稳定显示数据,不会有闪烁感,图3-2(a)和图3-2(b)所表示。
图3-2(a)数码管连接电路
此次设计了5个键,kadd和ksub用于对时间进行加减,K用于对时, 分,
秒进行选择和判定时钟是否从正常走时状态进入到设定时间状态, K1用于开启时钟,
让时钟开始走时,K2用于对时钟闹铃时间进行设定。按键电路连接关系图3-
3所表示。
图3-3按键控制电路连接图
此次设计电子时钟有到时响铃功效,当初间抵达指定时间时,蜂鸣器就会开启, 3.7定时闹铃电路
发出响声5秒,其电路连接图3-4所表示。
图3-4蜂鸣器电路连接图
4电子时钟软件程序设计
系 | 统 | 软 | 件 | 设 | 计 | 也 | 是 | 系 | 统 | 功 | 效 | 设 | 计 | 。 |
单片机软件设计关键包含实施软件(完成多种实质性功效)设计和监控软件设计。
4.1主程序步骤
主程序步骤图4-1所表示。
开始
设置初值,开中止
时间显示
K1是否按下
键盘扫描
N
K是否按下
Y
时钟停止工作
N
K2是否按下
Y
定时闹钟
图4-1主程序步骤图
4.2计时程序步骤
本设计编写了一个计时程序,经过它使时钟正常走时,其具体步骤图4-2所表示。
开始
一秒时间到?
Y
秒单元加1
N
秒单元清零,分单元加1
N
60分钟到?
Y
分单元清零,时单元加1
N
二十四小时到
? | Y |
时单元清零
结束
图4-2计时步骤图
4.3键盘扫描程序
此次设计键盘扫描程序有两部分,一部分在主程序中,经过K、K1、K2来选择电子时钟状态。按下K表示时钟进入调时状态,按下K1表示时钟进入走时状态,按下K2表示时钟进入设定闹铃时间状态。
另一部分在调试时态下按键扫描程序中,其中K键用于对时,分,秒进行选择。
程序开始, 先判定K键是否按下和按下几次。K键按下1次,表示选择小时;
K键按下2次,表示选择分钟; K键按下3次,表示选择秒; K键按下4次,表示清零, 能够重新进行选择。再来判定kadd和ksub是否按下,kadd按下表示加1,
ksub按下表示减1, 图4-3所表示:
i=1 i=2 i=3 i=4
小分
时钟 秒
kadd按下,加1 ; ksub按下,减1 i=0
图4-3按键处理示意图
4.4中止程序及延时程序
中止程序,此次设计中,经过中止进行计时,在中止程序中定时50毫秒,中止响应20次,则1秒钟时间到。
定时初值:
此 | 次 | 设 | 计 | 选 | 择 | 是 | 定 | 时 | 器 | 0在 | 工 | 作 | 方 | 法 | 1下 | 工 | 作 | , |
所以TMOD初始值为0x01.因为晶振频率为12MHZ,所以机器周期为1us。 定时时间:X=(216-50000)/1
TL0=(216-50000)%256 TH0=(216-50000)/256
通常按键在闭合位置和断开位置之间跳几下才稳定到闭合状态情况;在释放一个键时, 当用手按下一个键时,图4-4所表示,也会出现类似情况, 这就是抖动。抖动连续时间随键盘材料和操作员而异,
不过通常总是小于10ms。抖动问题不处理就会引发对闭合键误识别。
用软件方法能够很轻易地处理抖动问题,这就是经过延迟10ms来等候抖动消失,这以后,在读入键盘码。
键按下
前沿抖动后沿抖动
闭合
稳定
图4-4按键抖动信号波形
4.5时间显示程序
此次设计数码管是共阴极。当选择共阴极LED时,
全部发光二极管阴极连在一起接地,当某个发光二极管阳极加入高电平时,
对应二极管点亮。所以要显示某字形就应使此字形对应段二极管点亮,
我们能够得出数码管显示0-9字型码, 以下所表示: 实际上就是送一个用不一样电平组合代表数据字来控制LED显示, 依据图4-5和表4-1, |
图4-5共阳式、共阴式LED数码管原理图和数码管符号图
时个位和十位分别提取出来。然后提取对应字型码送入P0口,经过P2口选择,在此次设计中, 我们要让时间显示出它对应数值,是先将秒、 分、
轮番显示, 其具体内容图4-6所表示。
%10,得到个位
/10,得到十位
P0口段选 P2口位选
图4-6时间显示示意图
LED显示
5 电子时钟电路仿真和性能测试
此次设计经过keil软件和protues软件进行软件仿真,实现对电子时钟功效测试。
5.1 电子时钟电路仿真图
5.1.1电子时钟正常走时状态电路仿真图
电子时钟正常走时状态仿真图图5-1所表示。
图5-1电子时钟正常走时仿真图
5.1.2电子时钟定时响铃电路仿真图
电子时钟定时响铃状态仿真图,为了显示显著用发光二极管替换蜂鸣器,图5-2所表示。
图5-2电子时钟响铃状态仿真图
5.2电子时钟性能测试分析
5.2.1系统性能测试
1.调时状态
经过k,kadd,ksub对时,分,秒进行加减调整。时钟开始默认为调时状态,图5-3所表示。
对小时进行加、 减调整,图5-4和图5-5所表示。
图5-4 小时加调整
图5-5 小时减调整
对分钟进行加、减调整,图5-6和图5-7所表示。
图5-7分钟减调整
对秒进行加、减调整,图5-8和图5-9所表示。
图5-8秒加调整
图5-9秒减调整
2.走时状态
按二十四小时制分别显示“时时-分分-秒秒”,有2个“-”动态显示,时间会按实际时间以秒为最少单位改变,图5-10所表示。
图5-10时钟正常走时
3.定时响铃
在调时状态时设定响铃时间,然后在走时状态中,时间达成定时时间,开始响铃,5秒后结束。
用发光二极管替换蜂鸣器,发光二极管会亮5秒熄灭,图5-11和图5-12所表示:
图5-11 时钟到时闹铃显示
图5-125秒后闹铃结束
5.2.2系统误差分析
此次设计单片机电子钟系统中,其误差关键起源包含晶体频率误差,
定时器溢出误差,延迟误差。晶体频率产生震荡,轻易产生走时误差;
定时器溢出时间误差,本应这一秒溢出,但却在下一秒溢出,造成走时误差;
延迟时间过长或过短,全部会造成和基按时间产生偏差,造成走时误差。
这次设计中碰到了很多问题,比如:时间调整从0减1应该等于23或59,
不过开始时总是直接就跳到22或58了,以后明白了0先减了个1,
那么应该是对应值等于-1,它才能跳到23或59。还有仿真过程中,
按键调整状态时候,第一次按一下就能快速调整好,到第二次按时,
假如按下时间短了,就不会改变,原来是因为第一次直接实施按键相关程序,
而以后要实施主程序中全部程序,需要时间,要检测到按键,
就需要按下时间也长部分。
在此次设计中,我即使碰到了不少麻烦,经过反复编译仿真才处理它们,
不过也从中学到了很多:
1.
在进行设计之前,我们首先要对我们所学单片机有一个系统了解,知道单片机片内片外
内容及其功效。这么才能合理利用它去完成我们所需要功效。
2.在开始编写程序之前,我们要有一个清楚思绪,想好设计步骤,
有哪些部分功效,怎样去完成一个整体电子时钟系统。
模块化设计思想在程序设计中作用是很大,它能够为你提供一个比较清楚思绪,
而且很轻易找到头绪,不至于在编写一个程序时感觉到无从下手。
3.在编写程序时,我们要静下心来,程序只有经过反复推敲才能设计好。
程序刚开始编好时,通常情况下会存在部分错误,要我们不停地修改,
不停改善才能达成预期目标。所以我们一定要有耐心。
经过对以前所学知识回顾和了解,和对毕业设计思索和合理书面表示,
最终完成了毕业设计。这为我以后深入深化学习, 积累了不少经验。撰写论文过程也是我们专业知识学习深入加深过程,在这个过程中,
我学会了利用已经有专业基础知识,来进行时钟系统设计,
分析和处理碰到理论问题或实际问题,让我实际动手能力得到了提升。
对于此次设计,实现了电子时钟显示,调时和闹铃功效,
不过也有部分还未完善地方。比如:对于电子时钟系统实现只进行了原理上仿真,
而且在电子时钟系统功效实现方面有所欠缺。期望以后能够深入增加其它功效,
比如显示年月日及温度等等。总体来说:圆满完成了任务,实现了电子时钟设计。
致谢
经过这一阶段努力,我毕业论文最终完成了,我们大学生活也立即结束了。
在大学阶段,我在学习上和思想上全部学到了很多,进步了很多,这除了本身努力外,
和各位老师、同学和家人关心、 支持和激励是分不开。 本文从选题到完成,
每一步全部是在我导师路银聚指导下完成,倾注了导师大量心血。
我们导师对我们给了极大帮助,从选题到开题汇报,从写作提要,
到一遍又一遍地指出论文具体问题,严格把关,循循善诱,在此我表示衷心感谢。
写毕业论文是一次再系统学习过程, 毕业论文完成, 一样也意味着新学习生活开始。 同时我还要感谢在我学习期间给我极大关心和支持各位老师和关心我同学和家人。 |
参考文件
[1].贺红娟.汇编语言程序设计教程.清华大学出版社.-4-1。
[2].任文.孔庆彦.C语言程序设计.机械工业出版社.-7-1。
[3].吉海彦.微机原理和接口技术.机械工业出版社.-7-1。
[5]. 陈涛.单片机应用及C51程序设计.机械工业出版社.-1-1。[4]. 段德功.丁莹亮.单片机原理及应用.经济科学出版社.-5。
[8] 何立民.单片机高级教程(第一版)[M].北京:北京航空航天大学出版社, [6] 楼然苗.《单片机课程设计指导》.北京航空航天大学出版社,.7.
[7]苏家健.《单片机原理及应用技术》.高等教育出版社,.11.
[9]张毅坤,陈善久,裘雪红.单片微型计算机原理及应用.西安电子科技大学出版,1998.91
版.Commented[Z1]: 换行应和作者名字第一个字对齐
[10]李学海.《标准80C51单片机基础教程:原理篇》.北京航空航天大学出版社,.
[11]王建校.《51系列单片机及C51程序设计》.科学出版社,.
[12]陈龙三.《C语言控制和应用》.清华大学出版社,1999.8.
[13]赵建领.《51系列单片机开发宝典》.电子工业出版社,.
附录:电子时钟程序清单:
/*设定初始内容*/
#include<reg52.h> sbit kadd=P1^0; |
|
sbit K=P1^2; sbit K1=P1^3; sbit ksub=P1^1; |
sbitK2=P1^4;
sbit bear=P1^6;
unsigned char secshi=0,secge=0,minshi=0,minge=0,hourshi=0,hourge=0;
unsigned int num=0,sec=0,min=0,hour=0;
unsigned int sec1=25,min1=25,hour1=25;
unsigned int a=0,i=0;
unsigned char codetable[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; voiddelay(unsigned int);
void keyscan();
voiddisplay();
void jishi();
/*主程序*/
main()
{TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;ET0=1;
while(1)
{bear=0; |
display();
if(hour==hour1&&min==min1&&sec==sec1)
{bear=1;}
if(sec==sec1+5){bear=0;}
while(K==0){delay(10);
while(K==0){a--;TR0=0;num=0;i=0;}
}
}}}
while(K2==0){delay(10);
while(K2==0){a++;
while(a==1){display();a--;
sec1=sec;min1=min;hour1=hour;}
}
}
}
}
voiddelay(unsigned int z)
{unsigned int x,y; |
{num++;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
}
/*计时程序*/
voidjishi()
{
TR0=1;
if(num==20)
{num=0;
sec++;
if(sec==60)
{sec=0;
min++;
if(min==60)
{min=0;
hour++; |
}
}
/*显示程序*/
voiddisplay()
{
secge=sec%10;
secshi=sec/10;
minge=min%10;
minshi=min/10;
hourge=hour%10;
hourshi=hour/10;
P2=0xfe;
P0=table[secge];
delay(5);
P2=0xfd;
P0=table[secshi];
delay(5); |
delay(5);
P2=0xef;
P0=table[minshi];
delay(5);
P2=0xdf;
P0=0x40;
delay(5);
P2=0xbf;
P0=table[hourge];
delay(5);
P2=0x7f;
P0=table[hourshi];
delay(5);}
/*按键控制子程序*/
voidkeyscan()
{if(K==0)
{delay(10); |
|
if(i==1){if(kadd==0){delay(10); while(!K);} |
while(!kadd){display();}
}
}
if(ksub==0){delay(10);
if(ksub==0){
hour--;
if(hour==-1)hour=23;
while(!ksub){display();}
}
}
}
if(i==2){if(kadd==0){delay(10);
if(kadd==0){min++;if(min==60)min=0;
while(!kadd){display();}
}
}
if(ksub==0){delay(10);
if(ksub==0){min--; |
if(i==3){if(kadd==0){delay(10);
if(kadd==0){sec++;if(sec==60)sec=0;
while(!kadd){display();}
}
}
if(ksub==0){delay(10);
if(ksub==0){sec--;
if(sec==-1)sec=59;
while(!ksub){display();}
}
}
}
if(i==4)i=0;
}