基于proteus的数字电子钟的仿真设计.docx
- 文档编号:10212131
- 上传时间:2023-02-09
- 格式:DOCX
- 页数:12
- 大小:57.66KB
基于proteus的数字电子钟的仿真设计.docx
《基于proteus的数字电子钟的仿真设计.docx》由会员分享,可在线阅读,更多相关《基于proteus的数字电子钟的仿真设计.docx(12页珍藏版)》请在冰豆网上搜索。
基于proteus的数字电子钟的仿真设计
课程论文
题目:
基于Proteus的数字电子钟的设计
与仿真
课程名称:
单片机系统设计与Proteus仿真
*********************************************
学生学号:
23
系别:
电子工程学院
专业:
通信工程
年级:
13级
**************************************
电子工程学院
2015年5月
一、设计目的与要求3
二、设计内容与方案制定3
三、设计步骤3
1.硬件电路设计3
.硬件电路组成框图3
.各单元电路及工作原理4
.绘制原理图5
.元件清单列表6
2.程序设计6
程序流程6
汇编程序7
四、调试与仿真12
五、心得体会14
六、参考文献:
14
基于Proteus的数字电子钟的设计与仿真
一、设计目的与要求
设计目的:
通过课程设计,培养学生运用已学知识解决实际问题的能力、查阅资料的能力、自学能力和独立分析问题、解决问题的能力和能通过独立思考。
设计要求:
设计一个时、分可调的数字电子钟、开机显示“9-58-00”。
二、设计内容与方案制定
具有校时功能,按键控制电路其中时键、分键两个键分别控制时、分时间的调整。
按分键分加1;按时键时加1。
以AT89C51单片机进行实现秒、分、时上的正常显示和进位,其中显示功能由单片机控制共阴极数码管来实现,数码管进行动态显示。
三、设计步骤
1、硬件电路设计
.硬件电路组成框图
电源
晶振电路显示电路
AT89C52
复位电路按键控制电路
.各单元电路及工作原理
(1)晶振电路
单片机的时钟产生方法有两种:
内部时钟方式和外部时钟方式。
本系统中AT89C51单片机采用内部时钟方式。
采用外接晶体和电容组成的并联谐振回路。
其电路图如下:
(2)键盘控制电路
键盘可实现对时间的校对,用两个按键来实现。
按时键来调节小时的时间,按分键来调节分针的时间。
其电路连接图如下:
(3)显示电路?
LED显示器是现在最常用的显示器之一发光二极管(LED)分段式显示器由7条线段围成8字型,每一段包含一个发光二极管。
外加正向电压时二极管导通,发出清晰的光。
只要按规律控制各发光段亮、灭,就可以显示各种字形或符号。
显示电路显示模块需要实时显示当前的时间,即时、分、秒,因此需要6个数码管,采用动态显示方式显示时间,其硬件连接方式如下图所示。
.绘制原理图
其计时周期为24小时,显示满刻度为23时59分59秒,另外还有校时功能。
整个设计图由晶振电路、复位电路、AT89C51单片机、键盘控制电路组成。
显示电路将“时”、“分”、“秒”通过七段显示器显示出来,6个数码管的段选接到单片机的P0口,位选接到单片机的P2口。
数码管按照数码管动态显示的工作原理工作。
把定时器定时时间设为50ms,则计数溢出20次即得时钟计时最小单位秒,而20次计数可用软件方法实现,每累计60秒进1分,每累计60分钟,进1小时。
时采用24进制计时器,可实现对一天24小时的累计。
校时电路时用来对“时”、“分”显示数字进行校对调整,时分秒三个控制键分别接单片机的、进行控制。
按一下分键秒单元就加1,按一下时键分就加1。
.元件清单列表
单片机
AT89C51
*1
电解电容
CAP-ELEC10uF
*1
瓷片电容
CAP22pF
*2
电阻
RES
*10
晶振
CRYSTAL
*1
数码管
7SEG-MPX8-CA-BLUE
*1
三极管
NPN
*8
按钮
BUTTON
*3
上位排阻
RESPACK-8
*1
2.程序设计
程序程序
数字电子钟采用内部硬件定时器来进行定时,计时最小单位sec100为10ms。
若sec100每计满100次时,表示已经计时1s,则sec100清零且sec加1。
如果sec等于60,应将sec清零,同时min加1。
如果min等于60,应将min清零,同时hour加1。
如果hour大于23时,应将hour清零。
通过分析可知,程序中可分别由inc_sec()、inc_min()、inc_hour()这是三个函数负责秒、分、时的计时。
Sec100的计时由Timer0()中断函数来实现。
按钮K1(INT0)和K1(INT1)为调时、调分控制按键。
这两个按钮信号的输入采用外部中断方式来实现。
若产生外部中断时,通过调用inc_hour()或inc_min()函数来实现调时或调分操作。
编写显示函数display()时,应考虑小时数小于10时,应屏蔽时的十位数,使其不显示。
汇编程序
c语言编写的程序如下:
#include<>
#defineucharunsignedchar
#defineunitunsignedint
sbitk1=P3^2;
sbitk2=P3^3;
uchartab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0xBF};
uchardis_buff[8];
ucharsec100,sec,min,hour;
voiddelay(unitk)
{
unitm,n;
for(m=0;m { for(n=0;n<120;n++); } } voiddisplay(void) { P2=0X80; P0=tab[dis_buff[0]]; delay (2); P2=0x40; P0=tab[dis_buff[1]]; delay (2); P2=0x20; P0=tab[dis_buff[2]]; delay (2); P2=0x10; P0=tab[dis_buff[3]]; delay (2); P2=0x08; P0=tab[dis_buff[4]]; delay (2); P2=0x04; P0=tab[dis_buff[5]]; delay (2); P2=0x02; P0=tab[dis_buff[6]]; delay (2); if(hour>9) { P2=0x01; } else { P2=0X00; } P0=tab[dis_buff[7]]; delay (2); } voiddisp_data(void) { dis_buff[7]=hour/10; dis_buff[6]=hour%10; dis_buff[5]=16; dis_buff[4]=min/10; dis_buff[3]=min%10; dis_buff[2]=16; dis_buff[1]=sec/10; dis_buff[0]=sec%10; } voidinc_hour(void) { hour++; if(hour>23) { hour=0; } } voidinc_min(void) { min++; if(min>59) { min=0; inc_hour(); } } voidinc_sec(void) { sec++; if(sec>59) { sec=0; inc_min(); } } voidint0()interrupt0 { delay(100); if(INT0==0) { inc_hour(); } } voidint1()interrupt2 { delay(100); if(INT0==0) { inc_min(); } } voidtimer0()interrupt1 { TH0=0xDC; TL0=0x00; sec100++; if(sec100>=100) { sec100=0; inc_sec(); } } voidint_init(void) { TMOD=0x01; TH0=0xDC; TL0=0x00; TR0=1; ET0=1; EX0=1; IT0=0; EX1=1; IT1=0; EA=1; } voidmain(void) { int_init(); P0=0xFF; P2=0x00; hour=9; min=58; sec=0; sec100=0; while (1) { disp_data(); display(); } } 四、调试与仿真 打开keil程序,创建“数字电子钟”项目,输入c语言源程序,保存为“数字电子钟.c”。 在项目管理窗口中选中文件组,单击鼠标右键,在弹出的菜单中选择“AddFiletoGrou`SourceGroup1`”,添加源程序“数组电子钟.c”到项目组。 执行命令“Project”-”BuildTarget”,编译源程序,如果编译成功,则在输出窗口中显示没有错误,并创建了”数字电子钟.hex“文件。 在已绘制好原理图的ProteusISIS中,双击单片机,在弹出的对话框选择“数字电子钟.hex”。 开始仿真,刚运行时1,数码管显示“9-80-00”,而后每隔1s进行累计显示,如图所示,每按一次K1时,小时数会加1,每按一次K2时,分钟数加1。 五、心得体会 按分键对分进行调整,按一下加一分;按时键对时进行调整,按一下加一小时,从而达到快速设定时间的目的。 若满足以上要求则符合方案要求。 若按一下连续加若干位,则按键延时时间设置太短,可以通过增大延时时间进行改进。 通过本次仿真设计,基本掌握了简单的单片机应用设计,以及proteus仿真设计,数字电子钟设计比较简单,以后应多注意设计方面的问题并解决。 六、参考文献 [1]陈中平、基于proteus的51系列单片机设计与仿真(第二版)、电子工业出版社.2012. [2]谭浩强、C程序设计(第四版)、清华大学出版社.2010.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 proteus 数字 电子钟 仿真 设计