您好,欢迎来到华佗健康网。
搜索
您的当前位置:首页单片机数码管秒表

单片机数码管秒表

来源:华佗健康网


《电子系统创新设计与实践》

课程期末论文

(2016——2017年度第一期)

得分 评卷人

题 目

专 业 班 级 学 号 姓 名

单片机数码管秒表

软件工程 15F *************

李国

二〇一六年十二月

摘要

近年来随着科学技术的发展,单片机的应用正在不断走下面还深入。本文简单阐述了基于单片机的数字秒表的的设计。本设计的主要特点是计时精度达到0.01秒,是各种竞赛的必要设备之一。

本设计的数字秒表采用ATC51单片机为主要器件,利用其定时器的原理,结合显示电路、LED数码管以及外部外部中断电路来设计计时器。将软硬件结合起来,使得系统能实现0~99.99秒的计时,计时精度位0.01秒。

实验目的:

数字秒表具有显示直观、读取方便、精度高等优点,在计时中广泛应用。本设计中用单片机和数码管组成数字秒表力求结构简单。

设计中包括硬件电路的设计和系统程序的设计。硬件电路主要有主控制器、控制按钮与显示电路组成。主控制器采用单片机ATC51,显示电路采用四位共阴极数码管显示计时时间。

本设计利用ATC51单片机的定时器,使其能精确计时。利用中断系统使其实现启动和暂停的功能,P0口输出段码数据,P2.0~P2.2连上译码器作为位选,P3.2和P3.3接口的两个按钮分别实现启动和暂停功能。设计的基本要求是正确性。

计时器采用T0中断实现,定时溢出中断周期为1ms,当溢出中断后向CPU发出溢出中断请求,每发出10次中断请求就对10ms位(即最后一位)加一,达到100次就对100ms位加一,以此类推,直到99.99s为止。

再看按键的处理。两个按键采用中断的方法,设置外部中断0和外部中断1位脉冲边沿触发方式,这样一来每当按键按下时便会触发中断,从而实现启动和暂停。

设计计时器的流程:

定时器中断入口 重装计数初值 中断次数加1 中断次数到10吗 中断次数清零,0.01秒位加一 0.01秒位到10吗 0.01秒位清零,0.1秒位加一 0.1秒位到10吗 0.1秒位清零,1秒位加一 1秒位到10吗 1秒位清零,10秒位加一 10秒位到10吗 10秒位清零 中断返回

程序源代码如下: #include Unsigned int data table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //显示码值

unsigned int i,j,k,l,count;

void delay(unsigned int z) //延时程序 {

unsigned int x,y; for(x=z;x!=0;x--)

for(y=110;y!=0;y--); }

void main() {

TMOD=0x01; // TH0=(65536-1000)/256; // TL0=(65536-1000)%256;

EA=1; // EX0=1; EX1=1; ET0=1;

IT0=1; // IT1=1;

while(1) // {

P2=0x03;

P0=table[i]; delay(1); P2=0x02;

P0=table[j]; delay(1); P2=0x01;

P0=(table[k]+0x80); delay(1); P2=0x00;

P0=table[l]; delay(1); }; }

void ex0() interrupt 0 //{

TR0=1; //}

void ex1() interrupt 2 //设置定时器为模式1 给定时器赋定时初值 开中断 设置外部中断位 数码显示 外部中断0 开定时器,开始计数 外部中断0

{

TR0=0; //停止计数 }

void timer0() interrupt 1 //定时器T0溢出中断 {

TH0=(65536-1000)/256; //重装计数初值 TL0=(65536-1000)%256;

count++; //溢出中断次数加一

if(count==10) {

count=0;

i++; //溢出10次,0.01s位加一 if(i==10) {

i=0; //0.01s位到10了,清零,0.1s位加一 j++;

if(j==10) {

j=0; //0.1s位到10了,清零,1s位加一 k++;

if(k==10) {

k=0; //1s位到10了,清零,10s位加一 l++; } } } } }

系统总体电路如下图所示:

ATS52单片机为主电路的核心部分,各个电路均与单片机相连,由单片机统筹协调各个电路的运行工作。

开始键和暂停键使用了外部中断,所以需要连到单片机的P3.2和P3.3引脚上,这两个I/O口的第二功能是单片机的外部中断0端口和外部中断1端口。

显示电路由四位数码管组成,采用动态显示方式,因此有8位段控制和4位位控制,8位段接控制接P0口,P0.0~P0.7分别控制数码管的a b c d e f g dp显示,位控制接在P2.0和P2.1两个口,在通过一个2—4译码器实现位控制。

RP1U119XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617123456718XTAL29RSTU2:A231ABE74LS139Y0Y1Y2Y34567RESPACK-8293031PSENALEEA12345678P1.0/T2P1.1/T2EXP1.2P1.3P1.4P1.5P1.6P1.7ATS52

系统运行时的情况:

RP1U1U2:A RP1U1U2:A 参考文献:

赵建领.51系列单片机开发宝典。北京:电子工业出版社,2007 总结:

要多加练习程序的编写和电路的实现,弄清进制转换和进位。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.com 版权所有 湘ICP备2023021991号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务