欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    基于单片机和CPLD的数字时钟课程设计(18页).docx

    • 资源ID:37163184       资源大小:133.68KB        全文页数:17页
    • 资源格式: DOCX        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于单片机和CPLD的数字时钟课程设计(18页).docx

    -基于单片机和CPLD的数字时钟课程设计-第 15 页电子系统设计课程设计报告题目:基于单片机和CPLD的数字时钟姓名: XXX院系: 电力学院专业:电子科学与技术学号: XXXXXXXXX指导老师:XXXXXXXXX 完成时间: 2014 年 1 月 9 日设计题目基于单片机和CPLD的数字时钟设计要求设计过程(包括:设计方案、上机设计与仿真结果、硬件实验方案及实验结果、收获和体会)成绩评定指导教师评语课程设计等级目 录第一章 设计概述 3 1.1使用软件简介 .41.2 设计目的及要求 .4第二章 总体设计 4 2.1 设计框图 42.2 设计框图概述 .5第三章 硬件设计 5 3.1数字时钟的结构 .53.2数字时钟的功能实现.73.3 数字时钟的功能模块设计.7第四章程序框图和清单 11 4.1 程序框图 .114.2 程序 .124.3 清单 .19第五章实验结果和体会 20体会22第一章 设计概述1.1使用软件简介a.使用汇编语言或C语言要使用编译器,以便把写好的程序编译为机器码,才能把HEX可执行文件写入单片机内。KEIL uVISION是众多单片机应用开发软件中最优秀的软件之一,它支持众多不同公司的MCS51架构的芯片,甚至ARM,它集编辑,编译,仿真等于一体,它的界面和常用的微软VC+的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。因此很多开发51应用的工程师或普通的单片机爱好者,都对它十分喜欢。KEIL uVision5是uVision4的升级版本,页面有了进一步的优化,使用起来更加的人性化。b.仿真软件Protues Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。迄今为止是世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MATLAB等多种编译。c.综合工具Modelsim Mentor公司的ModelSim是业界最优秀的HDL语言仿真软件,它能提供友好的仿真环境,是业界唯一的单内核支持VHDL和Verilog混合仿真的仿真器。它采用直接优化的编译技术、Tcl/Tk技术、和单一内核仿真技术,编译仿真速度快,编译的代码与平台无关,便于保护IP核,个性化的图形界面和用户接口,为用户加快调错提供强有力的手段,是FPGA/ASIC设计的首选仿真软件。1.2设计目的及要求a、设计要求(1)设计一个基于单片机和CPLD的数字时钟;(2)根据性能指标,计算元件参数,选好元件,设计电路并画出电路图;对设计电路进行模拟与测试。(3)撰写设计报告。b、技术指标使用单片机和CPLD设计,显示年、月、日、小时、分钟、秒,时间可以调整。第二章 总体设计2.1设计框图按键数码管显示数码管驱动 时钟芯片DS12c887复位电路主控STC89C52晶振电路2.2设计框图概述a.晶振电路:12MHZ晶振和两个22PF的电容,产生标准脉冲信号。b.复位电路:利用它把电路恢复到起始状态。c.时钟芯片:本设计采用高精度时钟芯片DS12C887,自带晶体振荡器和锂电池。在没有外部电源的情况下可工作10年。在运行中,单片机从时钟芯片读取当前时间,然后送到数码管显示。d.数码管显示:本设计采用八段共阴极数码管,可以同时显示年月日或者时分秒。e.数码管驱动:选用两个74HC573锁存器,分别控制数码管的段码显示和位码显示。f.按键:采用四个独立按键,分别用来实现调整时间及其它功能。第三章 硬件设计3.1 数字时钟的结构运用protues软件进行仿真,keil软件与其调试显示时分秒显示年月日3.2 数字时钟的功能实现本设计一共使用四个独立按键来实现数字时钟的功能,其中k1是时分秒和年月日切换显示键,若当前显示是时分秒,按下k1,则切换显示到年月日;k2键为修改项选择键,按一下k2修改当前显示的第三位,按两下k2修改当前显示的第二位,按三下k2修改当前显示的第一位;k3和k4分别为增大和减小按键,来对修改项进行操作,只有在k2按下之后才有效。3.3 数字时钟的功能模块设计本设计中需要用到CPLD的有两个74HC573锁存器,下面用Modelsim进行锁存器设计.锁存器代码:module verilog_74hc573(LE1,OE_N1,D1,Q1,LE2,OE_N2,D2,Q2); input LE1,OE_N1,LE2,OE_N2; input 7:0 D1,D2; output 7:0 Q1,Q2; reg 7:0 Q_r1,Q_r2; wire 7:0 D_r1,D_r2; assign D_r1=D1; always(OE_N1,LE1,D1) begin if(OE_N1) begin Q_r1<=8'hz; end else if(LE1) begin Q_r1<=D_r1; end else begin Q_r1<=Q_r1; end end assign Q1=Q_r1; assign D_r2=D2; always(OE_N2,LE2,D2) begin if(OE_N2) begin Q_r2<=8'hz; end else if(LE2) begin Q_r2<=D_r2; end else begin Q_r2<=Q_r2; end end assign Q2=Q_r2;endmodule测试代码timescale 1ns/1ns; module verilog_74hc573_tb; reg le1,oe_n1; reg 7:0 d1; wire 7:0 q1;initial begin le1=0; oe_n1=0; d1=8'b0000_1111; end always begin #5 le1=1; oe_n1=0; #5 d1=8'd1111_0000; #5 d1=8'd0000_1111; #5 le1=0; oe_n1=0; #5 d1=8'd1010_0101; #5 d1=8'd0101_1010; #5 oe_n1=1; le1=0; #5 d1=8'd1111_1111; #5 oe_n1=1; le1=0; #5 d1=8'd1000_0001; #5 d1=8'd0001_1110; #5 oe_n1=1; le1=1;#5 d1=8'd0011_1100; #5 d1=8'd1100_0011; endverilog_74hc573u1( .LE1(le1), .OE_N1(oe_n1), .D1(d1), .Q1(q1); endmodule仿真结果第四章 程序框图和清单4.1程序框图开始 初始化STC89C52从DS12C887中读数据Flag=0?YN显示年月日显示时分秒键盘扫描 键盘扫描K1=1?K1=1?NYYYK2=1?K2=1?NNK2_num=?修改时/年修改分/月修改秒/天123K3=1,增大K4=1,减小4.2程序#include<reg52.h>#define uchar unsigned char#define uint unsigned int#define M 1#define N 10sbit sp=P30;sbit dscs=P24;sbit dsas=P25;sbit dsrw=P26;sbit dsds=P27;sbit duan=P20;sbit wei=P21;sbit k1=P34;sbit k2=P35;sbit k3=P36;sbit k4=P37;void delay(uint);void init();void keyscan();void display(uchar,uchar,uchar);void write_ds(uchar,uchar);void set_time();uchar read_ds(uchar);uchar shi,fen,miao,month,day;uchar year,flag,k2_num,i;unsigned char code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40;void delay(uint x)uint i,j;for(i=x;i>0;i-)for(j=110;j>0;j-);void init()flag=0;k2_num=0;write_ds(0x0a,0x20);write_ds(0x0b,0x26);set_time();void display(uchar sh,uchar fe,uchar mia)uchar sg,ss,fg,fs,mg,ms;sg=sh%10;ss=sh/10;fg=fe%10;fs=fe/10;mg=mia%10;ms=mia/10;duan=1;P0=tabless;duan=0;P0=0xfe;wei=1;wei=0;P0=0x00;delay(M);duan=1;P0=tablesg;duan=0;P0=0xfd;wei=1;wei=0;P0=0x00;delay(M);duan=1;P0=table10;duan=0;P0=0xfb;wei=1;wei=0;P0=0x00;delay(M);duan=1;P0=tablefs;duan=0;P0=0xf7;wei=1;wei=0;P0=0x00;delay(M);duan=1;P0=tablefg;duan=0;P0=0xef;wei=1;wei=0;P0=0x00;delay(M);duan=1;P0=table10;duan=0;P0=0xdf;wei=1;wei=0;P0=0x00;delay(M);duan=1;P0=tablems;duan=0;P0=0xbf;wei=1;wei=0;P0=0x00;delay(M);duan=1;P0=tablemg;duan=0;P0=0x7f;wei=1;wei=0;P0=0x00;delay(M);void write_ds(uchar add,uchar date)dsas=1;dsds=1;dsrw=1;dscs=0;P1=add;dsas=0;dsrw=0;P1=date;dsrw=1;dsas=1;dscs=1;uchar read_ds(uchar add)uchar ds_date;dscs=0;dsas=1;dsds=1;dsrw=1;P1=add;dsas=0;dsds=0;P1=0xff;ds_date=P1;dsas=1;dsds=1;dscs=1;return ds_date;void set_time()write_ds(0,0);write_ds(1,0);write_ds(2,0);write_ds(3,0);write_ds(4,12);write_ds(5,0);write_ds(6,0);write_ds(7,1);write_ds(8,1);write_ds(9,14);void keyscan()if(k1=0)uint i;delay(5);if(k1=0)flag+;if(flag>=2)flag=0;for(i=N;i>0;i-)if(flag=0)display(shi,fen,miao);elsedisplay(year,month,day);while(!k1);if(k2=0)delay(5);if(k2=0)k2_num+;if(k2_num>=4)k2_num=0;for(i=N;i>0;i-)if(flag=0)display(shi,fen,miao);elsedisplay(year,month,day);while(!k2);if(k2_num!=0)if(flag=0)if(k3=0)delay(5);if(k3=0)switch(k2_num)case 1: write_ds(0,(miao+1); break; case 2: write_ds(2,(fen+1); break; case 3: write_ds(4,(shi+1); break;for(i=N;i>0;i-)if(flag=0)display(shi,fen,miao);elsedisplay(year,month,day);while(!k3);if(k4=0)delay(5);if(k4=0)switch(k2_num)case 1: write_ds(0,(miao-1); break; case 2: write_ds(2,(fen-1); break; case 3: write_ds(4,(shi-1); break;for(i=N;i>0;i-)if(flag=0)display(shi,fen,miao);elsedisplay(year,month,day);while(!k4);if(flag=1)if(k3=0)delay(5);if(k3=0)switch(k2_num)case 1: write_ds(7,(day+1); break; case 2: write_ds(8,(month+1); break; case 3: write_ds(9,(year+1); break;for(i=N;i>0;i-)if(flag=0)display(shi,fen,miao);elsedisplay(year,month,day);while(!k3);if(k4=0)delay(5);if(k4=0)switch(k2_num)case 1: write_ds(7,(day-1); break; case 2: write_ds(8,(month-1); break; case 3: write_ds(9,(year-1); break;for(i=N;i>0;i-)if(flag=0)display(shi,fen,miao);elsedisplay(year,month,day);while(!k4);void main()init();while(1)keyscan();year=read_ds(9);month=read_ds(8);day=read_ds(7);shi=read_ds(4);fen=read_ds(2);miao=read_ds(0);if(flag=0)display(shi,fen,miao);elsedisplay(year,month,day);4.3清单Bill Of Materials For 数字钟 Design Title:数字钟Author:<XXX>Revision:<NONE>Design Created:2013Äê12ÔÂ22ÈÕDesign Last Modified:2014Äê1ÔÂ7ÈÕTotal Parts In Design:112 ResistorsQuantity:ReferencesValueOrder Code2R1, R2500 3 CapacitorsQuantity:ReferencesValueOrder Code2C1, C222p 1C3100uMaplin VH12N4 Integrated CircuitsQuantity:ReferencesValueOrder Code1U1AT89C52 2U2, U374HC573 1U4DS12887 2 MiscellaneousQuantity:ReferencesValueOrder Code1RP1RESPACK-8 1X1CRYSTAL  第五章实验结果和体会经过仿真,此次设计的数字时钟可以正常工作显示时分秒显示年月日仿真结果体会:通过这次设计,我深深体会到,干任何事情都要认真、细致、耐心。但是设计是一件很严谨的工作,而且时间又比较紧,我就不得不静下心思来,认真地搞设计。有两次我因为不小心计算错误前功尽弃而心烦意乱。但一想到自己已是一个成年人,应该有担当,有社会责任感,就又重拾信心继续算。就这样,不断地警示自己,鼓励自己,终于完成了这次设计。通过这次设计也磨砺了我的意志力和做事踏实认真的作风。    说老实话,设计真的有点累。但是当自己整理自己的设计成果的时候,那种少有的成功的喜悦让所有的倦意都吹散。犹如一阵春风沁人心脾,心旷神怡。我知道这是人生中的一小步,今后我会走得更加坚定。    短短两周的设计,我发觉自己所学的知识还很有限。这次设计,我翻阅了很多资料。越是看的书多,我就越觉得自己的专业知识很贫乏。在以后的学习中,我一定会更加努力,更加注重积累,为将来走向社会打好基础。    最后,我要衷心的感谢老师。两周的设计老师您一刻也没有休息,教室-图书馆-寝室三点一线的来回跑。是您耐心的给我们指导,是您一次又一次的鼓励我。真心的感谢您,老师!我一定再接再厉,更上一层楼

    注意事项

    本文(基于单片机和CPLD的数字时钟课程设计(18页).docx)为本站会员(1595****071)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开