数字电子技术课程设计08版提交..docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数字电子技术课程设计08版提交.

数字电子技术课程设计 ——七段数码管显示时钟 专业: 班级: 姓名: 学号: 设计任务 (一)系统功能 制作一个由七段显示数码管显示的电子时钟系统,要求该系统: 1、能够正常显示时间(Hour:Min:Sec)、日期(Month:Day: Week)(模式切换); 2、有专门的MODE按键设置数码管显示模式和设置模式,以及专门的UP键、DOWN键来设置; (二)方案制定 根据系统功能制定设计方案,如下: 1、现在流行的串行时钟电路很多,采用时钟芯片(如DS1302、 DS1307、PCF8485等)来实现实时时钟 2、利用MCS--51单片机作为主芯片,8位边沿触发式移位寄存器74HC164作辅助芯片,配以合适的外围电路,完成对七段显示数码管的显示控制 (三)方案选择 以上两种方案均能实现系统要求,方案一采用时钟芯片,通过单片机控制,来实现数码管的显示;方案二直接用单片机做主芯片,配以74HC164芯片串入并出,来控制数码管显示;两种方案相比较,成本相近,方案一电路较为简单,实现较为方便,方案二更能体现对单片机主芯片的应用,作为应用和学习并重的课程设计,选用方案二进行设计 (四)设计材料 1、AT89S51单片机×1 2、74HC164×6 3、七段显示数码管5106BS(共阳)×6 4、1K、1/4W五色环电阻×45 5、电解电容:25V/100uF×1,25V/10uF×2 6、独石电容:104P(0.1uF)×7 7、6MHz晶振×1 8、按键:12*12*6按键×3 9、电源接插件HT5.08×1 10、1N4148开关二极管×1 11、3mm红发红(高亮)发光二极管×4 12、导线(接电源,两根,红黑) 13、电烙铁、焊锡,焊接用 14、+5V直流电压源 (五)具体设计 1、系统框图及原理图设计 2、系统电路的PCB印制板设计 3、系统电路板焊接,硬件环境仿真 (六)设计环境 1、Win-XP下Protel99SE 2、Keil uVision2+DVCC-51B仿真环境 二、实际设计 (一)系统框图设计 图1 七段数码管显示时钟系统框图 框图分析: 1、MCS--51单片机外围合适的电路作为主控芯片,在系统时钟的作用下向74HC164发送串行信号 2、8位边沿触发式移位寄存器74HC164接收到单片机发送的串行信号,给数码管送出并行信号,控制数码管的显示 3、七段数码管作为显示模块,接收到并行控制信号完成显示功能 (二)系统原理图设计 在Protel99SE环境中制作需要的元器件原理图符号,绘制系统原理图 图2 七段数码管显示时钟系统电路原理图 (三)系统PCB版图设计 图3 系统原理图生成的网标文件(部分截屏) 图4 在PCB版图编辑器成功导入网表文件 图5 七段数码管显示时钟系统PCB版图(隐藏Polygon Plane) 图6 PCB版图DRC检查结果 图7 PCB版图Toplayer层 图8 PCB版图Bottomlayer层 图9 PCB版图Topoverlay层 (四)控制程序: 工程文件夹clock_keil/clock.c文件,再次只列主函数模块、终端函数模块、延时函数及其实现的功能,被调用的函数在程序文件中均有定义 /*************延时函数************/ void delay(uint cnt) { while(--cnt); } /************主函数*****************/ void main() { init() Light_off(); delay(30000); Hello(); Feifei(); Water_clock(); displayonhms(); TR0=1; ET0=1; EA=1; while(1) { if(flag_mdw==0) { scanmdw(); mdwback(); } errNum=setjmp(jmpbuffer); if(flag_td==1) mdwadj(); if(flag_td==0) hmsadj(); } } /*************中断处理函数*************/ void int_T0() interrupt 1 using 1 { TH0=(65536-50000)/256; TL0=(65536

文档评论(0)

stzs + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档