INT0中断计数Word格式文档下载.docx

上传人:b****5 文档编号:17378731 上传时间:2022-12-01 格式:DOCX 页数:9 大小:252.95KB
下载 相关 举报
INT0中断计数Word格式文档下载.docx_第1页
第1页 / 共9页
INT0中断计数Word格式文档下载.docx_第2页
第2页 / 共9页
INT0中断计数Word格式文档下载.docx_第3页
第3页 / 共9页
INT0中断计数Word格式文档下载.docx_第4页
第4页 / 共9页
INT0中断计数Word格式文档下载.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

INT0中断计数Word格式文档下载.docx

《INT0中断计数Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《INT0中断计数Word格式文档下载.docx(9页珍藏版)》请在冰豆网上搜索。

INT0中断计数Word格式文档下载.docx

(2)存储器,包括ROM和RAM;

(3)输入输出(I/O)接口,它与外部输入输出设备相连;

(4)电源和时钟电路。

2INT0中断计数

2.1设计任务

用AT89C51及电阻、电容、晶闸管、数码管、排阻等实现中断计数。

INTO中断计数,每次按下计数键时触发INTO中断,中断程序累加计数,计数值显示在3只数码管上,按下清零键时数码管清零。

2.2硬件设计

如下图1-1所示

图1-1

2.3设计思路

用单片机的P2.0/A8-P2.6/AD14端口接其中一组数码管的七个端口,P1.0-P1.6接数码管的P1.0-P1.6的端口,P0.0/AD0-P0.6/AD6接数码管的P0.0-P0.6的端口及RP1的P0.02-P0.68的接口。

每次按下计数键时触发INTO中断,中断程序累加计数,计数值显示在3只数码管上,按下清零键时数码管清零。

本设计利用AT89C51单片机的定时器/计时器定时和计数的原理,使其能精确计时。

设计中包括硬件电路的设计和系统程序的设计,其硬件电路主要有主控制器、计时与显示电路和复位电路等。

主控制器用AT89C52,显示电路采用共阴

极LED数码管显示计时时间。

利用中断系统使其能实现开始暂停的功能。

P2.5,P2.6,P2.7开口接3个按钮,分别实现开始,暂停,清零的功能。

路原理图设计最基本得要正确性,其次布局合理,最后在正确性和布局合理的前提下力求完美。

2.4设计原理图

如下图1-2所示

1-2电路原理图

2.5软件设计概述 

在软件设计中,一般采用模块化的程序设计方法,它具有明显的优点。

把一个多功能的复杂的程序划分为若干个简单的、功能单一的程序模块,有利于程序的设计和调试,有利于程序的优化和分工,提高了程序的阅读性和可能性,使程序的结构层次一目了然。

应用系统的程序由包含多个模块的主程序和各种子程序

组成。

各程序模块都要完成一个明确的任务,实现某个具体的功能,如:

加计数延时,计数和显示等,在具体需要时调用相应的模块即可。

2.6源程序

#include<

reg52.h>

#defineucharunsignedchar

#defineuintunsignedint

ucharcodeDSY_CODE[]=

{

0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x7f,0x6f,0x00

};

ucharDisplay_Buffer[3]={0,0,0};

uintCount=0;

sbitClear_Key=P3^6;

voidShow_Count_ON_DSY()

Display_Buffer[2]=Count/100;

Display_Buffer[1]=Count%100/10;

Display_Buffer[0]=Count%10;

if(Display_Buffer[2]==0)

{

Display_Buffer[2]=0x0a;

if(Display_Buffer[1]==0)

{

Display_Buffer[1]=0x0a;

}

}

P0=DSY_CODE[Display_Buffer[0]];

P1=DSY_CODE[Display_Buffer[1]];

P2=DSY_CODE[Display_Buffer[2]];

}

voidmain()

P0=0xff;

P1=0xff;

P2=0xff;

/*IE=0x81;

*/

EA=1;

EX0=1;

IT0=1;

while

(1)

if(Clear_Key==0)

Count=0;

Show_Count_ON_DSY();

voidEX_INT0()interrupt0

Count++;

表2.1元件清单

3单片机的选用

本设计采用ATC89C51,STC89系列单片机是MCS-51系列单片机的派生产品。

它们在指令系统、硬件结构和片资源上与标准8052单片机完全兼容,DIP40封装系列与8051为pin-to-pin兼容。

STC89系列单片机高速(最高时钟频率90MHz),低功耗,在系统/在应用可编程(ISP,IAP),不占用户资源。

它提供的功能标准如表1-3

表1-3ATC89C51功能标

兼容MCS51指令系统

8K可反复擦写FlashROM

32个双向I/O口

256x8bit部RAM

3个16位可编程定时/计数器中断

时钟频率0-24MHz

2个串行中断

可编程UART串行通道

2个外部中断源

共6个中断源

2个读写中断口线

3级加密位

低功耗空闲和掉电模式

软件设置睡眠和唤醒功能

ATC89C51引脚图如图1-4所示

图1-4ATC89C51

(1)主电源引脚(2根)

VCC(Pin40):

电源输入,接+5V电源

GND(Pin20):

接地线

(2)外接晶振引脚(2根)

XTAL1(Pin19):

片振荡电路的输入端

XTAL2(Pin20):

片振荡电路的输出端

(3)控制引脚(4根)

RST/VPP(Pin9):

复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。

ALE/PROG(Pin30):

地址锁存允许信号

PSEN(Pin29):

外部存储器读选通信号

EA/VPP(Pin31):

程序存储器的外部选通,接低电平从外部程序存储器读指令,如果接高电平则从部程序存储器读指令。

(5)可编程输入/输出引脚(32根)

ATC89C51单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。

P0口(Pin39~Pin32):

8位双向I/O口线,名称为P0.0~P0.7

P1口(Pin1~Pin8):

8位准双向I/O口线,名称为P1.0~P1.7

P2口(Pin21~Pin28):

8位准双向I/O口线,名称为P2.0~P2.7

P3口(Pin10~Pin17):

8位准双向I/O口线,名称为P3.0~P3.7

4仿真

1打开原理图,双击AT89C51,出现如图1-5所示的对话框,点击图中的文件夹标示,添加之前用Keil生成的HEX文件

图1-5载入HEX文件

2点击原理图右下角的运行符号,然后点击计数键,就开始计数,如图1-7

图1-7计数108

总结

一周的单片机课程设计转眼即过,在这一周里,我过得忙碌而又充实,其中包含着快乐,也有辛酸。

我们选的设计题目是“INT0中断计数”。

我们认为它真正困难的地方是程序设计,不过在我们小组成员的同心努力下最终完成了。

我们刚选该题目时,真的是一头雾水,因为我们所学的都是单片机方面的理论知识,应用到实践中去还比较少。

不过,我们小组成员也没偷下懒,迅速分工去查阅和收集资料。

我们去了图书馆借一些参考书,上网找一些相关资料,并且请教指导老师。

通过一番整理和修改后,终于在电脑上仿真出来了。

当时我们的心情都是无比兴奋和快乐的,因为我们一周的辛苦没有白费。

这次设计使我把理论和实际有机的结合起来,锻炼了分析解决实际问题的本领,真正由知识到智能的转化。

这对我以后的工作和生活有很大的帮助。

虽说我们设计的时间上有些短暂,但我并没有因为这些困难而不认真做,相反我都在利用课余时间做这个设计尽自己最大的努力去完成设计,去查找相关的程序。

通过单片机课程设计,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。

同时,更重要的是,我在这一设计过程中,学会了坚持不懈,不轻易言弃。

设计过程,也好比是我们人类成长的历程,常有一些不如意,也许这就是在对我们提出了挑战,勇敢过,也战胜了,胜利的钟声也就一定会为我们而敲响。

在完成单片机课程设计后,我们发现我们还有许多不足,所学到的知识还远远不够,以至于还有一些功能不能被动完成。

但通过学习这一次实践,增强了我们的动手能力,提高和巩固了单片机方面的知识。

从中增强了我们的团队合作精神,并让我们认识到把理论应用到实践中去是多么的重要。

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

当前位置:首页 > 工程科技 > 电力水利

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

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