多功能电子秒表设计毕业论文.docx
- 文档编号:3584450
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:20
- 大小:318.10KB
多功能电子秒表设计毕业论文.docx
《多功能电子秒表设计毕业论文.docx》由会员分享,可在线阅读,更多相关《多功能电子秒表设计毕业论文.docx(20页珍藏版)》请在冰豆网上搜索。
多功能电子秒表设计毕业论文
多功能电子秒表设计毕业论文
1引言
1.1单片机的发展
单片微型计算机是微型计算机的一个重要分支,也是一种非常活跃和颇具有生命力的机种。
单片微型计算机简称单片机,特别适用于工业控制领域,因此又称为微控器。
1971年微处理器研制成功不久,就出现了单片微型计算机即单片机,但最早的单片机是1位的,处理能力有限。
单片机的发展分为4个阶段:
第一阶段(1974—76年):
单片机初级阶段。
因为受工艺限制,单片机采用单片的形式而且功能比较简单。
例如美国仙童公司生产的F8单片机,实际上只包括了8位CPU,64个字节的RAM和2个并行接口
第二阶段(1976—78年):
低性能单片机阶段。
以Intel公司生产的MCS——48系列单片机为代表,该系列单片机片内集成有8位CPU,8位定时器/计数器,并行I/O接口,RAM和ROM等,但是最大的缺点就是无串行接口,中断处理比较简单而且片内RAM和ROM容量较小,且寻址范围不大与4KB。
第三阶段(1978—83)高性能单片阶段这个阶段推出的单片机普遍带有串行接口。
多级中断系统,16位定时器/计数器,片内ROM,RAM容量加大,且寻址范围可达64KB,有的片内还带有A/D转换器。
第四阶段(1983年至今)8位单片机巩固发展以及16位单片机,32位单片机推出阶段。
此阶段的主要特征是:
一方面发展16位单片机,32位单片机及专用型单片机;另一方面不断完善高档8位单片机,改善其结构,增加片内器件,以满足不同的客户要求。
1.2单片机的应用
单片机的应用很广,分别在以下领域中得到了广泛的应用。
工业自动化:
在自动化技术中,无论是过程控制技术、数据采集技术还是测控技术,都离不开单片机。
在工业自动化的领域中,机电一体化技术将发挥愈来愈重要的作用,在这种机械、微电子和计算机技术为一体的综合技术(例如机器人技术、数控技术)中,单片机将发挥非常重要的作用特别是近些年来,随着计算机技术的发展,工业自动化也发展到了一个新的高度,出现了无人工厂、机器人作业、网络化工厂等,不仅将人从繁重、重复和危险的工业现场解放出来,还大大提高了生产效率,降低了生产成本。
仪器仪表:
目前对仪器仪表的自动化和智能化要求越来越高。
在自动化测量仪器中,单片机应用十分普及。
单片机的使用有助于提高仪器仪表的精度和准确度,简化结构,减小体积,易于携带和使用,加速仪器仪表向数字化、智能化和多功能化方向发展。
消费类电子产品:
该应用主要反映在家电领域。
目前家电产品的一个重要发展趋势是不断提高其智能化程度。
例如,电子游戏、照相机、洗衣机、电冰箱、空调、电视机、微波炉、手机、IC卡、挂钟﹑汽车电子设备等。
在这些设备中使用了单片机后,其功能和性能大大提高,并实现了智能化、最优化控制
通信方面:
较高档的单片机都具有通信接口,因而为单片机在通信设备中的应用创造了很好的条件。
例如,在微波通信、短波通信、载波通信、光纤通信、程控交换等通信设备和仪器中都能找到单片机的应用。
武器装备:
在现代化的武器装备中,如飞机、军舰、坦克、导单、鱼雷制导、智能武器设备、航天飞机导航系统,都有单片机在其中发挥重要作用。
终端及外部设备控制:
计算机网络终端设备,如银行终端,以及计算机外部设备如打印机、硬盘驱动器、绘图机、传真机、复印机等,在这些设备中都使用了单片机。
近年来随着科技的飞速发展,同时带动自动控制系统日新月异更新,单片机的应用正在不断地走向深入。
2总体方案设计
2.1系统框图
多功能电子秒表的总体设计框图如图2.1所示。
AT89C51单片机
图2.1系统框图
Figure2.1systemblockdiagram
2.2计时控制方案
利用MCS-51内部的定时器/计数器进行定时,配合软件延时实现到计时。
该方案节省硬件成本,切能够使读者在定时器/计数器的使用、中断及程序设计方面得到锻炼与提高,
2.3显示控制方案
显示分为静态示和动态显示静态显示由于占用较多的接口,在单片机设计中常采用串行扩展来完成。
该方案占用接口资源多,显示亮度由保证,但硬件开销大,电路复杂,信息刷新速度慢,实用于并行接口资源较少以及对显示没有要求的场合。
LED动态显示硬件连接简单,但动态扫描的显示方式需占用CPU较多的时间,在该系统中由于单片机除了扫描89c51芯片外没有太多的实时测控任务,故选用动态扫描方式。
2.4键盘控制方案
键盘分为独立式键盘和行列式键盘,独立式键盘接口电路配置灵活,硬件结构简单,工作可靠但每个按键必须占用一跟I/O接口线,I/O接口线浪费较大,在单片机应用系统中,有时只需要几个简单的按键向系统输入信息,可将按键直接在一根I/O接口线上,故只在按键数量不多时采用。
而行列式键盘每条行线与列线在交叉处不直接相通,而是通过一个按键加以连接,当按键较多时可采用行列式键盘以节省I/O接口。
本设计采用一个按键,所以这里选用独立式键盘。
3硬件设计
3.189C51单片机的简介
89C51是MCS-51系列单片机的典型产品,我们就这一代表性的机型进行系统的讲解。
89S51单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:
图3.1单片机内部结构示意图
Figure3.1monolithicinternalstructure
1、中央处理器
中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。
2、数据存储器(RAM)
89C51内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。
3、程序存储器(ROM)
89C51共有4KB掩膜ROM,最大可扩展64K字节,用于存放用户程序,原始数据或表格。
4、定时/计数器:
89C51有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。
5、并行输入输出(I/O)口:
89C51共有4组8位I/O口(P0、P1、P2或P3),用于对外部数据的传输。
6、中断系统
89C51具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。
3.289C51的引脚
89c51引脚如图3.2所示:
图3.289c51引脚图
Figure3.289c51pinmap
Pin20:
接地脚。
Pin40:
正电源脚,正常工作或对片内EPROM读写程序时,接+5V电源。
Pin19:
时钟XTAL1脚,片内振荡电路的输入端。
Pin18:
时钟XTAL2脚,片内振荡电路的输出端。
输入输出(I/O)引脚:
Pin39-Pin32为P0.0-P0.7输入输出脚,Pin1-Pin1为P1.0-P1.7输入输出脚,Pin21-Pin28为P2.0-P2.7输入输出脚,Pin10-Pin17为P3.0-P3.7输入输出脚,这些输入输出脚的功能说明将在以下内容阐述。
Pin9:
RESET/Vpd复位信号复用脚,当8051通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。
初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指钟写入07H,其它专用寄存器被清“0”。
RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。
然而,初始复位不改变RAM(包括工作寄存器R0-R7)的状态,8051的初始态如表3.2所示:
表3.28051初始状态
Table3.28051initialstate
特殊功能寄存器
初始态
特殊功能寄存器
初始态
ACC
00H
B
00H
PSW
00H
SP
07H
DPH
00H
TH0
00H
DPL
00H
TL0
00H
IP
xxx00000B
TH1
00H
IE
0xx00000B
TL1
00H
TMOD
00H
TCON
00H
SCON
xxxxxxxxB
SBUF
00H
P0-P3
1111111B
PCON
0xxxxxxxB
Pin30:
ALE/
当访问外部程序器时,ALE(地址锁存)的输出用于锁存地址的低位字节。
而访问内部程序存储器时,ALE端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。
更有一个特点,当访问外部程序存储器,ALE会跳过一个脉冲。
如果单片机是EPROM,在编程其间,
将用于输入编程脉冲。
Pin29:
当访问外部程序存储器时,此脚输出负脉冲选通信号,PC的16位地址数据将出现在P0和P2口上,外部程序存储器则把指令数据放到P0口上,CPU读入并执行。
Pin31:
EA/Vpp程序存储器的内外部选通线,8051和8751单片机,内置有4kB的程序存储器,当EA为高电平并且程序地址小于4kB时,读取内部程序存储器指令数据,而超过4kB地址则读取外部指令数据。
如EA为低电平,则不管地址大小,一律读取外部程序存储器指令。
3.389C51单片机复位方式
单片机在开机时或在工作中因干扰而使程序失控,或工作中程序处于某种死循环状态,在这种情况下都需要复位.复位的作用是使中央处理器CPU以及其他功能部件都恢复到一个确定的初始状态,并从这个状态重新开始工作.
89C51单片机的复位靠外部电路实现,信号由RESET(RST)引脚输入,高电平有效,在振荡器工作时,只要保持RST引脚高电平两个机器周期,单片机即复位.复位后,PC程序计数器的内容为0000H,片内RAM中内容不变.复位电路一般有上电复位、手动开关复位和自动复位电路3种,如图3.3所示.
a.上电复位电路b.手动复位电路c.自动复位电路
图3.3单片机复位电路
Figure3.3monolithicresetcircuit
3.4键盘接口工作原理
在单片机应用系统中,常用键盘作为输入设备,通过它将数据、内存地址、命令及指令等输入到系统中,来实现简单的人机通信。
3.4.1按键开关的去除抖动功能
目前,MCS—51单片机应用系统上的按键常采用机械触点式按键,它在断开、闭合时输入电压波形如图3.4所示.可以看出机械触点在闭合及断开瞬间均有抖动过程,时间长短与开关的机械特性有关,一般为5~10ms。
由于抖动,会造成被查询的开关状态无法准确读出。
例如,一次按键产生的正确开关状态,由于键的抖动,CPU多次采集到底电平信号,会被误认为按键被多次按下,就会多次进行键输入操作,这是不允许的。
为了保证CPU对键的一次闭合仅在按键稳定时作一次键输入处理,必须消除产生的前沿(后沿)抖动影响。
图3.4.1按键过程
Figure3.4.1keyprocess
3.4.2独立式键盘的接口电路
独立式键盘的接口电路:
在单片机应用系统中,有时只需要几个简单的按键向系统输入信息。
这时,可将每个按键直接接在一根I/O接口线上,这种连接方式的键盘称为独立式键盘。
如图3.4.2所示,每个独立按键单独占有一根I/O接口线,每根I/O接口线的工作状态不会影响到其他I/O接口线。
这种按键接口电路配置灵活,硬件结构简单,但每个按键必须占用一根I/O线,I/O接口线浪费较大。
故只在按键数量不多时采用这种按键电路。
在此电路中,按键输入都采用低电平有效。
上拉电阻保证了按键断开时,I/O接口线有确定的高电平。
当I/O接口内部有上拉电阻时,外电路可以不配置上拉电阻。
图3.4.2独立按键
Figure3.4.2independentpress
3.5七段LED显示工作原理
LED显示器是由发光二极管显示字段的MCS-51单片机输出设备。
单片机应用系统常采用七段LED数码管作为显示器,这重显示器具有耗电低、配置灵活、线路简单、安装方便、耐转动、价格低廉且寿命长等优点。
因此应用比较广泛。
LED数码管显示器可以分为共阴极和共阳极两种结构。
(1)共阴极结构:
如果所有的发光二极管的阴极接在一起,称为共阴极结构,则数码显示段输入高电平有效,当某段输入高电平该段便发光,如图3所示。
(2)共阳极结构:
如果所有的发光二极管的阳极接在一起,称为共阳极结构,则数码显示段输入低平有效,当某段输入低电平该段便发光,如图3
图3.5LED数码管结构原理图
Figure3.5LEDdigitaltubestructureschematicdiagram
(3)LED动态显示接口:
LED动态显示就是利用单片机依次输出每一位数码管的段选码和对应于该位数码管的位选控制信号,一位一位轮流点亮各七段数码管。
对每位数码管来说,每隔一段时间点亮一次,如此循环。
利用人眼的“视觉暂留”效应,只要每位显示间隔足够短就可以给人以同时显示的感觉。
在动态显示方式中,同一时刻,只有一位LED数码管在显示,其他各位是关闭的。
在段选码和位选码每送出一次后,应保持1ms左右,这个时间应根据实际情况而定。
不能太小,因而发光二极管从导通到发光有一定的延时,导通时间太小,发光太弱人眼无法看清。
但也不能太大,因为毕竟要受限于临界闪烁频率,而且此时间越长,占用CPU时间也越多。
采用动态显示方式比较节省I/O接口,硬件电路也较静态显示方式简单,但其亮度不如静态显示方式,而且在显示位数较多时,CPU要依次扫描,占用CPU较多的时间。
用MCS-51单片机构建七段数码管动态显示系统时,6位数码管均采用共阴极LED,P0作为段选码输出口,8接至数码管的各段,字形驱动输出0时发光。
P2接口作为位选码输出口,当P2口输出0时,选通相应位的数码管工作。
3.674LS245的功能
74LS245是常用的芯片,用来驱动led或者其他的设备,它是8路同相三态双向总线收发器,可双向传输数据。
当8051单片机的P0口总线负载达到或超过P0最大负载能力时,必须接入74LS245等总线驱动器。
当片选端/CE低电平有效时,DIR=“0”,信号由B向A传输;如图3.6所示。
图3.674LS245引脚图
Figure3.674LS245pinmap
3.7电路原理
电路的核心是AT89C51单片机,其内部带有4KB的FlashROM,无须扩展程序存储器;电脑没有大量的运算和暂存数据,现有的128B片内RAM已能满足要求,也不必扩展片外RAM,系统配备6位LED显示和1个单接口键盘,采用P0接口外接8路反相三态缓冲器74LS245作LED动态扫描的段码控制驱动信号,LED共阴极端与单片机P2端口直接相连;按键接口,由P1.0来完成。
启动计时需要按键按下,才可以计时开始,停止也需要按键按下,清零操作也需要按键按键按下,它主要实现人机交互功能和计时功能。
利用软件计数器的方法计时一秒,利用中断的方法使计时时间循环,当按下应急按键时启动定时器,开始计时,再次按下时,停止计时,最后一次按下,显示进行了初始化,如图3.9所示
图3.7电路原理图
Figure3.7circuitdiagram
4软件设计
4.1定时1秒的方法
定时方法我们采用软硬件结合的方法,在主程序中设定一个初值为100的软件计数器使定时器0工作于方式1定时10毫秒,这样每当T0到10毫秒时CPU就响应它的溢出中断请求,进入他的中断服务子程序。
在中断服务子程序中,CPU先使软件计数加1,然后判断它是否为零。
为零表示1秒已到。
4.2定时器初值计算
定时器工作时必须给计数器送初值,将这个值送到TH和TL中。
他是以加法记数的,并能从全1到全0时自动产生溢出中断请求。
因此工作于方式1,定时器为16位计数器其定时时间由下式计算:
定时时间=(216-X)×振荡周期×12(或)
X=216-定时时间/振荡周期×12
式中x为T0的初始值,该值和计数器工作方式有关。
如单片机的主脉冲频率为12MHZ ,经过12分频
方式0 定时时间=213 ×1微秒=8.192毫秒
方式1 定时时间=216×1微秒=65.536毫秒
秒钟已经超过了计数器的最大定时间,所以我们只有采用定时器和软件相结合的办法才能解决这个问题,定时器需定时10毫秒,故T0工作于方式1,定时100次,就可定时一秒。
4.3主程序模块
主程序主要初始化各参数和调用按键、显示两子程序,首先将时间、中断、次数、和显示分别进行初始化,然后调用按键扫描子程序,再调用显示子程序,然后对这两个子程序进行周而复始的循环,如图4.3所示
图4.3主程序流程图
Figure4.3themainprogramflow
voidmain(void)
{P1=0xff;//初始化p1口,全设为1
TMOD=0x01;//timer0为定时器,方式1
EA=1;
ET0=1;
num=0;
key=0;
ms=0;
second=0;
minuet=0;
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
while
(1)
{keyscan();//按键扫描
display();//显示时间
}
}
4.4中断服务程序模块
本中断采用AT89C51内部T0中断实现,定时时间为10ms,当时间到达10×100时,实现了1秒的定时,首先进入中断程序后,先判断10ms到了吗?
如果没有到将定时器重装初值,返回主程序,如果一秒钟到了,将软件计数器加1再判断,如果ms计数到100,进行清零,然后再向前second加1,再判断到60s没有,到了清零,然后再向前minute加1,再判断到60minute没有,到了清零,最后中断返回,如图4.4所示。
图4.4中断服务流程图
Figure4.4interruptserviceflowchart
voidtimer0(void)interrupt1using0//定时器0方式1,10ms中断一次
{
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
ms++;
if(ms==100)//100进1
{ms=0;
second++;
if(second==60)//秒设为60进制
{second=0;
minute++;
if(minute==60)//分钟设为60进制
{minute=0;}
}
}
}
4.5按键扫描程序模块
按键主要对人输入的信息进行处理,按键识别成功后,然后key加一,采用switch开关语句进行判断,key等于1时,启动T0工作,key等于2时,停止T0工作,key等于3时,再次启动T0,继续计时,key等于4时,初始化各参数,调用显示子程序,再对key清零处理。
图4.5按键扫描流程图
Figure4.5-keyscanningflowchart
voidkeyscan(void)
{if(P1_0==0)//按键1的调整
{
delay(30);
if(P1_0==0)
{key=key+1;
switch(key)
{case1:
TR0=1;break;//启动定时器
case2:
TR0=0;break;//停止定时器
case3:
TR0=1;break;
case4:
{TR0=0;
ms=0;//清零操作
second=0;
minute=0;
display();
key=0;
break;}
}
while(P1_0==0)//判断按键是否松开
do{delay(30);}
while(P1_0==0);
}
}
}
4.6显示程序模块
显示程序采用动态显示,由位码控制那一个数码管显示,由段码控制数码管显示什么数值,根据中断程序显示时间来查表显示数值,从第一位到第六位逐个点亮,同时每显示一位判断一次六位显示完了吗?
没有显示完进行显示下一位,显示完了从头开始再循环,如图4.6所示。
图4.6显示流程图
Figure4.6showstheflowchart
voiddisplay(void)
{P2=0xfe;
P0=discoed[minite/10];//显示60m的十位
delay(4);
P2=0xfd;
P0=(discoed[(minite%10)])|0X80;//显示60m的个位
delay(4);
P2=0xfb;
P0=discoed[seconde/10];//显示60s的十位
delay(4);
P2=0xf7;
P0=(discoed[seconde%10])|0X80;//显示60s的个位
delay(4);
P2=0xef;
P0=discoed[ms/10];//显示10ms的十位
delay(4);
P2=0xdf;
P0=discoed[ms%10];//显示10ms的个位
delay(4);
}
5系统调试
完成了硬件的设计、制作和软件编程之后,要使系统能够按设计意图正常运行,必须进行系统调试。
系统调试包括硬件调试和软件调试两个部分。
不过,作为一个单片机系统,其运行是软硬件相结合的,因此,软硬件的调试也是绝对不可能分开的。
程序的调式应一个模块一个模块地进行,单独调试各功能子程序,检验程序是否能够实现预期的功能,接口电路的控制是否正常等;最后逐步将各个子程序连接起来总调。
联调需要注意的是,各程序模块间能否正确传递参数,特别要注意各子程序的联系。
调试的基本步骤如下:
将所要调试的程序输入到KeiluVision2中,然后进行建立新文件,保存和建立新的项目,并按要求修改各个参数,达到设定的效果。
值得注意的是编好的文件应有后缀例如*.c文件。
然后再将编好的程序进行编译,检查出现的错误,并作以修改,直到没有错误为止,最后生成*.Hex文件,再加载到仿真图里面,进行程序运行,观察效果,调整程序,直到达到设计效果为止。
在调试过程中出现的问题:
(1)数码管不显示,经分析原因在与数码管位码和单片机的相对应的端口连接的不正确,经调整后显示正常,开始显示时间,如图5.1所示。
图5.1开始显示界面
Figure5.1displayinterface
(2)数码管从原先的两位一体数码管显示60秒,虽然效果显示正确,但不能对毫秒进行显示,经调整后,采用6位一体的数码管,最后两位显示“00”~“99”中间两位显示秒计时即“00”~“59”,最前面两位显示分计时即“00”~“59”。
调试过程中中断程序出现了问题,把数据的处理没有放到中断程序中,数码管有显示一段时间后,有不显示的现象,把数据处理程序调整
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 多功能 电子 秒表 设计 毕业论文