单片机60秒倒计时实验报告.docx

上传人:b****1 文档编号:13215656 上传时间:2023-06-12 格式:DOCX 页数:15 大小:92.36KB
下载 相关 举报
单片机60秒倒计时实验报告.docx_第1页
第1页 / 共15页
单片机60秒倒计时实验报告.docx_第2页
第2页 / 共15页
单片机60秒倒计时实验报告.docx_第3页
第3页 / 共15页
单片机60秒倒计时实验报告.docx_第4页
第4页 / 共15页
单片机60秒倒计时实验报告.docx_第5页
第5页 / 共15页
单片机60秒倒计时实验报告.docx_第6页
第6页 / 共15页
单片机60秒倒计时实验报告.docx_第7页
第7页 / 共15页
单片机60秒倒计时实验报告.docx_第8页
第8页 / 共15页
单片机60秒倒计时实验报告.docx_第9页
第9页 / 共15页
单片机60秒倒计时实验报告.docx_第10页
第10页 / 共15页
单片机60秒倒计时实验报告.docx_第11页
第11页 / 共15页
单片机60秒倒计时实验报告.docx_第12页
第12页 / 共15页
单片机60秒倒计时实验报告.docx_第13页
第13页 / 共15页
单片机60秒倒计时实验报告.docx_第14页
第14页 / 共15页
单片机60秒倒计时实验报告.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

单片机60秒倒计时实验报告.docx

《单片机60秒倒计时实验报告.docx》由会员分享,可在线阅读,更多相关《单片机60秒倒计时实验报告.docx(15页珍藏版)》请在冰点文库上搜索。

单片机60秒倒计时实验报告.docx

单片机60秒倒计时实验报告

*******

班级:

电子09-2

学号:

**********

 

第一章摘要

第二章实验任务

第三章实验主要器材

3.1AT89S51芯片概述

3.2LED数码管显示器概述

第四章实验步骤

4.1硬件设计

4.2软件设计

第五章实验结果

5.1调试与仿真

第六章实验总结

 

第一章摘要

近年来随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。

在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。

模拟多通道压力系统是利用压力传感器采集当前压力并反映在显示器上,它可以分析压力过量程,并发出报警。

并采用电子秤原理可根据输入单价准确的计算出物体的金额。

本篇论文讨论了简单的倒计时器的设计与制作,对于倒计时器中的四位LED数码显示器来说,我为了简化线路、降低成本,采用以软件为主的接口方法,即不使用专门的硬件译码器,而采用软件程序进行译码。

 

第二章实验任务

任务说明:

单片机控制的多功能60s倒计时

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

本例中用两位数码管动态显示倒计时秒值。

并在00时发光二极管亮、蜂鸣器响。

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

第三章实验主要器材

3.1AT89S51芯片概述

AT89C51是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89C51可为许多嵌入式控制应用系统提供高性价比的解决方案。

AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

其工作电压在4.5-5V,一般我们选用+5V电压。

外形及引

脚排列如图2所示。

图2:

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应不接。

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

 

3.2LED数码管显示器概述

本设计中采用的是7SEG–MPX2–DC型号数码管,它是一种半导体发光器件,其基本单元是发光二极管。

实物如图3所示:

图3:

7SEG–MPX2–DC型号数码管

●数码管的分类  

数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。

共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。

共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。

当某一字段的阴极为高电平时,相应字段就不亮。

共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。

共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。

当某一字段的阳极为低电平时,相应字段就不亮。

LED数码管有两种连接方法如下:

共阳极接法。

把发光二极管的阳极连在一起构成公共阳极,使用时公共阳极接+5V,每个发光二极管的阴极通过电阻与输入端相连。

共阴极接法。

把发光二极管的阴极连在一起构成公共阴极,使用时公共阴极接地。

每个发光二极管的阳极通过电阻与输入端相连。

LED数码显示器的显示段码。

为了显示字符,要为LED显示器段码(或称字形代码),组成一个8字形字符的7段,再加上1个小数点位,共计8段,因此提供给LED显示器的显示段码为1个字节。

各段码位的对应关系如下表所示.十六进制数及空白字符与P的显示段码

段码位

D7

D6

D5

D4

D6

D2

D1

D0

显示段

pd

g

f

e

d

e

b

a

字型

共阳极段码

共阴极段码

字型

共阳极段码

0

C0H

3FH

9

90H

1

F9H

06H

A

88H

2

A4H

5BM

B

83H

3

B0H

4FH

C

C6H

4

99H

66H

D

A1H

5

92H

6DH

E

86H

6

82H

7DH

F

84H

7

F8H

07H

空白

FFH

8

80H

7FH

P

8CH

●数码管的驱动方式

  数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。

  ①静态显示驱动:

静态驱动也称直流驱动。

静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。

静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个呢:

),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。

  ②动态显示驱动:

数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。

通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。

在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。

●数码管参数  

8字高度:

8字上沿与下沿的距离。

比外型高度小。

通常用英寸来表示。

范围一般为0.25-20英寸。

  长*宽*高:

长——数码管正放时,水平方向的长度;宽——数码管正放时,垂直方向上的长度;高——数码管的厚度。

  时钟点:

四位数码管中,第二位8与第三位8字中间的二个点。

一般用于显示时钟中的秒。

●数码管应用

  数码管是一类显示屏通过对其不同的管脚输入相对的电流会使其发亮从而显示出数字

  能够显示时间日期温度等所有可用数字表示的参数

  由于它的价格便宜使用简单在电器特别是家电领域应用极为广泛空调热水器冰箱等等

  绝大多数热水器用的都是数码管其他家电也用液晶屏与荧光屏

●数码管使用的电流与电压

  电流:

静态时,推荐使用10-15mA;动态时,16/1动态扫描时,平均电流为4-5mA,峰值电流50-60mA。

  电压:

查引脚排布图,看一下每段的芯片数量是多少?

当红色时,使用1.9V乘以每段的芯片串联的个数;当绿色时,使用2.1V乘以每段的芯片串联的个数。

●怎样测量数码管引脚,分共阴和共阳?

  找公共共阴和公共共阳:

首先,我们找个电源(3到5伏)和1个1K(几百欧的也行)的电阻,VCC串接个电阻后和GND接在任意2个脚上,组合有很多,但总有一个LED会发光的,找到一个就够了,然后GND不动,VCC(串电阻)逐个碰剩下的脚,如果有多个LED(一般是8个),那它就是共阴的了。

相反用VCC不动,GND逐个碰剩下的脚,如果有多个LED(一般是8个),那它就是共阳的。

也可以直接用数字万用表,红表笔是电源的正极,黑表笔是电源的负极。

2.3其他元器件介绍及参数选择

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

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

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

 

第四章实验步骤

4.1硬件设计

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

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

4.2软件设计

●定时/计数器初值计算

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

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

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

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

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

X=65536-5000=15536=3CB0H

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

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

●软件程序

#include

sbitK1=P2^0;//加1

sbitK2=P2^1;//减1

sbitK3=P2^2;//暂停

sbitK4=P2^3;//启动

sbitS0=P3^6;

sbitS1=P3^7;

sbitF=P2^5;//蜂鸣器

sbitLED=P2^4;

voiddisp(unsignedcharn);

unsignedcharm=0;

unsignedcharn=10;

unsignedcharcode

D[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

voiddelay(unsignedinta)

{unsignedcharb;

while(--a)

{for(b=0;b<125;b++);}

}

voidmain()

{EA=1;

ET0=1;

TMOD=0x01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

TR0=0;

while

(1)

{disp(n);

if(K1==0){while(K1==0);disp(++n);}

if(K2==0){while(K2==0);disp(--n);}

if(K3==0){while(K3==0);TR0=0;disp(n);}

if(K4==0){while(K4==0);TR0=1;disp(n);}

if(n==0){F=~F;}}

}

voiddisp(unsignedcharn)

{unsignedchari,j;

i=n/10;

j=n%10;

P1=D[i];

S0=0;

delay(20);

P3=0xff;

P1=D[j];

S1=0;

delay(20);

P3=0xff;

}

voidds()interrupt1

{TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

if(++m>19)

{n--;

if(n==0){LED=0;F=0;while

(1)disp(0);m=0;}

m=0;}

}

 

第五章实验结果

5.1调试与仿真

●系统调试工具keilc51

调试的主要方法:

1.启动Keilc51

2.新建一个工程。

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

接着弹出CPU类型选择框,我们选择最常用的AT89C51,按确定。

3.在工程中加入文件。

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

文件菜单File——〉SaveAs?

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

C文件建好啦。

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

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

编译运行,检查程序是否有错误。

●PROTEUS软件

调试方法:

首先用Keil软件将C编译成HEX文件,打开Keil软件,新建一个文档,输入C程序,保存成C格式文件,然后新建工程,连接单片机为AT89C51,选择Optionsfortarget,选择OUTPUT子菜单,在CreateHEXFi前打钩,DeBug子菜单中,Settings选择ProteusVSMSimulator,USE前打钩,再次运行文件,成功后在目录下会生成HEX文件,打开Proteus软件,或直接点击DSN文件,双击单片机模板,点击文件夹式样的图标选择对应的HEX驱动文件,然后点击开始,进行调试。

●仿真图:

 

第六章实验总结

本次我们做了60秒倒计时实验。

完成此次试验共有4人,实验以AT89C51为核心部件,利用软件编程,通过键盘控制和LED实现显示的功能、报警功能,并能实现本设计题目的基本要求和发挥部分。

尽量做到硬件电路简单稳定、减小电磁干扰和其他环境干扰,充分发挥软件编程的优点,减小因元器件精度不够引起的误差。

本设计方案具有造价低,工作可靠,功能多,智能化,实用性强等特点,在许多场合都能应用,并且控制智能化、灵活。

随着计算机科学以及传感技术的不断发展,我们相信在不久的将来单片机和相关技术将发展成熟,为提高人们的生活质量中发挥更大的作用。

起初还以为特别难,后来慢慢也就做下来了,虽然做的不是特别好。

通过半个学期的学习发现《单片机原理、应用与PROTEUS仿真》的确是一门很有用的课程,对今后的学习工作有很大的帮助,因为单片机目前在社会中有在和极其广泛的用途,各个地方都离不开它的。

但是我觉得就我们在课堂上学到的这点知识还是极其有限的,更多的东西还靠我们自己去课下学习。

还有一点要注意就是团体之间的互相合作那也是至关重要。

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

当前位置:首页 > 自然科学 > 物理

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

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