51单片机实训数码管电子时钟设计要点.docx
- 文档编号:29342271
- 上传时间:2023-07-22
- 格式:DOCX
- 页数:16
- 大小:680.27KB
51单片机实训数码管电子时钟设计要点.docx
《51单片机实训数码管电子时钟设计要点.docx》由会员分享,可在线阅读,更多相关《51单片机实训数码管电子时钟设计要点.docx(16页珍藏版)》请在冰豆网上搜索。
51单片机实训数码管电子时钟设计要点
数码管电子时钟
姓名:
张x
学号:
201005120349
指导教师:
郑xx
学院:
光电工程学院
专业:
电子信息工程
完成日期:
2012年12月27
概述
本系统采用Proteus软件进行硬件仿真设计,PCB设计以及自动布线与手动布线相结合来实现一个完整的电子设计系统;以AT89C51单片机为核心,与数码管接口电路组成控制系统。
该系统硬件主要包括以下几个模块:
AT89C51主控模块、数码管显示模块等利用KeiluVision4软件进行程序的设计;实现了数码管电子时钟系统的设计。
关键词:
KeiluVision4;
仿真,Proteus;
数码管;
一、前言
1.1开发背景简介
Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。
它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件,是目前最好的仿真单片机及外围器件的工具。
虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。
Proteus软件具有其它EDA工具软件(例:
multisim)的功能。
这些功能是:
1.原理布图;
2.PCB自动或人工布线;
3.SPICE电路仿真;
革命性的特点
1.互动的电路仿真
用户甚至可以实时采用诸如RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。
2.仿真处理器及其外围电路
可以仿真51系列、AVR、PIC、ARM、等常用主流单片机。
还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果。
配合系统配置的虚拟逻辑分析仪、示波器等,Proteus建立了完备的电子设计开发环境。
1.2系统特性
本系统功能由硬件和软件两大部分组成,硬件部分主要完成信息的显示;软件主要完成信号的处理剂控制功能等。
本系统的硬件采用模块化设计,以AT89C51单片机为核心,与数码管接口电路组成控制系统。
该系统硬件主要包括以下几个模块:
AT89C51主控模块、数码管显示模块等。
其中AT89C51主要完成外围硬件的控制以及一些运算功能,数码管显示模块完成字符、数字的显示功能。
应用软件采用模块化设计。
该系统软件主要由主程序、延时子程序等模块组成。
二、硬件以及软件的设计与实现
2.1硬件设计思想
使用Proteus仿真软件,在atmel-80c51芯片中进行仿真设计。
利用八个八段数码管与芯片进行连接,利用P0口实现数码管得位选,利用74ls245和P2口实现数码管的段选,并置三个按键完成对电子钟的时间调控,并且置喇叭设置每半小时报时一次,报时时间十秒。
2.2电路设计
利用Proteus按照将电路的原理图进行电路绘制。
根据原理图从原件库中选择有封装的元件,对没有封装的原件(如:
按键,八个数码管),对其进行手动画封装。
按顺序排好,并对其连线。
接线前,元件摆放图,如图表1所示:
图表1
连接完成后,如下图表2所以:
图表2
2.3程序设计
利用Uv4软件进行程序设计,建立项目与文件,并进行编译与连接,如图表3所示:
图表3
用c语言程序实现电子时钟,将编译好的hex文件利用proteus软件加载到原理图中,运行程序,如图表4所示:
图表4
运行结果如图表5所示:
图表5
2.4pcb图设计
在画原理图时发现有元件没有封装需要创建封装;
共阴极八段数码管封装如图表6所示:
图表6
将封装图添加入库,给画的元件起一个名字如:
shuma。
如图表7所示:
图表7
开关封装,如图表8所示:
图表8
将封装添加入库,如图表9所示:
图表9
在原理图中添加封装,在搜索框中输入元件封装的名字(shuma和kg)进行搜索,找到合理的元件封装后点ok按钮,如图表10所示:
图表10
添加封装,如图表11所示:
图表11
自动布线,如图表12所示:
图表12
铺铜,底层铺设,如图表13所示:
图表13
铺铜之后,如图表14所示:
图表14
3d图,俯视图如图表15所示:
图表15
底部视图,如图表16所示:
图表16
三、程序源代码
/**********实训电子表工程****************/
/**********姓名张超本三班****************/
#include
#defineucharunsignedchar
#defineuintunsignedint
ucharcodetable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchart0=0,miao=0,fen=0,shi=0;
sbitlb=P1^0;
sbitti=P1^1;//调表开始
sbitjia=P1^3;//使分钟加
sbitjian=P1^6;//使分钟减
voiddelay(uintz)//延时z毫秒
{
uinti,j;
for(i=0;i for(j=0;j<100;j++);//这个是通过软件仿真得出的数 } voidchushi() { EA=1;ET0=1;//开定时器0 TH0=(65535-50000)/256;//设置定时器初值每加一需要1us50ms需要加 TL0=(65535-50000)%256;//50000次,故这么算 TMOD=0x01;//方式一十六位定时器 TR0=1;//运行控制位 } voidxianshi() { P0=0x80;P2=table[miao%10];delay (1); P0=0x40;P2=table[miao/10];delay (1); P0=0x20;P2=0xbf;delay (1); P0=0x10;P2=table[fen%10];delay (1); P0=0x08;P2=table[fen/10];delay (1); P0=0x04;P2=0xbf;delay (1); P0=0x02;P2=table[shi%10];delay (1); P0=0x01;P2=table[shi/10];delay (1); } voidmain() { chushi(); while (1) { xianshi(); if(ti==0) { delay(5); if(ti==0) { ET0=0; if(jia==0) { delay(5); if(jia==0) fen++;delay(5); if(fen==60) fen=0; } if(jian==0) { delay(5); if(jian==0) { shi++; delay(5); } if(shi==24) fen=0; } } } if(ti==1) { delay(5); if(ti==1) ET0=1; } if(fen%30==0&&miao>=0)//设置报时时间为一分钟 {//保时十秒钟 if(fen%30==0&&miao<=10) { lb=0; lb=1;//设置喇叭 } } } } voidtimer0()interrupt1 { TH0=(65535-50000)/256;//设置定时器初值12MHZ的 TL0=(65535-50000)%256; t0++; if(t0==20) { t0=0;miao++; if(miao==60) { fen++;miao=0; if(fen==60) { shi++;fen=0; if(shi==24) shi=0; } } } } 四、启示与感想 通过本次课程设计我获益良多。 既巩固了单片机的一些相关基本知识,又熟悉了PROTEUS的相关操作。 对一个整体的电子设计项目,有了一定的认识,初步学会了一定的设计方法,明白了如何用这种方法去实现一个系统的设计。 同时也让我找到了自己在某些知识上的欠缺,在理论与实践的转化当中确实有很大困难。 在本次实训当中,通过这次机会得到弥补,取得进步! 并且让我意识到,要做好一件事情,必须认真认真再认真,细心细心再细心,努力才会成功。 五、参考文献 1、《MCS-51单片机系统及应用》蔡美琴著,高等教育出版社出版。 2、《模拟电子技术基础》第四版童诗白、华成英著,高等教育出版社出版。 3、《数字电子技术基础》第五版阎石著高等教育出版社出版。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 51单片机实训 数码管电子时钟设计要点 51 单片机 数码管 电子 时钟 设计 要点
![提示](https://static.bdocx.com/images/bang_tan.gif)