基于单片机的数字时钟的设计.docx
《基于单片机的数字时钟的设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的数字时钟的设计.docx(9页珍藏版)》请在冰豆网上搜索。
基于单片机的数字时钟的设计
电子技术课程设计报告
题目:
数字时钟的设计
专业:
班级:
学号:
姓名:
指导教师:
设计日期:
一选题的内容和要求
内容:
使用单片机程序设计计数器
要求:
当外界发生冲信号(由单片机上的按键模拟)时,单片机内部发生一次计数。
数码管显示一次,没发生一次脉冲,计数器加一,当加到200时,自动清零。
若无需计到200时,亦可按k2键清零。
以此实现0-200的计数。
二相关技术发展和应用
功能特性描述:
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
AT89S52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
引脚结构:
图表1引脚结构
VCC:
正常操作时接+5V电源
VSS:
接地
P0口:
P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0具有内部上拉电阻。
在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。
程序校验时,需要外部上拉电阻。
P1口:
P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。
对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
P2口:
P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。
对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。
在这种应用中,P2口使用很强的内部上拉发送1。
在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。
在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3口:
P3口是一个具有内部上拉电阻的8位双向I/O口,P3输出缓冲器能驱动4个TTL逻辑电平。
对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
P3口亦作为AT89S52特殊功能(第二功能)使用,如下图表1所示。
在flash编程和校验时,P3口也接收一些控制信号。
表格1
引脚号
第二功能
P3.0
RXD(串行输入)
P3.1
TXD(串行输出)
P3.2
(外部中断0)
P3.3
(外部中断1)
P3.4
T0(定时器0外部输入)
P3.5
T1(定时器1外部输入)
P3.6
(外部数据存储器写信号)
P3.7
(外部数据存储器读信号)
特殊功能寄存器:
特殊功能寄存器(SFR)并不是所有的地址都被定义了。
片上没有定义的地址是不能用的。
读这些地址,一般将得到一个随机数据;写入的数据将会无效。
用户不应该给这些未定义的地址写入数据“1”。
由于这些寄存器在将来可能被赋予新的功能,复位后,这些位都为“0”。
定时器0和定时器1:
在AT89S52中,定时器0和定时器1是两个16位加1的计数器。
T0有两个8位专用寄存器TH0和TL0。
T1由TH1和TL1组成,由专用寄存器TMOD设置和TCON控制。
RST:
复位输入。
晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。
程序存储器:
如果EA引脚接地,程序读取只从外部存储器开始。
对于89S52,如果EA接VCC,程序读写先从内部存储器(地址为0000H~1FFFH)开始,接着从外部寻址,寻址地址为:
2000H-FFFFH。
数据存储器:
AT89S52有256字节片内数据存储器。
高128字节与特殊功能寄存器重叠。
也就是说高128字节与特殊功能寄存器有相同的地址,而物理上是分开的。
当一条指令访问高于7FH的地址时,寻址方式决定CPU访问高128字节RAM还是特殊功能寄存器空间。
直接寻址方式访问特殊功能寄存器。
中断:
AT89S52有6个中断源:
两个外部中断(INT0和INT1),三个定时中断(定时器(0、1、2)和一个串行中断。
这些中断源都可以通过置位或清除特殊寄存器IE中的相关中断允许控制位分别使得中断源有效或无效(如表格4)。
IE还包括一个中断允许总控制位EA,它能一次禁止所有中断。
如表5所示,IE.6位是不可用的。
对于AT89S52,IE.5位也是不能用的。
用户不应给这些位写1。
它们为AT89系列新产品预留。
定时器2可以被寄存器T2CON中的TF2和EXF2的或逻辑触发。
程序进入中断服务后,这些标志位都可以由硬件清0。
实际上,中断服务程序必须判定是否是TF2或EXF2激活中断,标志位也必须由软件清0。
定时器0和定时器1标志位TF0和TF1在计数溢出的那个周期的S5P2被置位。
它们的值一直到下一个周期被电路捕捉下来。
然而,定时器2的标志位TF2在计数溢出的那个周期的S2P2被置位,在同一个周期被电路捕捉下来。
表格4中断允许控制寄存器(IE)
(MSB)(LSB)
EA
-
ET2
ES
ET1
EX1
ET0
EX0
中断允许控制位=1,允许中断
中断允许控制位=0,禁止中断
符号
位地址
功能
EA
IE.7
中断总允许控制位。
EA=0,中断总禁止;EA=1,各中断由各自的控制位设定
-
IE.6
预留
ET2
IE.5
定时器2中断允许控制位
ES
IE.4
串行口中断允许控制位
ET1
IE.3
定时器1中断允许控制位
EX1
IE.2
外部中断1允许控制位
ET0
IE.1
定时器0中断允许控制位
EX0
IE.0
外部中断1允许控制位
三解决问题的技术和关键
1:
准确掌握AT89S52的各引脚的功能。
开关与数码管所连的引脚位置,了解高低电平,准确判断电流走向。
2:
熟练使用keiluVision3编程器,灵活运用汇编指令。
3:
会使用中断和定时器功能。
4:
正确焊接电路板。
四拟选方案的工作原理
图表2电路原理图
试验板案原理图表2焊接。
从设计要求来看,需要四路抢答,只需一个数码管便可完成。
对于7段数码管,占用7个I/O口,四路输入占用4个I/O口,喇叭与k1键共用一个I/O口,共占用P3.1-P3.4、P0.0-P0.712个I/O口。
数码管显示原理:
P0.0-P0.7分别控制a,b,c,d,e,f,g,h,dp。
对I/O口输入0时为亮,1时为灭。
电阻用于限流。
如下图3
图表3数码管显示原理图
实验板蜂鸣器电路原理:
单片机的P3.0引脚外接蜂鸣器电路。
当P3.0=1高电平时,三极管截止,蜂鸣器不发声;
当P3.0=0低电平时,三极管导通,蜂鸣器发声。
如下图4
图表4实验板蜂鸣器电路图
实验板按键开关电路:
单片机的P3端口引脚外接按键开关。
开关闭合,输入低电平信号;开关断开,输入高电平信号。
如图5。
图表5实验板按键开关电路
复位电路:
上电复位和手动复位的混合电路,可用于单片机接电启动和手动“重启”。
如图表6。
图表6复位电路电路图
五方案设计
1程序流程:
当主人开始按下k1键时,计数器加一一次,数码管显示数字1,以后每按一次按键,就实现一次计数。
该设计可以应用于点钞机内部的工作中。
若要求的计数次数完成,可按K2按键清零.
2编写程序:
使用keiluvision2写计数器程序。
程序如下:
ORG0000H;开始
START:
MOVDPTR,#TAB;(DPTR)=TAB,表格起始地址
MOVR1,#0
LOOP:
MOVA,R1
MOVB,#100
DIVAB
MOVCA,@A+DPTR
MOVP2,A
MOVA,B
MOVB,#10
DIVAB
MOVCA,@A+DPTR
MOVP1,A
MOVA,B
MOVCA,@A+DPTR
MOVP0,A
JBP3.0,NEXT
ACALLDELAY
JNBP3.0,$
INCR1
NEXT:
JBP3.1,NEXT1
ACALLDELAY
JNBP3.1,$
MOVR1,#0
NEXT1:
CJNER1,#200,LOOP
AJMPSTART;从头开始
DELAY:
MOVR7,#200;延时子程序
DJNZR7,$
RET
TAB:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
END;结束
3烧写程序:
使用下载线将程序写入AT89S52芯片。
六总结
经过近两周的努力,在老师和同学的帮助下,我基本上完成了设计任务.通过这次课程设计,我充认识到了自学的重要性,以及学以致用的道理.我在图书馆查阅了大量的资料,同时也认识到了图书馆和网络的重要作用.在今后的学习过程中,应该多到图书馆看一些专业方面的书籍,以丰富自己的知识.也使我加深了对单片机技术的理解和应用.由于知识水平的局限,设计中可能会存在着一些不足,我真诚的接受老师和同学的批评和指正.
附录:
参考文献
刘心红杨克远主编,《单片机应用基础教程》,大庆石油学院秦皇岛
王幸之等主编,《单片机原理与接口技术》,北京航天航空大学出版社,2004