创建博客 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

失忆后的我的博客

 
 
 

日志

 
 

数字时钟(C语言)时钟计时器  

2009-06-26 15:27:38|  分类: 默认分类 |  标签: |举报 |字号 订阅

 

时钟计时器设计

一、   设计任务、目标

1、设计任务:以Ateml公司的AT89S51作为时钟计时器的控制核心,

2、设计目标:

(1)掌握单片机的基本程序使用

(2)通过对原理图绘制PCB,复习以及进一步熟悉Protel软件的使用

(3)通过对作品的安装与调试,掌握作品的调试方法

(4)提高团队合作,以及能够对电路进行分析

二、   方案分析

1、整体电路

电源

扫描驱动

LED显示

调整

数字时钟(C语言)时钟计时器 - 小傻瓜 - 失忆后的我的博客系统由 AT89C51、LED数码管、按键、发光二极管等部分构成,AT89C51单片机通过7447译码点亮LED数码管,74LS138控制三极管导通驱动数码管的关断,按键能实现时间的调整时位校对、分位校对、秒位校对状态,由单片机做成的时钟电路,比较简单且稳定,编程也方便可擦写精度高。因此我们选择此方案。

 

 

 

 

 

 

 

图2.1单片机实现数字钟模块硬件框图

2、电源电路

在电源设计中我们有可以两种选择:

   方案一:用可调稳压电路,主要有4007二极管、稳压管、和电位器组成。或者是通用稳压集成块LM723,内部含有启动电路、恒流源、基准稳压源、过流保护等电路。配合大功率调整管,可输出0~20V连续可调的稳定电压,最大输出电流可达2A,并且具有过流保护功能。这种稳压集成块价格昂贵,所以不采用此方案。

方案二:做一个固定直流稳压电源,因为本次设计需要的只是+5V直流电压。查看相关资料后我选择通过L7805芯片得到+5V电压,此电路首先要通过变压器降压,再通过桥堆得到直流电压。最后通过L7805得到+5V电压。方案一与方案二相比,方案二的电源显得简单、稳定、实用,所以采用此方案。

3、显示电路

方案一:使用共阳极数码管,分别把共阳极数码管的7段二极管引脚和单片机的其中7个输出口连接一起,即静态显示,中间不需要另加复杂电路,显示数字可通过查表程序来调用。但是考虑到,数码管共有7个,单片机只有3组输出口,而且也失去了用单片机工作的意义,所以不采用此方案。

方案二:使用动态扫描来显示,只要用到单片机的一组输出口,P0.0至P0.3通过7447传输数据,P0.4至P0.6为用74LS138来控制三极管的导通。而且单片机的工作频率稳定,扫描显示的数字频率高。功能可靠,电路的硬件连线简单,需要的限流电阻等器件都可以使七个数码管共用。所以我采用此方案。

三、   硬件

1、单片机简介:

AT89S51是一个低功耗,高性能CMOS 8

位单片机,片内含4k Bytes ISP(In-system

programmable)的可反复擦写1000次的Flash

只读程序存储器,器件采用ATMEL公司的高密

度、非易失性存储技术制造,兼容标准MCS-51

指令系统及80C51引脚结构,芯片内集成了通

用8位中央处理器和ISP Flash存储单元,

功能强大的微型计算机的AT89S51可为许多嵌

入式控制应用系统提供高性价比的解决方案。

AT89S51在工艺上进行了改进,采用新工艺,    图3.1单片机AT89S51引脚图

降低了成本,而且提升了功能,增加了竞争力。    

AT89S51和AT89C51内核相同,AT89S51针对AT89C51明显的几个升级如下:

(1)ISP在线编程功能,这个功能的优势在于改写单片机存储器内的程序不需要把芯片从工作环境中剥离。是一个强大易用的功能。

(2)电源范围:89S5*电源范围宽达4~5.5V,而89C5*系列在低于4.8V和高于5.3V的时候则无法正常工作。

(3)最高工作频率为33MHz,大家都知道89C51的极限工作频率是24M,就是说S51具有更高工作频率,从而具有了更快的计算速度。

(4)内部集成看门狗计时器不再需要像89C51那样外接看门狗计时器单元电路。双数据指示器。具有双工UART串行通道。

全新的加密算法,这使得对于89S51的解密变为不可能,程序的保密性大大加强,这样就可以有效的保护知识产权不被侵犯。

AT89S51具有如下特点:40个引脚(引脚图如图3-1所示),4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。

此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。

主要功能特性:

· 兼容MCS-51指令系统                  · 32个双向I/O口

· 2个16位可编程定时/计数器           · 全双工UART串行中断口线

· 2个外部中断源                       · 中断唤醒省电模式

· 看门狗(WDT)电路                    · 灵活的ISP字节和分页编程

· 4k可反复擦写ISP Flash ROM           · 4.5-5.5V工作电压

· 时钟频率0-33MHz                     · 128x8bit内部RAM

· 低功耗空闲和省电模式                 · 3级加密位

· 软件设置空闲和省电功能               · 双数据寄存器指针

2、74LS47简介

74LS47是BCD-7段数码管译码器/驱动器,

4LS47的功能用于将BCD码转化成数码块中的

数字,通过它解码, 可以直接把数字转换为数

码管的显示数字, 从而简化了程序,节约了

单片机的IO开销。 因此是一个非常好的芯片!

但是由于目前从节约成本的角度考虑, 此类芯片

已较少用, 大部份情况下都是用动态扫描数码

管的形式来实现数码管显示。

译码器原理(74LS47)译码为编码的逆过程。         图3.2 74LS47管脚图

它将编码时赋予代码的含义“翻译”过来。实现译码的逻辑电路成为译码器。译码器输出与输入代码有唯一的对应关系。74LS47是输出低电平有效的七段字形译码器,它在这里与数码管配合使用,表3.1列出了74LS47的真值表,表示出了它与数码管之间的关系。


表3.1:74LS47真值表

 (1)LT(——):试灯输入,是为了检查数码管各段是否能正常发光而设置的。当LT(——)=0时,无论输入A3 ,A2 ,A1 ,A0为何种状态,译码器输出均为低电平,若驱动的数码管正常,是显示8。

    (2)BI(—):灭灯输入,是为控制多位数码显示的灭灯所设置的。BI(—)=0时。不论LT(——)和输入A3 ,A2 ,A1,A0为何种状态,译码器输出均为高电平,使共阳极数码管熄灭。

    (3)RBI(——-):灭零输入,它是为使不希望显示的0熄灭而设定的。当对每一位A3= A2 =A1 =A0=0时,本应显示0,但是在RBI(——-)=0作用下,使译码器输出全为高电平。其结果和加入灭灯信号的结果一样,将0熄灭。

    (4)RBO(———):灭零输出,它和灭灯输入BI(—)共用一端,两者配合使用,可以实现多位数码显示的灭零控制。

3、单片机的最小系统

单片机的最小系统是用来提供单片机片内各种微操作的时间基准,时钟信号通常用两种电路形式得到:内部振荡和外部振荡。MCS-51单片机内部有一个用于构成振荡器的高增益反向放大器,引脚XTALl和XTAL2分别是此放大电器的输入端和输出端,由于采用内部方式时,电路简单,所得的时钟信号比较稳定,际使用中常采用这种方式。上图所示外接晶体振荡器(简称晶振)或陶瓷谐振器就构成了内部振荡方式,片内高增益反向放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起可构成一个自激振荡器并产生振荡时钟脉冲。上图中外接晶体以及电容C2和C3构成并联谐振电路,它们起稳定振荡频率、快速起振的作用,其值均为30P左右,晶振频率选12MHz。


                     图3.3单片机最小系统电路

4、显示电路

采用2位LED七段数码管显示。段码用74LS47驱动,段码还可用74LS244驱动,位码用PNP三极管9012驱动。

 

 

 

 

 

 

 

 

 

 

 

 

图3.4数字显示电路

5、校时电路

实现数字时钟的调整以及停止,由P1.0控制“秒”,即按钮S70。由P1.1控制“分”,即按钮S71。由P1.2控制“时”,即按钮S72。由P3.2实现停止,即按钮S73。

 

 

 

 

 

图3.5校时按钮电路

6、电源电路

稳压电源是单片机系统的重要组成部分,它不仅为系统提供多路电压源,还直接影响到系统的技术指标和抗干扰性能。一个稳压电源输出电压和最大输出电流决定于所选三端稳压器。在本次设计中采用+5V电压所以选用H7805稳压器。

 

 

 

 

 

 

 

 

 

图3.7电源电路

四、   软件

单片机的程序设计有其自身的特点。在单片机系统中,硬件与软件紧密结合,由于硬件电路的设计不具有通用性,所以必须根据具体的硬件电路来设计对应的软件,硬件设计的优劣直接影响到软件设计的难易,软件设计的优劣又直接影响到硬件的发挥。在很多时候,软件可以替代硬件的功能,当然,需要付出额外占用CPU时间的代价。软件程序的设计是根据硬件电路图的连接和各个元器件的功能进行设计。在编写软件时,可以按各个程序的功能将软件细分为各个功能模块,再通过主程序的调用来实现整个软件系统。而一般编写的程序都是根据事前所用的流程图来编写的,而且,流程图中也包含了对设计所得结果的要求,因此,流程图的设计直接影响到源程序的设计。主程序是软件设计的总体框架,因此主程序流程图的设计决定了程序编写的好坏,主程序的功能主要是读7447的时间将时间数据送到LED显示,再判断是否有按键按下,从而进行校时、定时功能。段码由P0.0,P0.1,P0.2,P0.3通过74LS47译码驱动数码管显示,使用比较方便,位码由PNP三极管9012驱动。

实现软件的该功能的程序是 :

#include <at89x52.h>

 void delay (unsigned int t)

{unsigned int x;

 for(;t>0;t--)

 {for(x=0;x<100;x++)

     {;}

 }

}

main()

{

unsigned int N;

unsigned char num=0;

unsigned char s=0,m=0,h=0;

unsigned char buf[6];

unsigned char a[]={0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x06};

unsigned char b[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

TMOD=(65536-50000)/256;

TH0=(65536-50000)%256;

TR0=1;

EA=1;

 P1_0=1;P1_1=1;P1_2=1;P3_2=1;

 while(1)

{

N++;

buf[0]=m%10/1;

buf[1]=m%100/10;

buf[2]=f%10/1;

buf[3]=f%100/10;

buf[4]=h%10/1;

buf[5]=h%100/10;

num++;

if(num==20) {m++;num=0;}

if(s==60) {f++;m=0;}

if(m==60) {h++;f=0;}

if(h==24) {h=0;}

else if(P1_2==0) {num=0;;s++;}

else if(P1_1==0) {num=0;m++;}

else if(P1_0==0) {num=0;h++;}

开  始 

P1_0==0

P1_1==0

P1_3==0

P1_2==0

num=0; m++

num=0; f++

num=0; h++

num=0;

num++

f==60

h++;num=0

h=0

h==24

输   出

计时子程序

f++;num0

m==60

m++;num=0

num=20

else if(P1_3==0) {num=0;}

for(N=0;N<7;N++)

{P2=~0x00;

 P0=~a[buf[N]];

 delay(8);

 P2=~b[N];

}

}

}

void k(void) interrupt 0

{ TH0=(65536-50000)/256;

  TL0=(65535-50000)%256;

  TF0=0;

  TR0=0;

  }

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

图4.1软件流程图

 

五、   调试

完成硬件电路焊接后,先要进行连线的检查。首先是检查每块芯片的接地和接电是否接对,是否漏接。因为PROTEL电路图上有些元器件所谓接地线和接电源线并未显示,如果只是按图索骥则会漏线。所以应该做好准备工作,查阅芯片的有关资料,确保所有的引脚连线正常连接。

程序的编写和调试是一个比较复杂的过程。由于对C语言知识的薄弱,所以在编译过程中总是有很多语法上的错误,但是在和同学一起讨论研究后,程序是编写出来了,但结合到硬件调试中又出现各种问题。在调试过程中出现了很多问题,在第一次把程序烧到单片机里,通电运行时,虽然控制时、分、秒的按钮能够对数码管显示进行调整,但是数码管的显示不良亮度非常的低;还有停止按键和复位按钮根本就不起作用。更改程序中的问题,但是复位端还是没有用。复位端的问题起源于最小系统,经过检查我们少接电源。在最后的通电我们的作品终于完美的完成。

六、   设计总结

不知不觉中三个星期的时间就过去了,这次的实训让我觉得时间过的很快,似乎每天的时间都不够用,在这三周的实训设计过程中,我深深的体会到了我们团队的合作与创新精神。一个人的力量是微弱的。

我们本次设计的题目是“时钟计时器”这一课题,首先我们必须了解相关课题的一些知识,对相应课题调查研究,并设计电路图,由于对C语言知识的缺乏,所以在编译过程中总是有很多语法上的错误,为了解决问题我们充分利用学校图书馆里的资源:利用网络查阅相关信息,最后在请教指导老师和同学一起讨论研究后,程序才算编写出来了,但是第一次的通电运行让我们组的人都失望了,因为我们只能宣告失败,这次的实训可以说是道路坎坷,在每一个过程中我们都有遇到过阻挠。在前面的所有问题我们都通过小组人员一起努力所以我们都完成了,可是在最后一道程序中我们都似乎不能够打到这个拦路虎了。但是团队的力量让我们克服了这个拦路虎。在最后的时刻我们的电路中发现了一个让我们很容易忽略掉的问题,在最小系统中的电源部分我们有了一个疏忽没有与电源端接上,所以导致复位端总是不能复位。

在这次的实训过程中收获真的很大,我知道了在一个人解决不了问题的时候千万不能够就放弃了,因为只要我们在一起的时候就一定会成功的,因为集体的力量是大无穷的。在面对困难的时候我要永远的选择相信自己,相信一定会有奇迹发生的。这次的实训更让我进一步的明白了,只要有希望在,没有什么是不可以的,失败的边沿离就是我们的目标,就是成功。虽然这个道路艰苦,但是我们得到了很多的经验,经历了因为失败的失落,也享受了失败后的成功。

七、参考文献

[ 1 ]、张迎辉,贡雪梅.单片机实训教程:北京大学出版社,2006.8,第二版,186-196。

[ 2 ]、吴金戌,沈庆阳,郭庭吉.单片机原理与应用:清华大学出版社,2008.6,第十版,155-159。

[ 3 ]、鲍小南.单片机微型计算机原理及应用:浙江大学出版社,2008.9,第二版,32-71。

[ 4 ]、李广第. 单片机基础.北京航空航天大学出版社,1999 ,第一版。

[ 5 ]、徐惠民、安德宁. 单片微型计算机原理接口与应用. 北京邮电大学出版社,1996 ,第一版。

[ 6 ]、谭佩香. 电子实用电路集锦:电子工业出版社,2008.9,第一版。

附录:

附录A  原理图:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

图8.1时钟计时器原理图

 

 

 

 

附录B PCB图:

 

 

 

 

 

 

 

 

 

 

 

 

 

图8.2时钟计时器PCB

 

附录C  实物图

 

 

 

 

 

 

 

 

 

 

 

 

 

图8.3时钟计时器实物图

 

 

附录D 元件清单

序号

名称

标号

参数/型号

封装

数量

01

电阻

R16

1K

AXIAL0.2

1

02

电阻

R50、R51、R52、R53

 

2.2K

AXIAL0.3

4

03

电阻

R9、R10、R11、R12、R13、R14

4.7K

AXIAL0.3

6

04

电阻

R17

10K

AXIAL0.2

1

05

电阻

R1、R2、R3、R4、R5、R6 、R7

300

AXIAL0.3

7

06

电阻

R15

A103

SIP9

1

07

电容

C2、C3、C4

104

RAD0.2

3

08

电容

C5

470UF

RB.2/.4

1

09

电容

C6

220UF

RB.2/.4

1

10

电容

C7

2.2UF

RB.2/.4

1

11

电容

C8、C9

20PF

RAD0.2

2

12

三极管

Q1、Q2、Q3、Q4、Q5、Q6

9012

TO-126

6

13

按钮

S70、S71、S72、S73、S1

SW-PB

SIP2

4

14

数码管

DS1、DS3、

DS2

DISP

DISP18

3

15

稳压块

U1

7805

TO-126

1

16

译码器

A1

74LS47

DIP16

1

17

二极管

D3

4418

DIODE0.4

1

18

晶振

XT1

11.0592

XT

1

19

桥堆

D1

206

206

1

20

开关

K1

POW

SIP2

1

21

接口

J2

POWER

POW-Z

1

22

发光二极管

D2

POWER

SIP2

1

23

单片机

Q7

89S51

DIP40

1

                        姓名:苏玉英 指导老师:华良   学号:15

                                                      班级:电信0707

  评论这张
 
阅读(3712)| 评论(3)
|      
推荐 转载

历史上的今天

最近读者

热度

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2014