《2022年基于单片机和CPLD的数字时钟课程设计.docx》由会员分享,可在线阅读,更多相关《2022年基于单片机和CPLD的数字时钟课程设计.docx(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品学习资源设计题目基于单片机和 CPLD 地数字时钟设计要求电子系统设计课程设计报告题目:基于单片机和CPLD 地数字时钟姓名 : XXX院系 :电力学院专业 :电子科学与技术学号 : XXXXXXXXX指导老师 :XXXXXXXXX完成时间 :2021 年 1 月 9 日欢迎下载精品学习资源 包括:设计方案、上机设计与仿真结果、硬件试验方案及试验结果、收成和体会 设计过程指 导教 师评语成 绩评定课 程设 计等级欢迎下载精品学习资源目 录第一章设计概述 31.1 使用软件简介 .41.2 设计目地及要求 .4其次章总体设计 42.1 设计框图 42.2 设计框图概述 .5第三章 硬件设计
2、53.1 数字时钟地结构 .53.2 数字时钟地功能实现 .73.3 数字时钟地功能模块设计.7第四章程序框图和清单114.1 程序框图 . 114.2 程序.124.3 清单 .19第五章试验结果和体会20体会 22第一章设计概述1.1 使用软件简介欢迎下载精品学习资源a. 使用汇编语言或C 语言要使用编译器,以便把写好地程序编译为机器码,才能把HEX 可执行文件写入单片机内 .KEILuVISION是众多单片机应用开发软件中最优秀地软件之一,它支持众多不同公司地MCS51 架构地芯片,甚至ARM ,它集编辑,编译,仿真等于一体,它地界面和常用地微软VC+ 地界面相像,界面友好,易学易用,在
3、调试程序,软件仿真方面也有很强大地功能.因此许多开发 51 应用地工程师或一般地单片机爱好者,都对它非常喜爱.KEILuVision5 是 uVision4 地升级版本,页面有了进一步地优化,使用起来更加地人性化.b. 仿真软件 ProtuesProteus 是世界上闻名地 EDA 工具 仿真软件 ,从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB 设计,真正实现了从概念到产品地完整设计.迄今为止是世界上唯独将电路仿真软件、PCB 设计软件和虚拟模型仿真软件三合一地设计平台,其处理器模型支持8051、HC11 、 PIC10/12/16/18/24/30/DsPIC33 、
4、AVR 、ARM 、8086 和 MSP430 等, 2021 年即将增加 Cortex 和DSP 系列处理器,并连续增加其他系列处理器模型 .在编译方面,它也支持 IAR 、Keil 和 MATLAB 等多种编译 .c. 综合工具 ModelsimMentor公司地 ModelSim 是业界最优秀地 HDL 语言仿真软件,它能供应友好地仿真环境,是业界唯独地单内核支持VHDL和 Verilog 混合仿真地仿真器.它采纳直接优化地编译技术、Tcl/Tk技术、和单一内核仿真技术,编译仿真速度快,编译地代码与平台无关,便于爱护IP 核,个性化地图形界面和用户接口,为用户加快调错供应强有力地手段,是
5、FPGA/ASIC 设计地首选仿真软件 .1.2 设计目地及要求a、设计要求( 1)设计一个基于单片机和CPLD 地数字时钟;( 2)依据性能指标,运算元件参数,选好元件,设计电路并画出电路图;对设计电路进行模拟与测试.( 3)撰写设计报告 . b、技术指标使用单片机和CPLD 设计,显示年、月、日、小时、分钟、秒,时间可以调整.其次章总体设计2.1 设计框图数码管显示晶振电路数码管驱动复位电路主控 STC89C52时钟芯片DS12c887按键欢迎下载精品学习资源2.2 设计框图概述a.晶振电路: 12MHZ 晶振和两个 22PF 地电容,产生标准脉冲信号. b.复位电路:利用它把电路复原到起
6、始状态.c.时钟芯片:本设计采纳高精度时钟芯片DS12C887 ,自带晶体振荡器和锂电池.在没有外部电源地情形下可工作10 年.在运行中,单片机从时钟芯片读取当前时间,然后送到数码管显示. d.数码管显示:本设计采纳八段共阴极数码管,可以同时显示年月日或者时分秒.e.数码管驱动:选用两个74HC573 锁存器,分别掌握数码管地段码显示和位码显示.f. 按键:采纳四个独立按键,分别用来实现调整时间及其它功能.第三章硬件设计3.1 数字时钟地结构运用 protues 软件进行仿真, keil 软件与其调试显示时分秒欢迎下载精品学习资源显示年月日3.2 数字时钟地功能实现本设计一共使用四个独立按键来
7、实现数字时钟地功能,其中k1 是时分秒和年月日切换显示键,如当前显示是时分秒,按下k1,就切换显示到年月日;k2 键为修改项挑选键,按一下k2 修改当前显示地第三位,按两下 k2 修改当前显示地其次位,按三下k2 修改当前显示地第一位;k3 和 k4 分别为增大和减小按键,来对修改项进行操作,只有在k2 按下之后才有效 .3.3 数字时钟地功能模块设计本设计中需要用到CPLD 地有两个 74HC573 锁存器,下面用 Modelsim 进行锁存器设计 .欢迎下载精品学习资源锁存器代码:moduleverilog_74hc573LE1,OE_N1,D1,Q1,LE2,OE_N2,D2,Q2 ;i
8、nputLE1,OE_N1,LE2,OE_N2;input7:0 D1,D2 ;output 7:0 Q1,Q2 ;reg7:0 Q_r1,Q_r2 ;wire7:0 D_r1,D_r2;end endassignQ1=Q_r1 ;assignD_r2=D2 ;alwaysOE_N2,LE2,D2欢迎下载精品学习资源assignD_r1=D1 ;beginalwaysOE_N1,LE1,D1ifOE_N2beginQ_r2=8hz ;beginendifOE_N1elseifLE2beginbeginQ_r1=8hz ;Q_r2=D_r2 ;endendelseifLE1elsebeginbe
9、ginQ_r1=D_r1 ;endQ_r2=Q_r2 ;endelseendbeginQ_r1=Q_r1 ;assignQ2=Q_r2 ;endmodule测试代码timescale 1ns/1ns;d1=8d1111_000module verilog_74hc573_tb;0;reg le1,oe_n1;#5reg 7:0 d1 ;d1=8d0000_111wire 7:0 q1 ;1;#5 le1=0 ;oe_n1=0;initial#5begind1=8d1010_010le1=0;1;oe_n1=0;#5d1=8b0000_111d1=8d0101_1011;0;end#5 oe_n
10、1=1 ;alwaysbeginle1=0 ;#5#5 le1=1;oe_n1=0;d1=8d1111_1111;#5#5 oe_n1=1 ;欢迎下载精品学习资源end verilog_74hc573le1=0;#5d1=8d1000_0001;#5d1=8d0001_1110;#5 oe_n1=1;le1=1;#5d1=8d0011_1100;#5d1=8d1100_0011;欢迎下载精品学习资源u1 .LE1le1, .OE_N1oe_n1, .D1d1, .Q1q1;endmodule仿真结果欢迎下载精品学习资源第四章程序框图和清单开头初始化STC89C52从DS12C887中 读数据F
11、lag=0.NY显示年月日显示时分秒键盘扫描键盘扫描K1=1.K1=1.NYYYK2=1.K2=1.NNK2_num=.修改秒 /天修改分 /月修改时 /年K3=1 ,增大K4=1 ,减小4.1 程序框图123欢迎下载精品学习资源4.2 程序#include#define uchar unsigned char#define uint unsigned int #define M 1#define N 10 sbit sp=P30;欢迎下载精品学习资源sbit dscs=P24;ms=mia/10 ;P0=0xef;sbit dsas=P25;sbit dsrw=P26 ;wei=1 ;wei
12、=0 ;sbit dsds=P27;duan=1;P0=0x00 ;sbit duan=P20 ;sbit wei=P21 ;P0=tabless ;duan=0;delayM ;sbit k1=P34 ;P0=0xfe ;sbit k2=P35 ;wei=1 ;duan=1;sbit k3=P36 ;sbit k4=P37 ;wei=0 ;P0=0x00 ;P0=table10 ;duan=0;void delayuint ;delayM ;P0=0xdf ;void init ;void keyscan ;wei=1 ;wei=0 ;void displayuchar,uchar,ucha
13、r ;duan=1;P0=0x00 ;void write_dsuchar,uchar ;void set_time ;P0=tablesg ;duan=0;delayM ;uchar read_dsuchar;P0=0xfd ;uchar shi,fen,miao,month,day ;wei=1 ;duan=1;uchar year,flag,k2_num,i ;unsignedcharcodewei=0 ;P0=0x00 ;P0=tablems ;duan=0;table=0x3f,0x06,0x5b,0x4f,0x6delayM ;P0=0xbf ;6,0x6d,0x7d,0x07,0
14、x7f,0x6f,0x40 ;wei=1 ;wei=0 ;void delayuint xduan=1;P0=0x00 ;uint i,j ;P0=table10 ;duan=0;delayM ;fori=x ;i0 ;i-P0=0xfb ;forj=110 ;j0 ;j- ;wei=1 ;duan=1;void initwei=0 ;P0=0x00 ;P0=tablemg ;duan=0;delayM ;P0=0x7f ;flag=0 ;k2_num=0 ;wei=1 ;wei=0 ;write_ds0x0a,0x20 ;duan=1;P0=0x00 ;write_ds0x0b,0x26 ;
15、P0=tablefs ;delayM ;set_time;duan=0;P0=0xf7 ;voiddisplayucharsh,ucharwei=1 ;fe,uchar miawei=0 ;P0=0x00 ;voiddatewrite_dsucharadd,ucharuchar sg,ss,fg,fs,mg,ms;delayM ;sg=sh%10;ss=sh/10;dsas=1;dsds=1;fg=fe%10 ;duan=1;dsrw=1 ;fs=fe/10 ;P0=tablefg ;dscs=0;mg=mia%10 ;duan=0;P1=add;欢迎下载精品学习资源dsas=0;ifflag
16、=2ifflag=0dsrw=0 ;P1=date;flag=0 ;ifk3=0dsrw=1 ;dsas=1;dscs=1;fori=N ;i0 ;i-delay5 ;ifk3=0ifflag=0uchar read_dsuchar addswitchk2_numuchar ds_date;displayshi,fen,miao ;case1:dscs=0;elsewrite_ds0,miao+1 ;dsas=1;dsds=1;displayyear,month,daybreak;case2:dsrw=1 ;write_ds2,fen+1 ;P1=add;dsas=0;break ;case3
17、:dsds=0;while.k1 ;write_ds4,shi+1 ;P1=0xff ;break ;ds_date=P1;dsas=1;ifk2=0fori=N ;i0 ; i-dsds=1;dscs=1;return ds_date;delay5 ;ifk2=0ifflag=0displayshi,fen,miao ;void set_timek2_num+ ;ifk2_num=4elsewrite_ds0,0 ;write_ds1,0 ;k2_num=0 ;displayyear,month,daywrite_ds2,0 ;write_ds3,0 ;fori=N ;i0 ;i-;writ
18、e_ds4,12 ;write_ds5,0 ;write_ds6,0 ;ifflag=0while.k3 ;write_ds7,1 ;displayshi,fen,miao ;write_ds8,1 ;ifk4=0write_ds9,14 ;elsedelay5 ;void keyscandisplayyear,month,dayifk4=0;ifk1=0switchk2_numuint i ;while.k2 ;case1:欢迎下载精品学习资源delay5 ;ifk1=0flag+ ;ifk2_num.=0write_ds0,miao-1 ;break;case2:write_ds2,fen
19、-1 ;欢迎下载精品学习资源break ;break ;displayshi,fen,miao ;case3:write_ds4,shi-1;fori=N;i0 ;i-elsebreak ;ifflag=0displayyear,month,dayfori=N;i0 ;i-;displayshi,fen,miao;ifflag=0elsewhile.k4 ;displayshi,fen,miao ;displayyear,month,dayelse;displayyear,month,day;while.k3 ;void maininit ;while.k4 ;ifk4=0while1dela
20、y5 ;keyscan;ifk4=0year=read_ds9;ifflag=1month=read_ds8 ;switchk2_numday=read_ds7;ifk3=0shi=read_ds4;case 1:write_ds7,day-fen=read_ds2;delay5 ;1 ;miao=read_ds0 ;ifk3=0break;ifflag=0case2:switchk2_numwrite_ds8,month-1 ;displayshi,fen,miao ;break ;case1:case3:elsewrite_ds7,day+1 ;write_ds9,year-1 ;brea
21、k;break ;displayyear,month,daycase2:;write_ds8,month+1 ;fori=N ;i0 ;i-break ;case3:ifflag=0write_ds9,year+1 ;4.3 清单Bill Of Materials For数字钟Design Title:数字钟Author Revision:Design CreatedDesign Last Modified:2021.12.22.2021.1.7.欢迎下载精品学习资源Total Parts In Design: 112 ResistorsQuantity:ReferencesValueOrde
22、r Code 2R1, R25003 CapacitorsQuantity:ReferencesValueOrder Code 2C1, C222p1C3100uMaplin VH12N4 Integrated CircuitsQuantity:ReferencesValueOrder Code1U1AT89C522U2, U374HC5731U4DS128872 MiscellaneousQuantity:ReferencesValueOrder Code1RP1RESPACK-81X1CRYSTAL第五章试验结果和体会经过仿真,此次设计地数字时钟可以正常工作显示时分秒欢迎下载精品学习资源显
23、示年月日仿真结果体会:通过这次设计,我深深体会到,干任何事情都要仔细、细致、耐心.但是设计是一件很严谨地工欢迎下载精品学习资源作,而且时间又比较紧,我就不得不静下心思来,仔细地搞设计.有两次我由于不当心运算错误前功尽弃 而心烦意乱 .但一想到自己已是一个成年人,应当有担当,有社会责任感,就又重拾信心连续算.就这样, 不断地警示自己,勉励自己,最终完成了这次设计.通过这次设计也磨砺了我地意志力和做事踏实仔细地作风.说老实话,设计真地有点累.但是当自己整理自己地设计成果地时候,那种少有地胜利地欢乐让全部地倦意都吹散 .如同一阵春风沁人心脾,心旷神怡.我知道这是人生中地一小步,今后我会走得更加坚决.短短两周地设计,我发觉自己所学地学问仍很有限.这次设计,我翻阅了许多资料.越是看地书多,我就越觉得自己地专业学问很贫乏.在以后地学习中,我肯定会更加努力,更加注意积存,为将来走向社会打好基础.最终,我要诚心地感谢老师.两周地设计老师您一刻也没有休息,教室- 图书馆 -寝室三点一线地来回跑.是您耐心地给我们指导,是您一次又一次地勉励我.真心地感谢您,老师!我肯定再接再厉,更上一层楼欢迎下载