基于单片机和cpld的数字时钟课程设计

上传人:xiao****1972 文档编号:116577695 上传时间:2019-11-16 格式:DOCX 页数:24 大小:538.60KB
返回 下载 相关 举报
基于单片机和cpld的数字时钟课程设计_第1页
第1页 / 共24页
基于单片机和cpld的数字时钟课程设计_第2页
第2页 / 共24页
基于单片机和cpld的数字时钟课程设计_第3页
第3页 / 共24页
基于单片机和cpld的数字时钟课程设计_第4页
第4页 / 共24页
基于单片机和cpld的数字时钟课程设计_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《基于单片机和cpld的数字时钟课程设计》由会员分享,可在线阅读,更多相关《基于单片机和cpld的数字时钟课程设计(24页珍藏版)》请在金锄头文库上搜索。

1、电子系统设计课程设计报告题目:基于单片机和CPLD的数字时钟姓名: XXX院系: 电力学院专业:电子科学与技术学号: XXXXXXXXX指导老师:XXXXXXXXX 完成时间: 2014 年 1 月 9 日设计题目基于单片机和CPLD的数字时钟设计要求设计过程(包括:设计方案、上机设计与仿真结果、硬件实验方案及实验结果、收获和体会)成绩评定指导教师评语课程设计等级目 录第1章 设计概述 3 1.1使用软件简介 .41.2 设计目的及要求 .4第二章 总体设计 4 2.1 设计框图 42.2 设计框图概述 .5第三章 硬件设计 5 3.1数字时钟的结构 .53.2数字时钟的功能实现.73.3 数

2、字时钟的功能模块设计.7第四章程序框图和清单 11 4.1 程序框图 .114.2 程序 .124.3 清单 .19第五章实验结果和体会 20体会22第一章 设计概述1.1使用软件简介a.使用汇编语言或C语言要使用编译器,以便把写好的程序编译为机器码,才能把HEX可执行文件写入单片机内。KEIL uVISION是众多单片机应用开发软件中最优秀的软件之一,它支持众多不同公司的MCS51架构的芯片,甚至ARM,它集编辑,编译,仿真等于一体,它的界面和常用的微软VC+的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。因此很多开发51应用的工程师或普通的单片机爱好者,都对它十分

3、喜欢。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系列处理器,并持续增加其他系列处理器模型。在编译

4、方面,它也支持IAR、Keil和MATLAB等多种编译。c.综合工具Modelsim Mentor公司的ModelSim是业界最优秀的HDL语言仿真软件,它能提供友好的仿真环境,是业界唯一的单内核支持VHDL和Verilog混合仿真的仿真器。它采用直接优化的编译技术、Tcl/Tk技术、和单一内核仿真技术,编译仿真速度快,编译的代码与平台无关,便于保护IP核,个性化的图形界面和用户接口,为用户加快调错提供强有力的手段,是FPGA/ASIC设计的首选仿真软件。1.2设计目的及要求a、设计要求(1)设计一个基于单片机和CPLD的数字时钟;(2)根据性能指标,计算元件参数,选好元件,设计电路并画出电路

5、图;对设计电路进行模拟与测试。(3)撰写设计报告。b、技术指标使用单片机和CPLD设计,显示年、月、日、小时、分钟、秒,时间可以调整。第二章 总体设计2.1设计框图按键数码管显示数码管驱动 时钟芯片DS12c887复位电路主控STC89C52晶振电路2.2设计框图概述a.晶振电路:12MHZ晶振和两个22PF的电容,产生标准脉冲信号。b.复位电路:利用它把电路恢复到起始状态。c.时钟芯片:本设计采用高精度时钟芯片DS12C887,自带晶体振荡器和锂电池。在没有外部电源的情况下可工作10年。在运行中,单片机从时钟芯片读取当前时间,然后送到数码管显示。d.数码管显示:本设计采用八段共阴极数码管,可

6、以同时显示年月日或者时分秒。e.数码管驱动:选用两个74HC573锁存器,分别控制数码管的段码显示和位码显示。f.按键:采用四个独立按键,分别用来实现调整时间及其它功能。第三章 硬件设计3.1 数字时钟的结构运用protues软件进行仿真,keil软件与其调试显示时分秒显示年月日3.2 数字时钟的功能实现本设计一共使用四个独立按键来实现数字时钟的功能,其中k1是时分秒和年月日切换显示键,若当前显示是时分秒,按下k1,则切换显示到年月日;k2键为修改项选择键,按一下k2修改当前显示的第三位,按两下k2修改当前显示的第二位,按三下k2修改当前显示的第一位;k3和k4分别为增大和减小按键,来对修改项

7、进行操作,只有在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) begi

8、n Q_r1=8hz; 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=8hz; 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_74hc5

9、73_tb; reg le1,oe_n1; reg 7:0 d1; wire 7:0 q1; initial begin le1=0; oe_n1=0; d1=8b0000_1111; end always begin #5 le1=1; oe_n1=0; #5 d1=8d1111_0000; #5 d1=8d0000_1111; #5 le1=0; oe_n1=0; #5 d1=8d1010_0101; #5 d1=8d0101_1010; #5 oe_n1=1; le1=0; #5 d1=8d1111_1111; #5 oe_n1=1; le1=0; #5 d1=8d1000_0001;

10、#5 d1=8d0001_1110; #5 oe_n1=1; le1=1;#5 d1=8d0011_1100; #5 d1=8d1100_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#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(ucha

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号