基于单片机的数字时钟的设计.docx

上传人:b****5 文档编号:6241194 上传时间:2023-01-04 格式:DOCX 页数:9 大小:177.53KB
下载 相关 举报
基于单片机的数字时钟的设计.docx_第1页
第1页 / 共9页
基于单片机的数字时钟的设计.docx_第2页
第2页 / 共9页
基于单片机的数字时钟的设计.docx_第3页
第3页 / 共9页
基于单片机的数字时钟的设计.docx_第4页
第4页 / 共9页
基于单片机的数字时钟的设计.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

基于单片机的数字时钟的设计.docx

《基于单片机的数字时钟的设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的数字时钟的设计.docx(9页珍藏版)》请在冰豆网上搜索。

基于单片机的数字时钟的设计.docx

基于单片机的数字时钟的设计

电子技术课程设计报告

题目:

数字时钟的设计

专业:

班级:

学号:

姓名:

指导教师:

设计日期:

一选题的内容和要求

内容:

使用单片机程序设计计数器

要求:

当外界发生冲信号(由单片机上的按键模拟)时,单片机内部发生一次计数。

数码管显示一次,没发生一次脉冲,计数器加一,当加到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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1