单片机设计60秒倒计时正计时+Proteus仿真.docx

上传人:b****4 文档编号:4518727 上传时间:2023-05-07 格式:DOCX 页数:9 大小:94.79KB
下载 相关 举报
单片机设计60秒倒计时正计时+Proteus仿真.docx_第1页
第1页 / 共9页
单片机设计60秒倒计时正计时+Proteus仿真.docx_第2页
第2页 / 共9页
单片机设计60秒倒计时正计时+Proteus仿真.docx_第3页
第3页 / 共9页
单片机设计60秒倒计时正计时+Proteus仿真.docx_第4页
第4页 / 共9页
单片机设计60秒倒计时正计时+Proteus仿真.docx_第5页
第5页 / 共9页
单片机设计60秒倒计时正计时+Proteus仿真.docx_第6页
第6页 / 共9页
单片机设计60秒倒计时正计时+Proteus仿真.docx_第7页
第7页 / 共9页
单片机设计60秒倒计时正计时+Proteus仿真.docx_第8页
第8页 / 共9页
单片机设计60秒倒计时正计时+Proteus仿真.docx_第9页
第9页 / 共9页
亲,该文档总共9页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

单片机设计60秒倒计时正计时+Proteus仿真.docx

《单片机设计60秒倒计时正计时+Proteus仿真.docx》由会员分享,可在线阅读,更多相关《单片机设计60秒倒计时正计时+Proteus仿真.docx(9页珍藏版)》请在冰点文库上搜索。

单片机设计60秒倒计时正计时+Proteus仿真.docx

单片机设计60秒倒计时正计时+Proteus仿真

 

60秒倒计时设计

一:

1.目的

课程设计是单片机课程教学的最后一个环节,是对学生进行全面的系统的训练。

2.要求

单片机控制的60s倒计时

(1)用单片机AT89C51的定时器实现60s倒计时。

(2)用PROTEUS设计,仿真基于AT89c51单片机的60s倒计时实验。

3.目标

通过课程设计,使自己深刻理解并掌握基本概念,掌握单片机的基本应用程序设计及综合应用程序设计的方法。

2:

方案选择

图2.1:

60秒倒计时总体电路设计

本设计由硬件设计和软件设计两部分组成,总电路框图如图2.1所示。

具体设计:

通过AT89C51型号单片机,由P1和P2两组I/O引脚分别控制两个7SEG–COM–ANODE型号数码管,分十位控制和个位控制,达到显示60秒倒计时的目的。

通过复位电路,在仿真过程中点击开关实现60复位

3.1AT89C51

外形及引脚排列如图3.1所示

图3.1:

89C51的核心电路框图

主要特性

·与MCS-51兼容

  ·4K字节可编程闪烁存储器

  ·寿命:

1000写/擦循环

  ·数据保留时间:

10年

  ·全静态工作:

0Hz-24MHz

  ·三级程序存储器锁定

  ·128×8位内部RAM

  ·32可编程I/O线

  ·两个16位定时器/计数器

  ·5个中断源

  ·可编程串行通道

  ·低功耗的闲置和掉电模式

  ·片内振荡器和时钟电路

管脚说明

(1)电源及时钟引脚(4个)

Vcc:

电源接入引脚

Vss:

接地引脚

XTAL1:

晶振震荡器接入的一个引脚(采用外部振荡器时,此引脚接地);

XTAL2:

晶体振荡器的另一个引脚(采用外部振荡器时,此引脚作为外部振荡器信号的输入端)。

(2)控制线引脚(4个)

RST/Vpd:

复位信号输入引脚/备用电源输入引脚;

ALE:

地址锁存允许信号输出引脚/编程脉冲输入引脚:

EA:

内外存储器选择引脚/片外EPROM编程电压输入引脚;

PSEN:

外部程序存储器选通信号输出引脚。

(3)并行I/O引脚

P0.0-P0.7:

一般I/O口引脚或数据/低位地址总线复用引脚;

P1.0-P1.7:

一般I/O口引脚;

P2.0-P2.7:

一般I/O口引脚或高位地址总线引脚;

P3.0-P3.7:

一般I/O口引脚或第二功能引脚

●振荡器特性:

  XTAL1和XTAL2分别为反向放大器的输入和输出。

该反向放大器可以配置为片内振荡器。

石晶振荡和陶瓷振荡均可采用。

如采用外部时钟源驱动器件,XTAL2应不接。

有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度

本设计中还用到其他一些元器件,如:

晶振,电容,电阻排,电解电容,开关等等。

晶振采用频率为12MHZ,连接的两个电容为30pF;电阻排为470*8,能够实现8个470欧电阻的等效替换;电解电容为10u;开关功能是在仿真过程中,按下开关便能实现60秒复位。

 

4.软件设计

4.1定时/计数器初值计算

(1)本电路应用TIMER0MODE16位计数器的计时中断法。

(2)1秒等于1000000微秒,而每一计时脉冲是1微秒,因此需输入100000个计时脉冲,方可达到1秒的时间。

本设计中,设定中断每次溢出时间50ms。

(3)由上式得知,循环20次即可达到1秒定时,即:

N=t/T=0.05s/0.000001=5000

X=65536-5000=15536=3CB0H

(4)由上式得知5000个脉冲,首先需设定TL0=3CH,TH0=0B0H,此时第1次只要输入5000个脉冲输入,就会溢出;第2次至第20次,则需每1000000个计时脉冲,定时1秒。

(5)上电时,显示60,开始倒数计时按下开关实现复位。

代码如下

ORG0000H

AJMPMAIN

ORG0030H

MAIN:

MOVR2,#60;计数初值

LOOP1:

MOVA,R2

MOVB,#10

DIVAB

MOVDPTR,#TABLE

MOVCA,@A+DPTR;查表

MOVP1,A;十位显示

MOVA,B

MOVCA,@A+DPTR

MOVP2,A;个位显示

MOVR7,#20

LOOP0:

MOVTMOD,#01H;置T0工作于方式0

MOVTH0,#3CH;装入计数初值

MOVTL0,#0B0H

SETBTR0;启动定时器T0

JNBTF0,$;TF0=0,等待

CLRTF0;清TF0

DJNZR7,LOOP0;循环20次

DECR2;减一

CJNER2,#0FFH,LOOP1;倒计时

AJMPMAIN;复位回到60秒初始

TABLE:

DB0C0H,0F9H,0A4H,0B0H

DB99H,92H,82H,0F8H

DB80H,90H,88H,83H

DB0C6H,0A1H,86H,8EH

END

5.软件调试:

1.启动Keilc51

2.新建一个工程。

Project菜单——〉Newproject,选择好我们要保存的文件夹后,文件保存。

我们选择最常用的AT89C51,确定。

3.在工程中加入文件。

新建一个文件,文件菜单File——New,我们再选择:

文件菜单File——SaveAs(另存为)弹出对话框后,我们文件名框中键入文件名(注意文件后缀名是.c)保存。

C文件建好啦。

现在我们把文件加入到工程中去。

点击Target1前面的+号,右键单击SourceGroup1——选择AddFilestoGroup,SourceGroup1,选择添加Add。

编译运行。

4.PROTEUS仿真图

 

60秒正计时设计代码

SECONDEQU30H

TCOUNTEQU31H

ORG00H

START:

MOVSECOND,#00H

MOVTCOUNT,#00H

MOVTMOD,#01H

MOVTH0,#(65536-50000)/256

MOVTL0,#(65536-50000)MOD256

SETBTR0

DISP:

MOVA,SECOND

MOVB,#10

DIVAB

MOVDPTR,#TABLE

MOVCA,@A+DPTR

MOVP0,A

MOVA,B

MOVCA,@A+DPTR

MOVP2,A

WAIT:

JNBTF0,WAIT

CLRTF0

MOVTH0,#(65536-50000)/256

MOVTL0,#(65536-50000)MOD256

INCTCOUNT

MOVA,TCOUNT

CJNEA,#20,NEXT

MOVTCOUNT,#00H

INCSECOND

MOVA,SECOND

CJNEA,#60,NEX

MOVSECOND,#00H

NEX:

LJMPDISP

NEXT:

LJMPWAIT

TABLE:

DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

END

60秒正计时PROTEUS仿真图

 

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

当前位置:首页 > 临时分类 > 批量上传

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2