单片机课程设计98659_第1页
单片机课程设计98659_第2页
单片机课程设计98659_第3页
单片机课程设计98659_第4页
单片机课程设计98659_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、天津理工大学中环信息学院 电子系单片机课程设计报告   数字时钟设计  班 级 10电子信息科学与技术1班指 导 教 师 田野 设 计 成 员 卢建华 电子系2013 年7月3日一 总体设计方案1.1 总体设计 该设计主要由以下几模块组成:时钟模块、计数模块、译码驱动模块、显示模块、校时模块。1.2 硬件设计 时钟模块:时钟模块用于产生1Hz的时钟,产生1Hz时钟频率的方案主要有以下两个:1:采用555产生一定频率的时钟,然后通过适当分频得到1Hz的时钟。2:采用晶振产生一个高频时钟,然后通过适当分频产生1Hz的时钟。 计数模块: 计数模块可选

2、择的芯片有较多,74LS系列、CD40系列、74HC系列均有相应的芯片,但74LS系列价格普遍比CD40和74HC系列的贵,而CD40系列应用没有74HC系列普遍,这不利于元件的采购,所以我们选择74HC系列的芯片完成本设计。 译码驱动模块:驱动模块采用7段译码器来驱动数码管,可供选择的有74LS47、74LS48、74HC4511等,74LS47、74LS48价格昂贵,所以选择74HC4511作为驱动芯片。 显示模块:采用数码管显示,可选择的有共阴、共阳数码管,因为74HC4511是高电平有效的,所以理所当然选择共阴数码管了。 校时模块: 校时的方式有很多种,主要了解到的有: 1、用两个按键

3、分别对分的个位和时的个位进行校时。 2、自动校时,按下相应按键后将1Hz的时钟输给相应的计数器,使之自动增加。1.3 软件设计开始仿真后,秒钟部分开始以1s为周期开始递增,并能向分钟和时钟部分进位,完成数字钟的基本功能。时钟模块: 时钟模块采用32.786KHz的晶振经过74HC4060 14次二分频分频得到2Hz的时钟频率,再经过由一个D型触发器组成的T型触发器进行二分频,最终得到1Hz的时钟。 计数模块:将时钟模块产生的1Hz时钟信号输给秒个位的计数器,秒个位计数器记到9的时候进位标志变为高电平,当再来一个脉冲的时候,秒的个位和进位标志都变为0,同时给秒的十位产生一个脉冲,使得秒的十位加一

4、,当秒的十位计数到6的时候,将秒的十位清零,并向分的个位产生一个脉冲,使之增加1;同理,按相同的方法连接分和时,得到一个完整的计数电路。 译码、驱动模块:译码、驱动芯片采用74HC4511,在其资料中查到当其LT、BI、LE端分别为高、高、低电平的时候芯片正常工作。因此在电路连接的时候需按照要求将其相应端置于相应电平。 显示模块:显示模块采用6个8段共阴数码管,其中每位的小数点在进入校时的时候被选中的位小数点将被点亮,代表此时选中该位进行校时。 校时模块:校时模块采用三个按键进行校时,可分别校正任何秒、分、时的任何一位。其中,按键1按下后进入调时模式,正常的时钟停止;按键2用于选择要校正的位;

5、按键3用于校正数,每按下一次数字增加1。二设计内容时钟模块:时钟模块用于产生1Hz的时钟,产生1Hz时钟频率的方案主要有以下两个:1:采用555产生一定频率的时钟,然后通过适当分频得到1Hz的时钟。2:采用晶振产生一个高频时钟,然后通过适当分频产生1Hz的时钟。由于555是通过RC振荡产生波形的,而电阻、电容本身就存在较大误差,再加上电阻对温度敏感,所以采用555得到的时钟频率是不确定的,只能通过近似运算得到1Hz的时钟频率,因此通过555得到时钟频率误差较大,而且外界环境对其影响较大。而在通常工作条件下,普通的晶振频率绝对精度可达百万分之五十,并且普通晶振价格低廉,电路连接简单。因此,时钟模

6、块显然是选择采用晶振。计数模块: 计数模块可选择的芯片有较多,74LS系列、CD40系列、74HC系列均有相应的芯片,但74LS系列价格普遍比CD40和74HC系列的贵,而CD40系列应用没有74HC系列普遍,这不利于元件的采购,所以我们选择74HC系列的芯片完成本设计。可选择的74HC系列有74HC160 BCD十进制计数器、74HC161 4位二进制计数器、74HC162 同步清零BCD十进制计数器、74HC163 同步清零4位二进制计数器、74HC190 BCD十进制加减计数器、74HC191 4位二进制加减计数器、74HC192 同步清零BCD十进制加减计数器、74HC193 同步清零

7、4位加减二进制计数器。考虑到我们的是时钟,BCD十进制计数器即可满足要求,再加上74HC190193价格比价昂贵,因此我们选择74HC160作为计数芯片。译码驱动模块:驱动模块采用7段译码器来驱动数码管,可供选择的有74LS47、74LS48、74HC4511等,74LS47、74LS48价格昂贵,所以选择74HC4511作为驱动芯片。显示模块:采用数码管显示,可选择的有共阴、共阳数码管,因为74HC4511是高电平有效的,所以理所当然选择共阴数码管了。校时模块: 校时的方式有很多种,主要了解到的有: 1、用两个按键分别对分的个位和时的个位进行校时。 2、自动校时,按下相应按键后将1Hz的时钟

8、输给相应的计数器,使之自动增加。上面两种的方案的电路设计都非常简单,但是稍微注意观察就可以注意到以上的校时方案都存在着校时时间长的缺点,第1种方案调时的时候可能需要按59下按键,而且如果按键消抖不理想的情况下,可能出现按一下记两次数的情况,这可能会导致校时的时候跳过了自己需要的数,导致校时要按上百次按键。第二种方案校分时等待时间最长需要59秒,校时的时候最长需要11秒。显然这两种设计都不人性化。为了解决上诉方案中的不足,校时电路采用用一个按键控制74Hc160和74HC138选中相应数码管,并用另一个按键对相应的数码管进行校时,这样每一位最多需要按9下按键即可完成校时,并且可以对每一位进行校时

9、。这是其他校时方案无法比拟的。但需要说明的是此校时方案使得电路变得复杂。2.1 系统硬件原理图与仿真调时秒表时钟2.2 程序清单 #include<reg51.h>/头文件 #define uchar unsigned char #define uint unsigned int uchar code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e; uchar temp=0; uchar miao=00; uchar fen=00; uchar shi=00

10、; sbit P0_6=P06; void timer0init(void) TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; void delay(uint n) uint i,j; for(i=n;i>0;i-) for(j=124;j>0;j-); void time0()interrupt 1 TH0=(65536-50000)/256; TH0=(65536-50000)%256; if(temp=20)temp=0;if(miao=59) miao=0;if(fen=

11、59)fen=0; if(shi=23) shi=0; else shi+; else fen+; else miao+; else temp+; void display(void) /*P1=0xfe;*/P1=0x7f; P0=tablemiao%10; delay(5); /*P1=0xfd;*/P1=0xbf; P0=tablemiao/10; delay(5); /*P1=0xfb; */P1=0xdf; P0=0xbf; delay(5); /*P1=0xf7; */P1=0xef; P0=tablefen%10; delay(5); /*p1=0xef;*/P1=0xf7; P

12、0=tablefen/10; delay(5); /*p1=0xdf;*/P1=0xfd; P0=0xbf; delay(5); /*P1=0xbf;*/P1=0xfd; P0=tableshi%10; delay(5); /*p1=0x7f;*/P1=0xfe; P0=tableshi/10; delay(5); void main(void) timer0init(); while(1) display(); 三结论、建议及课程设计体会 这次的数电课程设计花费了2星期,这比别人多花费了很多时间,但收获了也很多! 花费时间长主要是因为采用全新的校时模式,由于这个校时电路没有参考任何资料可供参

13、考,全部都是靠自己想实现方案,当出现瓶颈的时候,有时会花费很长的时间来想解决办法,甚至因为这个而影响晚上的睡眠,直到想到一个合理的解决办法后才安心入睡,这就锻炼了自己的思考能力,这为以后参加比赛甚至是参加工作提供了经验。由于是自己设计的校时电路,这就不可能像参考被人的电路那么简单,所有的参数都给出,而且因为别人已经经过测试,所以一般情况下一定不会出问题,而自己设计的电路就存在各种不确定的因素,有时候感觉已经大功告成,突然又会出现一个令自己一时无法下手的棘手问题,这就导致了设计的时间比别人多了很多时间。这次自己设计全新的电路感到收获很大,比单纯去参照别人的电路感觉收获多得多!在这次设计中我考虑了很多一般情况下别人不需要考虑的问题,比如门电路的延迟时间、门电路的输出电流等。这对以后设计自己的电路一定是非常宝贵的经验。这期间也学到了很多经验,为以后的调试工作积累了很多经验。所以尽管我花费的时间要比别人多很多,但是还是感觉很值得 四参考文献 1 张俊谟. 单片机原理与应用M. 北京:北京航空航天大学出版社.2000.62 闰玉德,俞虹MCS一51单片机原理与应用M北京:机械工业出版社20033 孙裕晶,沙玲,赵红霞实用控制系统设计教程M长春:吉林大学出版社20004 李及,赵利民MCS一51系列单片机原理与应用M长春:吉林科学技术出版

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论